#ifndef TCDCChannelMap_hxx #define TCDCChannelMap_hxx #include "IChannelMap.hxx" #include "ICDCChannelId.hxx" class ICDCChannelMap; namespace COMET { class ICDCChannelMap; } /// Class for CDC channel to geometry lookup class COMET::ICDCChannelMap : public COMET::IChannelMap { friend class IGeometryDatabase; protected: ICDCChannelMap(); public: virtual ~ICDCChannelMap(); /// Get the singleton instace of this class static ICDCChannelMap& Get(); /// Get geometry id from channel id virtual bool GetGeometryId(COMET::IGeometryId& geomId, COMET::ICDCChannelId channelId); ///Get channel id from geometry id virtual bool GetChannelId(COMET::ICDCChannelId& channelId, COMET::IGeometryId geomId); private: ///Return a bad GeometryId that is invalid for any sensible test ///Note that the exact value meaningless and should not be relied upon. inline const COMET::IGeometryId BadGeomId() const; ///Return a bad ChannelId that is invalid for any sensible test ///Note that the exact value meaningless and should not be relied upon. inline const COMET::ICDCChannelId BadChanId() const; static ICDCChannelMap *fCDCChannelMap; }; #endif