00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: AstAbsAssociation.h,v 1.1.1.1 2005/04/21 01:15:12 zhangy Exp $ 00004 // 00005 // Description: 00006 // Class AstAbsAssociation 00007 // Abstract interface for simple one to one associations 00008 // 00009 // Environment: 00010 // Software developed for the BaBar Detector at the SLAC B-Factory. 00011 // 00012 // Author List: 00013 // Phil Strother LBNL 00014 // 00015 //------------------------------------------------------------------------ 00016 00017 #ifndef ASTABSASSOCIATION_HH 00018 #define ASTABSASSOCIATION_HH 00019 00020 //------------- 00021 // C Headers -- 00022 //------------- 00023 extern "C" { 00024 } 00025 00026 //--------------- 00027 // C++ Headers -- 00028 //--------------- 00029 00030 //---------------------- 00031 // Base Class Headers -- 00032 //---------------------- 00033 //DEL #include "AbsEvent/AbsEvtObj.hh" 00034 00035 //------------------------------- 00036 // Collaborating Class Headers -- 00037 //------------------------------- 00038 00039 00040 //------------------------------------ 00041 // Collaborating Class Declarations -- 00042 //------------------------------------ 00043 00044 template <class T1, class T2> class AstAbsAssociation; 00045 00046 // --------------------- 00047 // -- Class Interface -- 00048 // --------------------- 00049 00050 template <class T1, class T2> 00051 class AstAbsAssociation{ //DEL : public AbsEvtObj{ 00052 00053 //-------------------- 00054 // Declarations -- 00055 //-------------------- 00056 00057 // Typedefs, consts, and enums 00058 00059 //-------------------- 00060 // Instance Members -- 00061 //-------------------- 00062 00063 public: 00064 00065 // Constructors 00066 // Should be protected? 00067 AstAbsAssociation(); 00068 00069 // Copy Constructor 00070 00071 // Destructor 00072 virtual ~AstAbsAssociation( ); 00073 00074 // Operators 00075 00076 bool operator==( const AstAbsAssociation<T1, T2> & ) const; 00077 00078 bool operator!=( const AstAbsAssociation<T1, T2> & ) const; 00079 00080 // Selectors (const) 00081 00082 virtual const T1 *firstArgument() const=0; 00083 virtual const T2 *secondArgument() const=0; 00084 00085 private: 00086 00087 AstAbsAssociation( const AstAbsAssociation<T1, T2> &); 00088 00089 }; 00090 00091 //SKIP #ifdef BES_COMP_INST 00092 //CHANGE #include "MdcTrkRecon/Tools/AstAbsAssociation.cxx" 00093 #include "AstAbsAssociation.icc" 00094 //SKIP #endif // BES_COMP_INST 00095 00096 #endif 00097 00098 00099 00100 00101 00102 00103