00001
00002 #ifndef GAUDIKERNEL_IPROPERTY_H
00003 #define GAUDIKERNEL_IPROPERTY_H
00004
00005
00006 #include "GaudiKernel/IInterface.h"
00007 #include <iostream>
00008 #include <string>
00009 #include <vector>
00010
00011
00012 static const InterfaceID IID_IProperty(20, 2 , 0);
00013
00023 class Property;
00024
00025 class IProperty : virtual public IInterface {
00026 public:
00028 static const InterfaceID& interfaceID() { return IID_IProperty; }
00029
00031 virtual StatusCode setProperty( const Property& p
00032 ) = 0;
00034 virtual StatusCode setProperty( std::istream& s ) = 0;
00036 virtual StatusCode setProperty( const std::string& n, const std::string& v ) = 0;
00038 virtual StatusCode getProperty( Property* p
00039 ) const = 0;
00041 virtual const Property& getProperty( const std::string& name
00042 ) const = 0;
00044 virtual StatusCode getProperty( const std::string& n, std::string& v ) const = 0;
00046 virtual const std::vector<Property*>& getProperties( ) const = 0;
00047 };
00048 #endif // GAUDIKERNEL_IPROPERTY_H
00049
00050