00001 #ifndef IRAWDATACONSVC_H 00002 #define IRAWDATACONSVC_H 00003 00004 #include <string> 00005 #include <vector> 00006 #include "GaudiKernel/IInterface.h" 00007 #include "GaudiKernel/IDataManagerSvc.h" 00008 #include "GaudiKernel/IDataProviderSvc.h" 00009 00010 using namespace std; 00011 00012 static const InterfaceID IID_IRawDataConSvc("IRawDataConSvc", 1, 0); 00013 00014 class IRawDataConSvc: virtual public IInterface 00015 { 00016 public: 00017 class Leaf: public vector<Leaf*> 00018 { 00019 public: 00020 string path; 00021 CLID clid; 00022 00023 Leaf(const string& p, const CLID& c) 00024 : path(p), clid(c) { 00025 00026 } 00027 00028 Leaf(const Leaf& copy) 00029 : vector<Leaf*>(0), path(copy.path), clid(copy.clid) { 00030 00031 } 00032 00033 Leaf& operator=(const Leaf& copy) { 00034 path = copy.path; 00035 clid = copy.clid; 00036 return *this; 00037 } 00038 bool operator==(const Leaf& copy) const { 00039 return path == copy.path && 00040 clid == copy.clid ; 00041 } 00042 }; 00043 00044 00045 virtual StatusCode declareObject(const Leaf& leaf) = 0; 00046 static const InterfaceID& interfaceID() { 00047 return IID_IRawDataConSvc; 00048 } 00049 }; 00050 00051 #endif