class TShapeInterest : public TInterest { public: MCollectibleDeclarationsMacro(TShapeInterest); TShapeInterest(MNotifier*, const TToken&, const TShape&); TShapeInterest(const TShapeInterest&); virtual ~TShapeInterest(); const TShapeInterest& operator =(const TShapeInterest&); const TGlobalID GetShapeID() const; virtual TStream& operator >>=(TStream&) const; virtual TStream& operator <<=(TStream&); virtual Boolean IsEqual(const MCollectible*) const; virtual long Hash() const; protected: TShapeInterest(); private: TGlobalID fShapeID; enum { kOriginalVersion }; };