#ifndef base_ex_hh #define base_ex_hh #include #include namespace cmw { class Counter; class SendBufferFile; template class ReceiveBufferFile; } uint16_t const Base_num = 7001; uint16_t const Derived_num = 7002; class Base : public boost::intrusive::set_base_hook<> { int32_t b_; virtual void MarshalTypeNum (::cmw::SendBufferFile&) const; protected: virtual void MarshalMemberData (::cmw::SendBufferFile&) const; public: explicit Base(int i) : b_(i) {} template static Base* BuildPolyInstance (::cmw::ReceiveBufferFile& buf); template explicit Base (::cmw::ReceiveBufferFile& buf); void Marshal (::cmw::SendBufferFile& buf, bool sendType) const { MarshalTypeNum(buf); MarshalMemberData(buf); } virtual void CalculateMarshallingSize (::cmw::Counter&) const; virtual void PrintName() const { std::cout << "Base" << std::endl; } friend bool operator< (Base const &a, Base const& b) { return a.b_ < b.b_; } }; #endif