20 #ifndef __YACSANY_HXX__
21 #define __YACSANY_HXX__
56 const char *
cStr()
const {
return _str; }
78 virtual Any *clone()
const = 0;
81 virtual bool operator ==(
const Any& other)
const = 0;
82 virtual int getIntValue()
const throw(
Exception) = 0;
83 virtual
bool getBoolValue() const throw(Exception) = 0;
84 virtual
double getDoubleValue() const throw(Exception) = 0;
85 virtual std::
string getStringValue() const throw(Exception) = 0;
93 virtual void putMyReprAtPlace(
char *data)
const = 0;
95 static bool IsNull(
char *data);
120 bool operator ==(
const Any& other)
const;
121 int getIntValue()
const throw(
Exception);
122 bool getBoolValue() const throw(Exception);
123 double getDoubleValue() const throw(Exception);
124 std::
string getStringValue() const throw(Exception);
126 void putMyReprAtPlace(
char *data) const;
127 static
void putReprAtPlace(
char *data, const
char *src, const
TypeCode *type,
bool deepCpy);
128 static
void destroyReprAtPlace(
char *data, const
TypeCode *type);
129 static
AnyPtr getOrBuildFromData(
char *data, const
TypeCode *type);
130 static
bool takeInChargeStorageOf(
TypeCode *type);
136 AtomAny(const
char *val);
137 AtomAny(const std::
string& val);
138 AtomAny(const AtomAny& other);
139 AtomAny(
char *data,
TypeCode* type);
155 SeqAlloc(
const SeqAlloc& other);
156 SeqAlloc(
unsigned int sizeOf1Elm);
159 void initCoarseMemory(
char *mem,
unsigned int size,
Deallocator dealloc);
160 void construct(
char *pt,
const Any *val);
161 void construct(
char *pt,
const char *val,
const TypeCode *tc,
bool deepCpy);
162 char *allocate(
unsigned int nbOfByte);
163 void destroy(
char *pt,
const TypeCode *tc);
164 void deallocate(
char *pt);
165 unsigned int size()
const;
166 std::vector<unsigned int> getSetItems()
const;
174 virtual void setEltAtRank(
int i,
const Any *elem)
throw(
Exception) = 0;
180 void checkTypeOf(
const Any *elem)
const throw(
Exception);
182 int getIntValue()
const throw(
Exception);
183 bool getBoolValue()
const throw(
Exception);
184 double getDoubleValue()
const throw(
Exception);
185 std::string getStringValue()
const throw(
Exception);
196 unsigned int size()
const {
return _alloc.size(); }
197 void pushBack(
const Any *elem);
198 bool operator ==(
const Any& other)
const;
203 static SequenceAny *New(
const std::vector<T>& vec);
208 std::vector<unsigned int>
getSetItems()
const {
return _alloc.getSetItems(); }
211 void putMyReprAtPlace(
char *data)
const;
212 static void putReprAtPlace(
char *data,
const char *src,
const TypeCode *type,
bool deepCpy);
213 static void destroyReprAtPlace(
char *data,
const TypeCode *type);
214 static AnyPtr getOrBuildFromData(
char *data,
const TypeCode *type);
215 static bool takeInChargeStorageOf(
TypeCode *type);
228 void realloc(
char *endOfCurrentAllocated,
const Any *elem);
229 char *performCpy(
char *srcStart,
char *srcFinish,
char *destStart);
241 bool operator ==(
const Any& other)
const;
243 unsigned int size()
const;
246 static ArrayAny *New(
const std::vector<T>& vec);
248 static ArrayAny *New(
const T *val,
unsigned int lgth);
251 void putMyReprAtPlace(
char *data)
const;
252 static void putReprAtPlace(
char *data,
const char *src,
const TypeCodeArray *type,
bool deepCpy);
253 static void destroyReprAtPlace(
char *data,
const TypeCodeArray *type);
255 static bool takeInChargeStorageOf(
TypeCode *type);
261 ArrayAny(
const int *val,
unsigned int lgth);
262 ArrayAny(
const bool *val,
unsigned int lgth);
263 ArrayAny(
const double *val,
unsigned int lgth);
264 ArrayAny(
const std::vector<int>& val);
265 ArrayAny(
const std::vector<double>& val);
266 ArrayAny(
const std::vector<std::string>& val);
278 bool operator ==(
const Any& other)
const;
283 void setEltAtRank(
const char *key,
const Any *elem)
throw(
Exception);
285 void putMyReprAtPlace(
char *data)
const;
286 static void putReprAtPlace(
char *data,
const char *src,
const TypeCodeStruct *type,
bool deepCpy);
287 static void destroyReprAtPlace(
char *data,
const TypeCodeStruct *type);