fipa_services
ServiceDirectoryEntry.hpp
Go to the documentation of this file.
1 #ifndef FIPA_SERVICES_SERVICE_DIRECTORY_ENTRY_HPP
2 #define FIPA_SERVICES_SERVICE_DIRECTORY_ENTRY_HPP
3 
4 #include <vector>
5 #include <map>
6 #include <string>
7 #include <base/Time.hpp>
8 #include <fipa_services/ServiceLocator.hpp>
9 
10 namespace fipa {
11 namespace services {
12 
13 typedef std::string Name;
14 typedef std::string Type;
15 typedef std::string Description;
16 
17 // http://www.fipa.org/specs/fipa00001/SC00001L.html#_Toc26668641
18 
24 {
25  Name mName;
26  Type mType;
27  ServiceLocator mLocator;
28  Description mDescription;
29  base::Time mTimestamp;
30 
31 public:
32 
34  static std::map<Field, std::string> FieldTxt;
35 
37 
38  ServiceDirectoryEntry(const Name& name, const Type& type, const ServiceLocator& locator, const Description& description);
39 
40  // Setter and getter for properties
41  Name getName() const { return mName; }
42 
43  void setName(const Name& name) { mName = name; }
44 
48  Type getType() const { return mType; }
49 
50  void setType(const Type& type) { mType = type; }
51 
55  ServiceLocator getLocator() const { return mLocator; }
56 
57  void setLocator(const ServiceLocator& locator) { mLocator = locator; }
58 
59  Description getDescription() const { return mDescription; }
60 
61  void setDescription(const Description& description) { mDescription = description; }
62 
63  base::Time getTimestamp() const { return mTimestamp; }
64 
69  void updateTimestamp() { mTimestamp = base::Time::now(); }
70 
75  std::string getFieldContent(ServiceDirectoryEntry::Field field) const;
76 
81  void setFieldContent(ServiceDirectoryEntry::Field field, const std::string& content);
82 
86  bool operator<(const ServiceDirectoryEntry& other) const { return this->getName() < other.getName(); }
87 
92  std::string toString() const;
93 
94 };
95 
96 typedef std::vector<ServiceDirectoryEntry> ServiceDirectoryList;
97 typedef std::map<Name, ServiceDirectoryEntry> ServiceDirectoryMap;
98 
99 } // end namespace services
100 } // end namespace fipa
101 
102 #endif // FIPA_SERVICES_SERVICE_DIRECTORY_ENTRY_HPP
base::Time getTimestamp() const
Definition: ServiceDirectoryEntry.hpp:63
Definition: ServiceDirectoryEntry.hpp:33
Field
Definition: ServiceDirectoryEntry.hpp:33
std::string getFieldContent(ServiceDirectoryEntry::Field field) const
Definition: ServiceDirectoryEntry.cpp:27
Description getDescription() const
Definition: ServiceDirectoryEntry.hpp:59
void setType(const Type &type)
Definition: ServiceDirectoryEntry.hpp:50
Name getName() const
Definition: ServiceDirectoryEntry.hpp:41
std::map< Name, ServiceDirectoryEntry > ServiceDirectoryMap
Definition: ServiceDirectoryEntry.hpp:97
ServiceLocator getLocator() const
Definition: ServiceDirectoryEntry.hpp:55
Definition: ServiceDirectoryEntry.hpp:33
std::string toString() const
Definition: ServiceDirectoryEntry.cpp:72
std::string Description
Definition: ServiceDirectoryEntry.hpp:15
std::vector< ServiceDirectoryEntry > ServiceDirectoryList
Definition: ServiceDirectoryEntry.hpp:96
ServiceDirectoryEntry()
Definition: ServiceDirectoryEntry.cpp:16
void setLocator(const ServiceLocator &locator)
Definition: ServiceDirectoryEntry.hpp:57
void setName(const Name &name)
Definition: ServiceDirectoryEntry.hpp:43
The entry definition for a service directory, containing name, type, locator and description.
Definition: ServiceDirectoryEntry.hpp:23
void setFieldContent(ServiceDirectoryEntry::Field field, const std::string &content)
Definition: ServiceDirectoryEntry.cpp:42
bool operator<(const ServiceDirectoryEntry &other) const
Definition: ServiceDirectoryEntry.hpp:86
Definition: ServiceDirectoryEntry.hpp:33
std::string Type
Definition: ServiceDirectoryEntry.hpp:14
Definition: ServiceDirectoryEntry.hpp:33
std::string Name
Definition: ServiceDirectoryEntry.hpp:13
static std::map< Field, std::string > FieldTxt
Definition: ServiceDirectoryEntry.hpp:34
void updateTimestamp()
Definition: ServiceDirectoryEntry.hpp:69
Definition: ServiceDirectoryEntry.hpp:33
Type getType() const
Definition: ServiceDirectoryEntry.hpp:48
Definition: ServiceDirectoryEntry.hpp:33
A ServiceLocator is a container for ServiceLocations.
Definition: ServiceLocator.hpp:96
Definition: DistributedServiceDirectory.cpp:5
void setDescription(const Description &description)
Definition: ServiceDirectoryEntry.hpp:61