~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field/time.h

  • Committer: Monty Taylor
  • Date: 2011-02-13 17:26:39 UTC
  • mfrom: (2157.2.2 give-in-to-pkg-config)
  • mto: This revision was merged to the branch mainline in revision 2166.
  • Revision ID: mordred@inaugust.com-20110213172639-nhy7i72sfhoq13ms
Merged in pkg-config fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
19
 */
20
20
 
21
 
#pragma once
 
21
#ifndef DRIZZLED_FIELD_TIME_H
 
22
#define DRIZZLED_FIELD_TIME_H
22
23
 
23
24
#include <drizzled/field/str.h>
24
25
 
25
 
namespace drizzled {
26
 
namespace field {
 
26
namespace drizzled
 
27
{
 
28
 
 
29
class Time;
 
30
 
 
31
namespace field
 
32
{
 
33
 
 
34
class TableShare;
 
35
typedef struct charset_info_st CHARSET_INFO;
27
36
 
28
37
class Time :public Field_str {
29
38
public:
31
40
                  uint32_t len_arg,
32
41
                  unsigned char *null_ptr_arg,
33
42
                  unsigned char null_bit_arg,
34
 
                  const char *field_name_arg);
35
 
 
 
43
                  const char *field_name_arg,
 
44
                  const CHARSET_INFO * const cs);
36
45
  Time(bool maybe_null_arg,
37
 
                  const char *field_name_arg);
38
 
 
 
46
                  const char *field_name_arg,
 
47
                  const CHARSET_INFO * const cs);
39
48
  enum_field_types type() const { return DRIZZLE_TYPE_TIMESTAMP;}
40
49
  enum ha_base_keytype key_type() const { return HA_KEYTYPE_LONG_INT; }
41
50
  enum Item_result cmp_type () const { return INT_RESULT; }
42
51
  int  store(const char *to,uint32_t length,
43
 
             const charset_info_st * const charset);
 
52
             const CHARSET_INFO * const charset);
44
53
  int  store(double nr);
45
54
  int  store(int64_t nr, bool unsigned_val);
46
55
  int  reset(void) { ptr[0]= ptr[1]= ptr[2]= ptr[3]= 0; return 0; }
47
 
  double val_real(void) const;
48
 
  int64_t val_int(void) const;
49
 
  String *val_str(String*,String *) const;
 
56
  double val_real(void);
 
57
  int64_t val_int(void);
 
58
  String *val_str(String*,String *);
50
59
  int cmp(const unsigned char *,const unsigned char *);
51
60
  void sort_string(unsigned char *buff,uint32_t length);
52
61
  uint32_t pack_length() const { return 4; }
55
64
  bool zero_pack() const { return 0; }
56
65
 
57
66
  /* Get TIME field value as seconds since begging of Unix Epoch */
58
 
  long get_timestamp(bool *null_value) const;
 
67
  long get_timestamp(bool *null_value);
59
68
private:
60
 
  bool get_date(type::Time &ltime, uint32_t fuzzydate) const;
61
 
  bool get_time(type::Time &ltime) const;
 
69
  bool get_date(type::Time &ltime,uint32_t fuzzydate);
 
70
  bool get_time(type::Time &ltime);
62
71
 
63
72
public:
64
73
  timestamp_auto_set_type get_auto_set_type() const;
65
74
  static size_t max_string_length();
66
75
  void pack_time(drizzled::Time &arg);
67
 
  void unpack_time(drizzled::Time &arg) const;
68
 
  void unpack_time(int32_t &destination, const unsigned char *source) const;
 
76
  void unpack_time(drizzled::Time &arg);
 
77
  void unpack_time(int32_t &destination, const unsigned char *source);
69
78
};
70
79
 
71
80
} /* namespace field */
72
81
} /* namespace drizzled */
73
82
 
 
83
#endif /* DRIZZLED_FIELD_TIME_H */
74
84