00001 // $Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/IProperty.h,v 1.6 2006/06/06 16:16:23 hmd Exp $ 00002 #ifndef GAUDIKERNEL_IPROPERTY_H 00003 #define GAUDIKERNEL_IPROPERTY_H 00004 00005 // Include Files 00006 #include "GaudiKernel/IInterface.h" 00007 #include <iostream> 00008 #include <string> 00009 #include <vector> 00010 00011 // Declaration of the interface ID ( interface id, major version, minor version) 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 // Reference to the input property 00032 ) = 0; 00034 virtual StatusCode setProperty( const std::string& s ) = 0; 00036 virtual StatusCode setProperty( const std::string& n, const std::string& v ) = 0; 00038 virtual StatusCode getProperty( Property* p // Pointer to property to be set 00039 ) const = 0; 00041 virtual const Property& getProperty( const std::string& name // Property 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