00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <eyedb/eyedb.h>
00018
00019 #ifndef _eyedb_utils_
00020 #define _eyedb_utils_
00021
00022 namespace eyedb {
00023
00024 class Image;
00025 class CURL;
00026 class WConfig;
00027 class Date;
00028 class Time;
00029 class TimeStamp;
00030 class TimeInterval;
00031 class OString;
00032
00033
00034 class utils {
00035
00036 public:
00037 utils(int &argc, char *argv[]) {
00038 eyedb::init(argc, argv);
00039 init();
00040 }
00041
00042 ~utils() {
00043 release();
00044 eyedb::release();
00045 }
00046
00047 static void init();
00048 static void release();
00049 static eyedb::Status updateSchema(eyedb::Database *db);
00050 static eyedb::Status updateSchema(eyedb::Schema *m);
00051 };
00052
00053 class utilsDatabase : public eyedb::Database {
00054
00055 public:
00056 utilsDatabase(const char *dbname, const char *_dbmdb_str = 0) : eyedb::Database(dbname, _dbmdb_str) {}
00057 utilsDatabase(eyedb::Connection *conn, const char *dbname, const char *_dbmdb_str, eyedb::Database::OpenFlag, const char *user = 0, const char *passwd = 0);
00058 utilsDatabase(eyedb::Connection *conn, const char *dbname, eyedb::Database::OpenFlag, const char *user = 0, const char *passwd = 0);
00059 utilsDatabase(const char *dbname, int _dbid, const char *_dbmdb_str = 0) : eyedb::Database(dbname, _dbid, _dbmdb_str) {}
00060 utilsDatabase(int _dbid, const char *_dbmdb_str = 0) : eyedb::Database(_dbid, _dbmdb_str) {}
00061 eyedb::Status open(eyedb::Connection *, eyedb::Database::OpenFlag, const char *user = 0, const char *passwd = 0);
00062 eyedb::Status open(eyedb::Connection *, eyedb::Database::OpenFlag, const eyedb::OpenHints *hints, const char *user = 0, const char *passwd = 0);
00063 static void setConsApp(eyedb::Database *);
00064 static eyedb::Status checkSchema(eyedb::Schema *);
00065 static eyedb::Bool getDynamicGetErrorPolicy();
00066 static eyedb::Bool getDynamicSetErrorPolicy();
00067 static void setDynamicGetErrorPolicy(eyedb::Bool policy);
00068 static void setDynamicSetErrorPolicy(eyedb::Bool policy);
00069 };
00070
00071 class ImageType {
00072
00073 public:
00074 enum Type {
00075 GIF_IMG_TYPE = 1,
00076 JPEG_IMG_TYPE = 2,
00077 PM_IMG_TYPE = 3,
00078 PBM_IMG_TYPE = 4,
00079 X11BITMAP_IMG_TYPE = 5,
00080 BMP_IMG_TYPE = 6,
00081 TIFF_IMG_TYPE = 7
00082 };
00083 };
00084
00085 class Month {
00086
00087 public:
00088 enum Type {
00089 January = 1,
00090 February = 2,
00091 March = 3,
00092 April = 4,
00093 May = 5,
00094 June = 6,
00095 July = 7,
00096 August = 8,
00097 September = 9,
00098 October = 10,
00099 November = 11,
00100 December = 12
00101 };
00102 };
00103
00104 class Weekday {
00105
00106 public:
00107 enum Type {
00108 Sunday = 0,
00109 Monday = 1,
00110 Tuesday = 2,
00111 Wednesday = 3,
00112 Thursday = 4,
00113 Friday = 5,
00114 Saturday = 6
00115 };
00116 };
00117
00118 class Image : public eyedb::Struct {
00119
00120 public:
00121 Image(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00122 Image(const Image& x);
00123
00124 virtual eyedb::Object *clone() const {return new Image(*this);};
00125
00126 Image& operator=(const Image& x);
00127
00128 virtual Image *asImage() {return this;}
00129 virtual const Image *asImage() const {return this;}
00130
00131 eyedb::Status setName(const std::string &);
00132 eyedb::Status setName(unsigned int a0, char );
00133 std::string getName(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00134 char getName(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00135
00136 eyedb::Status setType(ImageType::Type , eyedb::Bool _check_value = eyedb::True);
00137 ImageType::Type getType(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00138
00139 eyedb::Status setData(const unsigned char *, unsigned int len);
00140 eyedb::Status setData(unsigned int a0, unsigned char );
00141 eyedb::Status setDataCount(unsigned int a0);
00142 const unsigned char *getData(unsigned int *len, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00143 unsigned char getData(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00144 unsigned int getDataCount(eyedb::Status * = 0) const;
00145
00146 eyedb::Status setW(eyedblib::int32 );
00147 eyedblib::int32 getW(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00148
00149 eyedb::Status setH(eyedblib::int32 );
00150 eyedblib::int32 getH(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00151 virtual ~Image() {garbageRealize();}
00152
00153 protected:
00154 Image(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00155 Image(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00156 Image(const Image *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00157
00158 private:
00159 void initialize(eyedb::Database *_db);
00160
00161 public:
00162 Image(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00163 Image(const Image *, eyedb::Bool = eyedb::False);
00164 Image(const eyedb::Class *, eyedb::Data);
00165 };
00166
00167 class CURL : public eyedb::Struct {
00168
00169 public:
00170 CURL(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00171 CURL(const CURL& x);
00172
00173 virtual eyedb::Object *clone() const {return new CURL(*this);};
00174
00175 CURL& operator=(const CURL& x);
00176
00177 virtual CURL *asCURL() {return this;}
00178 virtual const CURL *asCURL() const {return this;}
00179
00180 eyedb::Status setProto(const std::string &);
00181 eyedb::Status setProto(unsigned int a0, char );
00182 std::string getProto(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00183 char getProto(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00184
00185 eyedb::Status setUrl(const std::string &);
00186 eyedb::Status setUrl(unsigned int a0, char );
00187 std::string getUrl(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00188 char getUrl(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00189 virtual ~CURL() {garbageRealize();}
00190
00191
00192 CURL(const char *proto, const char *url);
00193
00194
00195 protected:
00196 CURL(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00197 CURL(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00198 CURL(const CURL *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00199
00200 private:
00201 void initialize(eyedb::Database *_db);
00202
00203 public:
00204 CURL(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00205 CURL(const CURL *, eyedb::Bool = eyedb::False);
00206 CURL(const eyedb::Class *, eyedb::Data);
00207 };
00208
00209 class WConfig : public eyedb::Struct {
00210
00211 public:
00212 WConfig(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00213 WConfig(const WConfig& x);
00214
00215 virtual eyedb::Object *clone() const {return new WConfig(*this);};
00216
00217 WConfig& operator=(const WConfig& x);
00218
00219 virtual WConfig *asWConfig() {return this;}
00220 virtual const WConfig *asWConfig() const {return this;}
00221
00222 eyedb::Status setName(const std::string &);
00223 eyedb::Status setName(unsigned int a0, char );
00224 std::string getName(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00225 char getName(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00226
00227 eyedb::Status setUser(const std::string &);
00228 eyedb::Status setUser(unsigned int a0, char );
00229 std::string getUser(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00230 char getUser(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00231
00232 eyedb::Status setConf(const std::string &);
00233 eyedb::Status setConf(unsigned int a0, char );
00234 std::string getConf(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00235 char getConf(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00236 virtual ~WConfig() {garbageRealize();}
00237
00238 protected:
00239 WConfig(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00240 WConfig(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00241 WConfig(const WConfig *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00242
00243 private:
00244 void initialize(eyedb::Database *_db);
00245
00246 public:
00247 WConfig(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00248 WConfig(const WConfig *, eyedb::Bool = eyedb::False);
00249 WConfig(const eyedb::Class *, eyedb::Data);
00250 };
00251
00252 class Date : public eyedb::Struct {
00253
00254 public:
00255 Date(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00256 Date(const Date& x);
00257
00258 virtual eyedb::Object *clone() const {return new Date(*this);};
00259
00260 Date& operator=(const Date& x);
00261
00262 virtual Date *asDate() {return this;}
00263 virtual const Date *asDate() const {return this;}
00264
00265 eyedb::Status setJulian(eyedblib::int32 );
00266 eyedblib::int32 getJulian(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00267 virtual ~Date() {garbageRealize();}
00268
00269
00270 private:
00271 char string_date[16];
00272
00273 virtual void userCopy(const Object &);
00274 virtual void userInitialize();
00275 void setClientData();
00276
00277 public:
00278 static Date * date(Database * db);
00279 static Date * date(Database * db, const Date & d);
00280 static Date * date(Database * db, eyedblib::int32 julian_day);
00281 static Date * date(Database * db, eyedblib::int32 year, Month::Type m, eyedblib::int16 day);
00282 static Date * date(Database * db, const char * d);
00283 static eyedblib::int32 julian(const char * d);
00284 eyedblib::int32 year() const;
00285 eyedblib::int16 month() const;
00286 eyedblib::int16 day() const;
00287 eyedblib::int16 day_of_year() const;
00288 Month::Type month_of_year() const;
00289 Weekday::Type day_of_week() const;
00290 const char * toString() const;
00291 Bool is_leap_year() const;
00292 Bool is_equal(const Date & d) const;
00293 Bool is_greater(const Date & d) const;
00294 Bool is_greater_or_equal(const Date & d) const;
00295 Bool is_less(const Date & d) const;
00296 Bool is_less_or_equal(const Date & d) const;
00297 Bool is_between(const Date & d1, const Date & d2) const;
00298 Date & next(Weekday::Type day);
00299 Date & previous(Weekday::Type day);
00300 Date & add_days(eyedblib::int32 days);
00301 Date & substract_days(eyedblib::int32 days);
00302 eyedblib::int32 substract_date(const Date & d) const;
00303 Status set_julian(eyedblib::int32 julian_day);
00304
00305
00306 protected:
00307 Date(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00308 Date(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00309 Date(const Date *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00310
00311 private:
00312 void initialize(eyedb::Database *_db);
00313
00314 public:
00315 Date(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00316 Date(const Date *, eyedb::Bool = eyedb::False);
00317 Date(const eyedb::Class *, eyedb::Data);
00318 };
00319
00320 class Time : public eyedb::Struct {
00321
00322 public:
00323 Time(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00324 Time(const Time& x);
00325
00326 virtual eyedb::Object *clone() const {return new Time(*this);};
00327
00328 Time& operator=(const Time& x);
00329
00330 virtual Time *asTime() {return this;}
00331 virtual const Time *asTime() const {return this;}
00332
00333 eyedb::Status setUsecs(eyedblib::int64 );
00334 eyedblib::int64 getUsecs(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00335
00336 eyedb::Status setTz(eyedblib::int16 );
00337 eyedblib::int16 getTz(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00338 virtual ~Time() {garbageRealize();}
00339
00340
00341 private:
00342 char string_time[48];
00343
00344 virtual void userCopy(const Object &);
00345 virtual void userInitialize();
00346 void setClientData();
00347 public:
00348
00349 Status set_usecs(eyedblib::int64 usecs, eyedblib::int16 tz);
00350 static void get_local_time_zone(eyedblib::int16 * tz_hour, eyedblib::int16 * tz_min);
00351 static Time * gmt_time(Database * db);
00352 static Time * local_time(Database * db);
00353 static Time * time(Database * db, const Time & t);
00354 static Time * time(Database * db, eyedblib::int64 usec);
00355 static Time * time(Database * db, eyedblib::int64 usec, eyedblib::int16 tz);
00356 static Time * time(Database * db, eyedblib::int16 hours, eyedblib::int16 min, eyedblib::int16 sec, eyedblib::int16 msec);
00357 static Time * time(Database * db, eyedblib::int16 hours, eyedblib::int16 min, eyedblib::int16 sec, eyedblib::int16 msec, eyedblib::int16 usec);
00358 static Time * time(Database * db, eyedblib::int16 hours, eyedblib::int16 min, eyedblib::int16 sec, eyedblib::int16 msec, eyedblib::int16 tz_hour, eyedblib::int16 tz_minute);
00359 static Time * time(Database * db, eyedblib::int16 hours, eyedblib::int16 min, eyedblib::int16 sec, eyedblib::int16 msec, eyedblib::int16 usec, eyedblib::int16 tz_hour, eyedblib::int16 tz_minute);
00360 static Time * time(Database * db, const char * t);
00361 static eyedblib::int64 usec_time(const char * t);
00362 eyedblib::int16 hour() const;
00363 eyedblib::int16 minute() const;
00364 eyedblib::int16 second() const;
00365 eyedblib::int16 millisecond() const;
00366 eyedblib::int16 tz_hour() const;
00367 eyedblib::int16 tz_minute() const;
00368 const char * toString() const;
00369 Bool is_equal(const Time & t) const;
00370 Bool is_greater(const Time & t) const;
00371 Bool is_greater_or_equal(const Time & t) const;
00372 Bool is_less(const Time & t) const;
00373 Bool is_less_or_equal(const Time & t) const;
00374 Bool is_between(const Time & t1, const Time &t2) const;
00375 Time & add_interval(const TimeInterval & i);
00376 Time & substract_interval(const TimeInterval & i);
00377 TimeInterval * substract_time(const Time & t);
00378 eyedblib::int16 gmt_hour() const;
00379 eyedblib::int16 gmt_minute() const;
00380 eyedblib::int16 microsecond() const;
00381
00382
00383 protected:
00384 Time(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00385 Time(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00386 Time(const Time *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00387
00388 private:
00389 void initialize(eyedb::Database *_db);
00390
00391 public:
00392 Time(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00393 Time(const Time *, eyedb::Bool = eyedb::False);
00394 Time(const eyedb::Class *, eyedb::Data);
00395 };
00396
00397 class TimeStamp : public eyedb::Struct {
00398
00399 public:
00400 TimeStamp(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00401 TimeStamp(const TimeStamp& x);
00402
00403 virtual eyedb::Object *clone() const {return new TimeStamp(*this);};
00404
00405 TimeStamp& operator=(const TimeStamp& x);
00406
00407 virtual TimeStamp *asTimeStamp() {return this;}
00408 virtual const TimeStamp *asTimeStamp() const {return this;}
00409
00410 eyedb::Status setUsecs(eyedblib::int64 );
00411 eyedblib::int64 getUsecs(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00412
00413 eyedb::Status setTz(eyedblib::int16 );
00414 eyedblib::int16 getTz(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00415 virtual ~TimeStamp() {garbageRealize();}
00416
00417
00418 private:
00419 Time ts_time;
00420 Date ts_date;
00421 char string_time_stamp[64];
00422
00423 virtual void userCopy(const Object &);
00424 virtual void userInitialize();
00425 void setClientData();
00426 public:
00427 static TimeStamp * gmt_time_stamp(Database * db);
00428 static TimeStamp * local_time_stamp(Database * db);
00429 static TimeStamp * time_stamp(Database * db, const TimeStamp &);
00430 static TimeStamp * time_stamp(Database * db, eyedblib::int64 usec);
00431 static TimeStamp * time_stamp(Database * db, eyedblib::int64 usec, eyedblib::int16 tz);
00432 static TimeStamp * time_stamp(Database * db, eyedblib::int32 julian_day, eyedblib::int64 usec);
00433 static TimeStamp * time_stamp(Database * db, eyedblib::int32 julian_day, eyedblib::int64 usec, eyedblib::int16 tz);
00434 static TimeStamp * time_stamp(Database * db, const Date & d, const Time & t);
00435 static TimeStamp * time_stamp(Database * db, const Date & d);
00436 static TimeStamp * time_stamp(Database * db, const Date & d, eyedblib::int16 tz_hour, eyedblib::int16 tz_min);
00437 static TimeStamp * time_stamp(Database * db, const char * t);
00438 static eyedblib::int64 usec_time_stamp(const char * ts);
00439 const Date & date() const;
00440 const Time & time() const;
00441 eyedblib::int32 year() const;
00442 eyedblib::int16 month() const;
00443 eyedblib::int16 day() const;
00444 eyedblib::int16 hour() const;
00445 eyedblib::int16 minute() const;
00446 eyedblib::int16 second() const;
00447 eyedblib::int16 millisecond() const;
00448 eyedblib::int16 tz_hour() const;
00449 eyedblib::int16 tz_minute() const;
00450 const char * toString() const;
00451 TimeStamp & plus(const TimeInterval & i);
00452 TimeStamp & minus(const TimeInterval & i);
00453 Bool is_equal(const TimeStamp & ts) const;
00454 Bool is_greater(const TimeStamp & ts) const;
00455 Bool is_greater_or_equal(const TimeStamp & ts) const;
00456 Bool is_less(const TimeStamp & ts) const;
00457 Bool is_less_or_equal(const TimeStamp & ts) const;
00458 Bool is_between(const TimeStamp & ts1, const TimeStamp & ts2) const;
00459 eyedblib::int16 gmt_hour() const;
00460 eyedblib::int16 gmt_minute() const;
00461 eyedblib::int16 microsecond() const;
00462 Status set_usecs(eyedblib::int64 usec, eyedblib::int16 tz);
00463 TimeInterval * substract(const TimeStamp & ts);
00464
00465
00466 protected:
00467 TimeStamp(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00468 TimeStamp(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00469 TimeStamp(const TimeStamp *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00470
00471 private:
00472 void initialize(eyedb::Database *_db);
00473
00474 public:
00475 TimeStamp(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00476 TimeStamp(const TimeStamp *, eyedb::Bool = eyedb::False);
00477 TimeStamp(const eyedb::Class *, eyedb::Data);
00478 };
00479
00480 class TimeInterval : public eyedb::Struct {
00481
00482 public:
00483 TimeInterval(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00484 TimeInterval(const TimeInterval& x);
00485
00486 virtual eyedb::Object *clone() const {return new TimeInterval(*this);};
00487
00488 TimeInterval& operator=(const TimeInterval& x);
00489
00490 virtual TimeInterval *asTimeInterval() {return this;}
00491 virtual const TimeInterval *asTimeInterval() const {return this;}
00492
00493 eyedb::Status setUsecs(eyedblib::int64 );
00494 eyedblib::int64 getUsecs(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00495 virtual ~TimeInterval() {garbageRealize();}
00496
00497
00498 private:
00499 char string_time_interval[32];
00500
00501 virtual void userCopy(const Object &);
00502 virtual void userInitialize();
00503 void setClientData();
00504 public:
00505
00506 static TimeInterval * time_interval(Database *, eyedblib::int64 usecs);
00507 static TimeInterval * time_interval(Database *, eyedblib::int32 day, eyedblib::int16 hours, eyedblib::int16 min, eyedblib::int16 sec, eyedblib::int16 msec, eyedblib::int16 usec);
00508 eyedblib::int32 day() const;
00509 eyedblib::int16 hour() const;
00510 eyedblib::int16 minute() const;
00511 eyedblib::int16 second() const;
00512 eyedblib::int16 millisecond() const;
00513 eyedblib::int16 microsecond() const;
00514 Bool is_zero() const;
00515 const char * toString() const;
00516 TimeInterval & plus(const TimeInterval & i);
00517 TimeInterval & minus(const TimeInterval & i);
00518 TimeInterval & product(eyedblib::int64 val);
00519 TimeInterval & quotient(eyedblib::int64 val);
00520 Bool is_equal(const TimeInterval & i) const;
00521 Bool is_greater(const TimeInterval & i) const;
00522 Bool is_greater_or_equal(const TimeInterval & i) const;
00523 Bool is_less(const TimeInterval & i) const;
00524 Bool is_less_or_equal(const TimeInterval & i) const;
00525 Status set_usecs(eyedblib::int64 usecs);
00526
00527
00528 protected:
00529 TimeInterval(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00530 TimeInterval(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00531 TimeInterval(const TimeInterval *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00532
00533 private:
00534 void initialize(eyedb::Database *_db);
00535
00536 public:
00537 TimeInterval(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00538 TimeInterval(const TimeInterval *, eyedb::Bool = eyedb::False);
00539 TimeInterval(const eyedb::Class *, eyedb::Data);
00540 };
00541
00542 class OString : public eyedb::Struct {
00543
00544 public:
00545 OString(eyedb::Database * = 0, const eyedb::Dataspace * = 0);
00546 OString(const OString& x);
00547
00548 virtual eyedb::Object *clone() const {return new OString(*this);};
00549
00550 OString& operator=(const OString& x);
00551
00552 virtual OString *asOString() {return this;}
00553 virtual const OString *asOString() const {return this;}
00554
00555 eyedb::Status setS(const std::string &);
00556 eyedb::Status setS(unsigned int a0, char );
00557 std::string getS(eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00558 char getS(unsigned int a0, eyedb::Bool *isnull = 0, eyedb::Status * = 0) const;
00559 virtual ~OString() {garbageRealize();}
00560
00561
00562 static OString * ostring(Database * db);
00563 static OString * ostring(Database * db, const char * s);
00564 static OString * ostring(Database * db, const char * s, int len);
00565 static OString * ostring(Database * db, const char * s, int offset, int len);
00566 static OString * ostring(Database * db, const OString & s);
00567 static OString * ostring(Database * db, char s);
00568 static OString * ostring(Database * db, int s);
00569 static OString * ostring(Database * db, double s);
00570 static OString * concat(Database * db, const char * s1, const char * s2);
00571 static char * substr(const char *, int offset, int len);
00572 static char * toLower(const char *);
00573 static char * toUpper(const char *);
00574 static char * rtrim(const char *);
00575 static char * ltrim(const char *);
00576
00577 Status setChar(char c, int offset);
00578 char getChar(int offset) const;
00579
00580 OString & append(const char * s);
00581 OString & append(const char * s, int len);
00582 OString & append(const char * s, int offset, int len);
00583 OString & prepend(const char * s);
00584 OString & prepend(const char * s, int len);
00585 OString & prepend(const char * s, int offset, int len);
00586 OString & insert(int offset, const char *);
00587 OString & insert(int offset, const char *, int len);
00588 OString & insert(int offset, const char *, int offset2, int len);
00589
00590 int first(const char *) const;
00591 int last(const char *) const;
00592 int find(const char *, int offset) const;
00593 OString * substr(int offset, int len) const;
00594 OString * substr(const char * regexp, int offset) const;
00595
00596 OString & erase(int offset, int len);
00597 OString & replace(int offset, int len, const char *);
00598 OString & replace(int offset, int len, const char *, int len2);
00599 OString & replace(int offset, int len, const char *, int offset2, int len2);
00600 OString & replace(const char * s1, const char * s2);
00601 OString & assign(const char *);
00602 OString & assign(const char *, int len);
00603 OString & assign(const char *, int offset, int len);
00604 Status reset();
00605
00606 OString & toLower();
00607 OString & toUpper();
00608
00609 OString & rtrim();
00610 OString & ltrim();
00611
00612 int compare(const char *) const;
00613 int compare(const char *, int to) const;
00614 int compare(const char *, int from, int to) const;
00615 Bool is_null() const;
00616 Bool match(const char * regexp) const;
00617
00618 int length() const;
00619 char ** split(const char * separator, int & nb_pieces) const;
00620 char ** regexp_split(const char * regexp_separator, int & nb_pieces) const;
00621
00622
00623 protected:
00624 OString(eyedb::Database *_db, const eyedb::Dataspace *_dataspace, int) : eyedb::Struct(_db, _dataspace) {}
00625 OString(const eyedb::Struct *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00626 OString(const OString *x, eyedb::Bool share, int) : eyedb::Struct(x, share) {}
00627
00628 private:
00629 void initialize(eyedb::Database *_db);
00630
00631 public:
00632 OString(const eyedb::Struct *, eyedb::Bool = eyedb::False);
00633 OString(const OString *, eyedb::Bool = eyedb::False);
00634 OString(const eyedb::Class *, eyedb::Data);
00635 };
00636
00637
00638 extern eyedb::Object *utilsMakeObject(eyedb::Object *, eyedb::Bool=eyedb::True);
00639 extern eyedb::Bool utils_set_oid_check(eyedb::Bool);
00640 extern eyedb::Bool utils_get_oid_check();
00641
00642 extern eyedb::EnumClass *ImageType_Class;
00643 extern eyedb::EnumClass *Month_Class;
00644 extern eyedb::EnumClass *Weekday_Class;
00645 extern eyedb::StructClass *Image_Class;
00646 extern eyedb::StructClass *CURL_Class;
00647 extern eyedb::StructClass *WConfig_Class;
00648 extern eyedb::StructClass *Date_Class;
00649 extern eyedb::StructClass *Time_Class;
00650 extern eyedb::StructClass *TimeStamp_Class;
00651 extern eyedb::StructClass *TimeInterval_Class;
00652 extern eyedb::StructClass *OString_Class;
00653
00654
00655 }
00656
00657 #endif