push and pop functions; making assert... functions visible

git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1378 8eb893ce-cfd4-0310-b710-fb5ebe64c474
sayer/1.4-spce2.6
Stefan Sayer 17 years ago
parent cfc198a159
commit 97c44eced4

@ -170,6 +170,17 @@ void AmArg::push(const AmArg& a) {
v_array->push_back(a);
}
void AmArg::push(const string &key, const AmArg &val) {
assertStruct();
(*v_struct)[key] = val;
}
void AmArg::pop(AmArg &a) {
assertArray();
a = v_array->front();
v_array->erase(v_array->begin());
}
void AmArg::concat(const AmArg& a) {
assertArray();
if (a.getType() == Array) {

@ -122,11 +122,6 @@ class AmArg
void invalidate();
public:
void assertArray();
void assertArray() const;
void assertStruct();
void assertStruct() const;
AmArg()
: type(Undef)
@ -150,6 +145,12 @@ class AmArg
v_cstr = strdup(v);
}
AmArg(const string &v)
: type(CStr)
{
v_cstr = strdup(v.c_str());
}
AmArg(const ArgBlob v)
: type(Blob)
{
@ -165,6 +166,12 @@ class AmArg
~AmArg() { invalidate(); }
void assertArray();
void assertArray() const;
void assertStruct();
void assertStruct() const;
short getType() const { return type; }
AmArg& operator=(const AmArg& rhs);
@ -227,6 +234,8 @@ class AmArg
void assertArray(size_t s);
void push(const AmArg& a);
void push(const string &key, const AmArg &val);
void pop(AmArg &a);
void concat(const AmArg& a);

Loading…
Cancel
Save