00001 // This file's extension implies that it's C, but it's really -*- C++ -*-. 00002 // $Id: IAuxStoreIO.h 584348 2014-02-20 09:21:15Z krasznaa $ 00011 #ifndef ATHCONTAINERSINTERFACES_IAUXSTOREIO_H 00012 #define ATHCONTAINERSINTERFACES_IAUXSTOREIO_H 00013 00014 00015 #include "AthContainersInterfaces/AuxTypes.h" 00016 #include <typeinfo> 00017 #include <set> 00018 00019 00020 namespace SG { 00021 00022 00038 class IAuxStoreIO 00039 { 00040 public: 00042 virtual ~IAuxStoreIO() {} 00043 00044 00055 virtual const void* getIOData (SG::auxid_t auxid) const = 0; 00056 00057 00069 virtual const std::type_info* getIOType (SG::auxid_t auxid) const = 0; 00070 00071 00075 virtual const SG::auxid_set_t& getDynamicAuxIDs() const = 0; 00076 00077 00085 virtual void selectAux (const std::set<std::string>& /*attr*/) {} 00086 00087 00094 virtual const SG::auxid_set_t& getSelectedAuxIDs() const { 00095 // default all are selected 00096 return getDynamicAuxIDs(); 00097 } 00098 00099 }; // class IAuxStoreIO 00100 00101 00102 } // namespace SG 00103 00104 00105 #ifndef XAOD_STANDALONE 00106 #include "SGTools/CLASS_DEF.h" 00107 CLASS_DEF( SG::IAuxStoreIO, 55879233, 1 ) 00108 #endif 00109 00110 00111 #endif // not ATHCONTAINERSINTERFACES_IAUXSTOREIO_H