00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: AstAssociation.h,v 1.2 2009/12/23 02:59:56 zhangy Exp $ 00004 // 00005 // Description: 00006 // Class AstAssociation 00007 // Very simple class to provide an association between two 00008 // pointer types which don't obviously belong together in a class, 00009 // but need to go together for some reason. 00010 // 00011 // Environment: 00012 // Software developed for the BaBar Detector at the SLAC B-Factory. 00013 // 00014 // Author List: 00015 // Phil Strother Original author 00016 // 00017 // Copyright Information: 00018 // Copyright (C) 1997 Imperial College 00019 // 00020 // History: 00021 // Migration for BESIII MDC 00022 // 00023 //------------------------------------------------------------------------ 00024 00025 #ifndef ASTASSOCIATION_H 00026 #define ASTASSOCIATION_H 00027 00028 //------------- 00029 // C Headers -- 00030 //------------- 00031 extern "C" { 00032 } 00033 00034 //--------------- 00035 // C++ Headers -- 00036 //--------------- 00037 00038 //---------------------- 00039 // Base Class Headers -- 00040 //---------------------- 00041 #include "MdcTrkRecon/Tools/AstAbsAssociation.h" 00042 00043 //------------------------------- 00044 // Collaborating Class Headers -- 00045 //------------------------------- 00046 00047 00048 //------------------------------------ 00049 // Collaborating Class Declarations -- 00050 //------------------------------------ 00051 00052 template <class T1, class T2> class AstAssociation; 00053 00054 // --------------------- 00055 // -- Class Interface -- 00056 // --------------------- 00057 00058 template <class T1, class T2> 00059 class AstAssociation : public AstAbsAssociation<T1, T2> { 00060 00061 //-------------------- 00062 // Declarations -- 00063 //-------------------- 00064 00065 // Typedefs, consts, and enums 00066 00067 //-------------------- 00068 // Instance Members -- 00069 //-------------------- 00070 00071 public: 00072 00073 // Constructors 00074 AstAssociation(T1 *, T2 *); 00075 00076 // Copy Constructor 00077 AstAssociation( const AstAssociation<T1, T2> &); 00078 00079 AstAssociation<T1, T2> &operator=(const AstAssociation<T1, T2> &); 00080 // Destructor 00081 virtual ~AstAssociation( ); 00082 00083 // Selectors (const) 00084 00085 virtual const T1 *firstArgument() const; 00086 virtual const T2 *secondArgument() const; 00087 00088 virtual T1 *firstArgument(); 00089 virtual T2 *secondArgument(); 00090 // Modifiers 00091 00092 virtual void deleteMembers(); 00093 00094 protected: 00095 00096 // Helper functions 00097 00098 private: 00099 00100 // Friends 00101 00102 // Data members 00103 00104 T1 *_itsT1; 00105 T2 *_itsT2; 00106 00107 AstAssociation(); 00108 00109 //------------------ 00110 // Static Members -- 00111 //------------------ 00112 00113 public: 00114 00115 // Selectors (const) 00116 00117 // Modifiers 00118 00119 private: 00120 00121 // Data members 00122 00123 }; 00124 00125 //#ifdef BABAR_COMP_INST 00126 //CHANGE #include "AssocTools/AstAssociation.cxx" 00127 #include "AstAssociation.icc" 00128 //#endif // BABAR_COMP_INST 00129 00130 #endif 00131 00132 00133 00134 00135 00136 00137