Go to the documentation of this file.00001
00002 #ifndef JOBOPTIONSVC_PROPERTY_NAME_H_
00003 #define JOBOPTIONSVC_PROPERTY_NAME_H_
00004
00005
00006
00007
00008
00009 #include <string>
00010
00011
00012
00013 #include <boost/scoped_ptr.hpp>
00014 #include <boost/shared_ptr.hpp>
00015
00016 #include "Position.h"
00017
00018 namespace Gaudi { namespace Parsers {
00019
00020 class Position;
00021
00022 class PropertyName {
00023 public:
00024
00025 typedef boost::shared_ptr<PropertyName> SharedPtr;
00026 typedef boost::shared_ptr<const PropertyName> ConstSharedPtr;
00027 typedef boost::scoped_ptr<PropertyName> ScopedPtr;
00028 typedef boost::scoped_ptr<const PropertyName> ConstScopedPtr;
00029
00030 explicit PropertyName(const std::string& property): client_(""),
00031 property_(property) {}
00032 PropertyName(const std::string& property, const Position& pos):
00033 client_(""), property_(property), position_(pos) {}
00034 PropertyName(const std::string& client, const std::string& property):
00035 client_(client), property_(property){}
00036 PropertyName(const std::string& client, const std::string& property,
00037 const Position& pos):
00038 client_(client), property_(property), position_(pos) {}
00039 const std::string& client() const { return client_;}
00040 const std::string& property() const { return property_;}
00041 const Position& position() const { return position_;}
00042 std::string FullName() const;
00043 std::string ToString() const;
00044 bool HasClient() const { return client_.length() > 0;}
00045 bool HasPosition() const { return position_.Exists();}
00046 private:
00047 std::string client_;
00048 std::string property_;
00049 Position position_;
00050 };
00051
00052 } }
00053
00054 #endif // JOBOPTIONSVC_PROPERTY_NAME_H_