00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef BXSTRING_H
00017 #define BXSTRING_H
00018
00019 #include "BxDataObject.h"
00020
00021 class BxInteger;
00022
00046 class BxString : public BxDataObject
00047 {
00048 public:
00049
00050 BxString();
00051
00052
00053 BxString(const char* str, int size);
00054
00055
00056 BxString(const char* str, BxInteger* sizeObj);
00057
00058
00059 BxString(const char* str);
00060
00061
00062 BxString(const BxString& copy);
00063
00064
00065 ~BxString();
00066
00067 char* className() const { return "BxString"; }
00068 BxString* clone() const;
00069
00070 char* toString(bool xml);
00071 bool toStream(FILE*);
00072 bool toStreamBinary(FILE*);
00073
00074
00075 bool toStreamBinary(FILE*, BxByteOrder);
00076
00077 bool readFromFile();
00078 void readFromBuffer(const byte*);
00079 void setBinaryFilePtr(BxBinaryFile*);
00080
00081 void setType(int t) { dataClass_ = t; }
00082 int getType() const { return dataClass_; }
00083
00084 void setSize(int sz) { sizeInAll_ = sizeInBytes_ = sz; }
00085
00086 void setSizeObject(BxInteger* sizeObj) { sizeObject_ = sizeObj; }
00087 BxInteger* getSizeObject() const { return sizeObject_; }
00088 void setSizeType(const char* s);
00089
00090 void setSizeValue(long n);
00091 bx_long64 getSizeValue() const;
00092
00093 void setText(const char* str);
00094
00095 void setEncoding(char* encoding);
00096 char const* getEncoding() const { return encoding_; }
00097
00098 void setDelimiter(char c);
00099 char getDelimiter() const { return delimiter_; }
00100
00101 void setDelimiter(const char* s);
00102 char* getDelims() const;
00103
00104 private:
00105
00106
00107 char* getBuffer() { return buffer_; }
00108
00109
00110
00111
00112 char* buffer_;
00113
00114
00115 char* encoding_;
00116
00117
00118 byte delimiter_;
00119
00120
00121 BxInteger* sizeObject_;
00122 };
00123
00124 #endif