From: <mk...@us...> - 2003-01-29 13:55:48
|
Update of /cvsroot/csp/APPLICATIONS/SimData/Include/SimData In directory sc8-pr-cvs1:/tmp/cvs-serv20631 Modified Files: InterfaceRegistry.h Log Message: more tweaking for win32 Index: InterfaceRegistry.h =================================================================== RCS file: /cvsroot/csp/APPLICATIONS/SimData/Include/SimData/InterfaceRegistry.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** InterfaceRegistry.h 29 Jan 2003 03:52:54 -0000 1.4 --- InterfaceRegistry.h 29 Jan 2003 13:55:43 -0000 1.5 *************** *** 191,197 **** // interface macro 0 #define __SIMDATA_XML_INTERFACE_0(classname, baseinterface) \ ! class InterfaceProxy; \ ! friend class InterfaceProxy; \ ! class InterfaceProxy: public baseinterface \ { \ SIMDATA(ObjectInterface)<classname> *_interface; \ --- 191,197 ---- // interface macro 0 #define __SIMDATA_XML_INTERFACE_0(classname, baseinterface) \ ! class classname##InterfaceProxy; \ ! friend class classname##InterfaceProxy; \ ! class classname##InterfaceProxy: public baseinterface \ { \ SIMDATA(ObjectInterface)<classname> *_interface; \ *************** *** 199,203 **** // interface macro 1 for normal classes ! #define __SIMDATA_XML_INTERFACE_1(classname, baseinterface) \ virtual SIMDATA(Object)* createObject() const { \ SIMDATA(Object) *o = new classname; \ --- 199,203 ---- // interface macro 1 for normal classes ! #define __SIMDATA_XML_INTERFACE_1(classname) \ virtual SIMDATA(Object)* createObject() const { \ SIMDATA(Object) *o = new classname; \ *************** *** 208,212 **** // interface macro 1 for abstract classes: no createObject ! #define __SIMDATA_XML_INTERFACE_V(classname, baseinterface) \ virtual SIMDATA(Object)* createObject() const { assert(0); return 0; } \ virtual bool isVirtual() const { return true; } --- 208,212 ---- // interface macro 1 for abstract classes: no createObject ! #define __SIMDATA_XML_INTERFACE_V(classname) \ virtual SIMDATA(Object)* createObject() const { assert(0); return 0; } \ virtual bool isVirtual() const { return true; } *************** *** 231,249 **** } \ 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()); \ --- 231,249 ---- } \ virtual void pack(SIMDATA(Object) *o, SIMDATA(Packer) &p) const { \ ! nqbaseinterface::pack(o, p); \ _interface->pack(o, p); \ } \ virtual void unpack(SIMDATA(Object) *o, SIMDATA(UnPacker) &p) const { \ ! nqbaseinterface::unpack(o, p); \ _interface->unpack(o, p); \ } \ virtual bool variableExists(const char *name) const { \ ! return _interface->variableExists(name) || nqbaseinterface::variableExists(name); \ } \ virtual bool variableRequired(const char *name) const { \ ! return _interface->variableRequired(name) || nqbaseinterface::variableRequired(name); \ } \ virtual std::vector<std::string> getVariableNames() const { \ ! std::vector<std::string> s = nqbaseinterface::getVariableNames(); \ std::vector<std::string> t = _interface->getVariableNames(); \ s.insert(s.end(), t.begin(), t.end()); \ *************** *** 251,255 **** } \ 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()); \ --- 251,255 ---- } \ virtual std::vector<std::string> getRequiredNames() const { \ ! std::vector<std::string> s = nqbaseinterface::getRequiredNames(); \ std::vector<std::string> t = _interface->getRequiredNames(); \ s.insert(s.end(), t.begin(), t.end()); \ *************** *** 262,275 **** s.insert(s.end(), t.begin(), t.end()); \ for (name = s.begin(); name != s.end(); name++) \ ! if (baseinterface::variableExists(name->c_str())) {\ throw SIMDATA(InterfaceError)("variable \"" + *name + "\" multiply defined in interface to class " #classname " or parent interface."); \ } \ } \ ! InterfaceProxy(const char * cname = #classname, SIMDATA(hasht) (*chash)() = &classname::_getClassHash): \ ! CTOR_INIT(baseinterface,InterfaceProxy)(cname, chash) \ { \ _interface = new SIMDATA(ObjectInterface)<classname>; \ (*_interface) //baseinterface::InterfaceProxy(cname, chash) //----------------------------------------- --- 262,277 ---- s.insert(s.end(), t.begin(), t.end()); \ for (name = s.begin(); name != s.end(); name++) \ ! if (nqbaseinterface::variableExists(name->c_str())) {\ ! std::cout << "variable \"" << *name << "\" multiply defined in interface to class " #classname " or parent interface." << std::endl; \ throw SIMDATA(InterfaceError)("variable \"" + *name + "\" multiply defined in interface to class " #classname " or parent interface."); \ } \ } \ ! classname##InterfaceProxy(const char * cname = #classname, SIMDATA(hasht) (*chash)() = &classname::_getClassHash): \ ! baseinterface(cname, chash) \ { \ _interface = new SIMDATA(ObjectInterface)<classname>; \ (*_interface) + //CTOR_INIT(baseinterface,InterfaceProxy)(cname, chash) //baseinterface::InterfaceProxy(cname, chash) //----------------------------------------- *************** *** 281,289 **** #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 --- 283,291 ---- #define BEGIN_SIMDATA_XML_INTERFACE(classname) \ __SIMDATA_XML_INTERFACE_0(classname, SIMDATA(InterfaceProxy)) \ ! __SIMDATA_XML_INTERFACE_1(classname) \ __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_XML_INTERFACE_2(classname, SIMDATA(InterfaceProxy), InterfaceProxy) #endif *************** *** 297,307 **** #else #define EXTEND_SIMDATA_XML_INTERFACE(classname, basename) \ ! __SIMDATA_XML_INTERFACE_0(classname, basename::InterfaceProxy) \ ! __SIMDATA_XML_INTERFACE_1(classname, basename::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, basename::InterfaceProxy) #endif --- 299,309 ---- #else #define EXTEND_SIMDATA_XML_INTERFACE(classname, basename) \ ! __SIMDATA_XML_INTERFACE_0(classname, basename::basename##InterfaceProxy) \ ! __SIMDATA_XML_INTERFACE_1(classname) \ ! __SIMDATA_XML_INTERFACE_2(classname, basename::basename##InterfaceProxy, basename##InterfaceProxy) #define EXTEND_SIMDATA_XML_VIRTUAL_INTERFACE(classname, basename) \ ! __SIMDATA_XML_INTERFACE_0(classname, basename::basename##InterfaceProxy) \ ! __SIMDATA_XML_INTERFACE_V(classname) \ ! __SIMDATA_XML_INTERFACE_2(classname, basename::basename##InterfaceProxy, basename##InterfaceProxy) #endif *************** *** 329,333 **** #define SIMDATA_REGISTER_INTERFACE(classname) \ namespace { \ ! classname::InterfaceProxy __##classname##_interface; \ } /* anonymous namespace */ --- 331,335 ---- #define SIMDATA_REGISTER_INTERFACE(classname) \ namespace { \ ! classname::classname##InterfaceProxy __##classname##_interface; \ } /* anonymous namespace */ |