From: <mk...@us...> - 2003-01-29 00:58:54
|
Update of /cvsroot/csp/APPLICATIONS/SimData/Include/SimData In directory sc8-pr-cvs1:/tmp/cvs-serv28425/Include/SimData Modified Files: InterfaceRegistry.h Log Message: Index: InterfaceRegistry.h =================================================================== RCS file: /cvsroot/csp/APPLICATIONS/SimData/Include/SimData/InterfaceRegistry.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** InterfaceRegistry.h 28 Jan 2003 23:26:06 -0000 1.2 --- InterfaceRegistry.h 29 Jan 2003 00:58:50 -0000 1.3 *************** *** 196,200 **** class InterfaceProxy: public baseinterface \ { \ ! SIMDATA(ObjectInterface)<classname> *interface; \ public: --- 196,200 ---- class InterfaceProxy: public baseinterface \ { \ ! SIMDATA(ObjectInterface)<classname> *_interface; \ public: *************** *** 202,206 **** #define __SIMDATA_XML_INTERFACE_1(classname, baseinterface) \ virtual SIMDATA(Object)* createObject() const { \ ! Object *o = new classname; \ assert(o); \ return o; \ --- 202,206 ---- #define __SIMDATA_XML_INTERFACE_1(classname, baseinterface) \ virtual SIMDATA(Object)* createObject() const { \ ! SIMDATA(Object) *o = new classname; \ assert(o); \ return o; \ *************** *** 213,225 **** virtual bool isVirtual() const { return true; } // interface macro 2 ! #define __SIMDATA_XML_INTERFACE_2(classname, baseinterface) \ virtual SIMDATA(hasht) getClassHash() const { return classname::_getClassHash(); } \ virtual const char * getClassName() const { return classname::_getClassName(); } \ virtual SIMDATA(MemberAccessorBase) * getAccessor(const char *name, const char *cname = 0) const { \ if (!cname) cname = #classname; \ ! SIMDATA(MemberAccessorBase) *p = interface->getAccessor(name); \ if (!p) { \ ! return baseinterface::getAccessor(name, cname); \ } \ return p; \ --- 213,231 ---- virtual bool isVirtual() const { return true; } + #ifdef _WIN32 + #define CTOR_INIT(a, b) b + #else + #define CTOR_INIT(a, b) a::b + #endif + // interface macro 2 ! #define __SIMDATA_XML_INTERFACE_2(classname, fqbaseinterface, baseinterface) \ virtual SIMDATA(hasht) getClassHash() const { return classname::_getClassHash(); } \ virtual const char * getClassName() const { return classname::_getClassName(); } \ virtual SIMDATA(MemberAccessorBase) * getAccessor(const char *name, const char *cname = 0) const { \ if (!cname) cname = #classname; \ ! SIMDATA(MemberAccessorBase) *p = _interface->getAccessor(name); \ if (!p) { \ ! return baseinterface::getAccessor(name, cname); \ } \ return p; \ *************** *** 227,245 **** virtual void pack(SIMDATA(Object) *o, SIMDATA(Packer) &p) const { \ baseinterface::pack(o, p); \ ! interface->pack(o, p); \ } \ virtual void unpack(SIMDATA(Object) *o, SIMDATA(UnPacker) &p) const { \ baseinterface::unpack(o, p); \ ! interface->unpack(o, p); \ } \ virtual bool variableExists(const char *name) const { \ ! return interface->variableExists(name) || baseinterface::variableExists(name); \ } \ virtual bool variableRequired(const char *name) const { \ ! return interface->variableRequired(name) || baseinterface::variableRequired(name); \ } \ virtual std::vector<std::string> getVariableNames() const { \ std::vector<std::string> s = baseinterface::getVariableNames(); \ ! std::vector<std::string> t = interface->getVariableNames(); \ s.insert(s.end(), t.begin(), t.end()); \ return s; \ --- 233,251 ---- virtual void pack(SIMDATA(Object) *o, SIMDATA(Packer) &p) const { \ baseinterface::pack(o, p); \ ! _interface->pack(o, p); \ } \ virtual void unpack(SIMDATA(Object) *o, SIMDATA(UnPacker) &p) const { \ baseinterface::unpack(o, p); \ ! _interface->unpack(o, p); \ } \ virtual bool variableExists(const char *name) const { \ ! return _interface->variableExists(name) || baseinterface::variableExists(name); \ } \ virtual bool variableRequired(const char *name) const { \ ! return _interface->variableRequired(name) || baseinterface::variableRequired(name); \ } \ virtual std::vector<std::string> getVariableNames() const { \ std::vector<std::string> s = baseinterface::getVariableNames(); \ ! std::vector<std::string> t = _interface->getVariableNames(); \ s.insert(s.end(), t.begin(), t.end()); \ return s; \ *************** *** 247,251 **** virtual std::vector<std::string> getRequiredNames() const { \ std::vector<std::string> s = baseinterface::getRequiredNames(); \ ! std::vector<std::string> t = interface->getRequiredNames(); \ s.insert(s.end(), t.begin(), t.end()); \ return s; \ --- 253,257 ---- virtual std::vector<std::string> getRequiredNames() const { \ std::vector<std::string> s = baseinterface::getRequiredNames(); \ ! std::vector<std::string> t = _interface->getRequiredNames(); \ s.insert(s.end(), t.begin(), t.end()); \ return s; \ *************** *** 253,258 **** void checkDuplicates() const throw(SIMDATA(InterfaceError)) { \ std::vector<std::string>::const_iterator name; \ ! std::vector<std::string> s = interface->getVariableNames(); \ ! std::vector<std::string> t = interface->getRequiredNames(); \ s.insert(s.end(), t.begin(), t.end()); \ for (name = s.begin(); name != s.end(); name++) \ --- 259,264 ---- void checkDuplicates() const throw(SIMDATA(InterfaceError)) { \ std::vector<std::string>::const_iterator name; \ ! std::vector<std::string> s = _interface->getVariableNames(); \ ! std::vector<std::string> t = _interface->getRequiredNames(); \ s.insert(s.end(), t.begin(), t.end()); \ for (name = s.begin(); name != s.end(); name++) \ *************** *** 262,269 **** } \ InterfaceProxy(const char * cname = #classname, SIMDATA(hasht) (*chash)() = &classname::_getClassHash): \ ! baseinterface::InterfaceProxy(cname, chash) \ { \ ! interface = new SIMDATA(ObjectInterface)<classname>; \ ! (*interface) //----------------------------------------- --- 268,275 ---- } \ InterfaceProxy(const char * cname = #classname, SIMDATA(hasht) (*chash)() = &classname::_getClassHash): \ ! CTOR_INIT(fqbaseinterface,InterfaceProxy)(cname, chash) \ { \ ! _interface = new SIMDATA(ObjectInterface)<classname>; \ ! (*_interface) //----------------------------------------- *************** *** 274,284 **** #else #define BEGIN_SIMDATA_XML_INTERFACE(classname) \ ! __SIMDATA_XML_INTERFACE_0(classname, ::SIMDATA(InterfaceProxy)) \ ! __SIMDATA_XML_INTERFACE_1(classname, ::SIMDATA(InterfaceProxy)) \ ! __SIMDATA_XML_INTERFACE_2(classname, ::SIMDATA(InterfaceProxy)) #define BEGIN_SIMDATA_XML_VIRTUAL_INTERFACE(classname) \ ! __SIMDATA_XML_INTERFACE_0(classname, ::SIMDATA(InterfaceProxy)) \ ! __SIMDATA_XML_INTERFACE_V(classname, ::SIMDATA(InterfaceProxy)) \ ! __SIMDATA_XML_INTERFACE_2(classname, ::SIMDATA(InterfaceProxy)) #endif --- 280,290 ---- #else #define BEGIN_SIMDATA_XML_INTERFACE(classname) \ ! __SIMDATA_XML_INTERFACE_0(classname, SIMDATA(InterfaceProxy)) \ ! __SIMDATA_XML_INTERFACE_1(classname, SIMDATA(InterfaceProxy)) \ ! __SIMDATA_XML_INTERFACE_2(classname, SIMDATA(InterfaceProxy), InterfaceProxy) #define BEGIN_SIMDATA_XML_VIRTUAL_INTERFACE(classname) \ ! __SIMDATA_XML_INTERFACE_0(classname, SIMDATA(InterfaceProxy)) \ ! __SIMDATA_XML_INTERFACE_V(classname, SIMDATA(InterfaceProxy)) \ ! __SIMDATA_XML_INTERFACE_2(classname, SIMDATA(InterfaceProxy), InterfaceProxy) #endif *************** *** 293,301 **** __SIMDATA_XML_INTERFACE_0(classname, basename::InterfaceProxy) \ __SIMDATA_XML_INTERFACE_1(classname, basename::InterfaceProxy) \ ! __SIMDATA_XML_INTERFACE_2(classname, basename::InterfaceProxy) #define EXTEND_SIMDATA_XML_VIRTUAL_INTERFACE(classname, basename) \ __SIMDATA_XML_INTERFACE_0(classname, basename::InterfaceProxy) \ __SIMDATA_XML_INTERFACE_V(classname, basename::InterfaceProxy) \ ! __SIMDATA_XML_INTERFACE_2(classname, basename::InterfaceProxy) #endif --- 299,309 ---- __SIMDATA_XML_INTERFACE_0(classname, basename::InterfaceProxy) \ __SIMDATA_XML_INTERFACE_1(classname, basename::InterfaceProxy) \ ! __SIMDATA_XML_INTERFACE_2(classname, basename::InterfaceProxy, InterfaceProxy) ! //__SIMDATA_XML_INTERFACE_2(classname, basename::InterfaceProxy, basename::InterfaceProxy) #define EXTEND_SIMDATA_XML_VIRTUAL_INTERFACE(classname, basename) \ __SIMDATA_XML_INTERFACE_0(classname, basename::InterfaceProxy) \ __SIMDATA_XML_INTERFACE_V(classname, basename::InterfaceProxy) \ ! __SIMDATA_XML_INTERFACE_2(classname, basename::InterfaceProxy, InterfaceProxy) ! //__SIMDATA_XML_INTERFACE_2(classname, basename::InterfaceProxy, basename::InterfaceProxy) #endif |