// $Revision: 1.4 $ // Copyright (C) 1994-1995 Taligent, Inc. All rights reserved. #ifndef TaligentSamples_PROTOCOLON #define TaligentSamples_PROTOCOLON #ifndef Taligent_COREPRIMITIVECLASSES #include #endif #ifndef TaligentSamples_STANDARDFUNCTORON #include "StandardFunctorOn.h" #endif //---- MProtocolOn ----------------------------------------------------------- template class MProtocolOn { public: TaligentTypeExtensionTemplateDeclarationsMacro_Abstract(MProtocolOn,AType) public: MProtocolOn(); virtual ~MProtocolOn(); virtual TStream& operator>>=(TStream& toStream) const; virtual TStream& operator<<=(TStream& fromStream); virtual void Do(TStandardFunctorOn& functor) = 0; private: enum {kOriginalVersion}; }; //---- MProtocolOn --------------------------------------------------------- TaligentTypeExtensionTemplateMacro_Abstract(MProtocolOn,AType) template MProtocolOn::MProtocolOn() { } template MProtocolOn::~MProtocolOn() { } template TStream& MProtocolOn::operator>>=(TStream& toStream) const { ::WriteVersion(toStream, kOriginalVersion); return toStream; } template TStream& MProtocolOn::operator<<=(TStream& fromStream) { ::ReadVersion(fromStream, kOriginalVersion, kOriginalVersion); return fromStream; } #endif