1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #ifndef __INTEGERFIELD_H
- #define __INTEGERFIELD_H
- #include <bfc/platform/types.h>
- class TimeParse {
- public:
- int is_relative;
- int absolute_datetime;
- int absolute_hasdate;
- int absolute_hastime;
- int relative_year;
- int relative_month;
- int relative_day;
- int relative_hour;
- int relative_min;
- int relative_sec;
- int relative_kwday;
- int offset_value;
- int offset_what;
- int offset_whence;
- int offset_used;
- };
- class IntegerField : public Field
- {
- protected:
- virtual void ReadTypedData(const uint8_t *, size_t len);
- virtual void WriteTypedData(uint8_t *, size_t len);
- virtual size_t GetDataSize(void);
- virtual int Compare(Field *Entry);
- virtual bool ApplyFilter(Field *Data, int op);
- void InitField(void);
- int Value;
- enum {
- WHAT_YEARS,
- WHAT_MONTHS,
- WHAT_WEEKS,
- WHAT_DAYS,
- WHAT_HOURS,
- WHAT_MINUTES,
- WHAT_SECONDS,
- };
- enum {
- FROM_BARE,
- FROM_AGO,
- FROM_SINCE,
- };
- public:
- ~IntegerField();
- IntegerField(int);
- IntegerField();
- int GetValue(void);
- void SetValue(int);
- int ApplyConversion(const wchar_t *format, TimeParse *tp=NULL);
- #ifdef _WIN32
- static int LookupToken(const wchar_t *t);
- #else
- static int LookupToken(CFStringRef t);
- #endif
- };
- class DateTimeField : public IntegerField {
- public:
- DateTimeField();
- DateTimeField(int Val);
- virtual ~DateTimeField();
- };
- class LengthField : public IntegerField {
- public:
- LengthField();
- LengthField(int Val);
- virtual ~LengthField();
- };
- #endif
|