/******************************************************************************* * BObject.h Beam Object * T.Barnaby, BEAM Ltd, 15/7/92 ******************************************************************************* */ #ifndef BOBJECT_H #define BOBJECT_H 1 #include <BType.h> #include <BDataBuf.h> #include <BString.h> #include <BNameValue.h> #include <BList.h> #include <BError.h> class BObject; typedef BNameValue<BObject*> BMember; typedef BNameValueList<BObject*> BMemberList; class BObject { public: BObject(); virtual ~BObject(); // Data Storage Functions virtual BError getBinary(BDataBuf& buf); virtual BError setBinary(BDataBuf& buf); // Object info Functions virtual BString getString(); virtual BError setString(BString str); virtual BMemberList getMemberList(); virtual BError addMember(BString name, BObject* object); #ifdef ZAP // Object access functions BObject* getMember(BString name); BError setMember(BString name, BObject* value); BString getMemberString(BString name); BError setMemberString(BString name, BString value); #endif virtual void printIt(); public: virtual BType& getType(); static BObject* createObj(); static BType otype; }; #endif