fipa_services
Public Types | Public Member Functions | Protected Attributes | List of all members
fipa::services::ServiceDirectory Class Reference

Class to describe FIPA service directory. More...

#include <ServiceDirectory.hpp>

Inheritance diagram for fipa::services::ServiceDirectory:
fipa::services::DistributedServiceDirectory

Public Types

typedef boost::shared_ptr< ServiceDirectoryPtr
 

Public Member Functions

 ServiceDirectory ()
 
virtual ~ServiceDirectory ()
 
virtual void registerService (const ServiceDirectoryEntry &entry)
 
void deregisterService (const ServiceDirectoryEntry &entry)
 
virtual void deregisterService (const std::string &regex, ServiceDirectoryEntry::Field field=ServiceDirectoryEntry::NAME)
 
ServiceDirectoryList search (const ServiceDirectoryEntry &entry) const
 
virtual ServiceDirectoryList search (const std::string &regex, ServiceDirectoryEntry::Field field=ServiceDirectoryEntry::NAME, bool doThrow=true) const
 
void modify (const ServiceDirectoryEntry &entry)
 
void updateTimestamp ()
 
base::Time getTimestamp () const
 
ServiceDirectoryList getAll () const
 
virtual void mergeSelectively (const ServiceDirectoryList &updateList, ServiceDirectoryEntry::Field selectiveMerge)
 

Protected Attributes

boost::mutex mMutex
 

Detailed Description

Class to describe FIPA service directory.

Member Typedef Documentation

Constructor & Destructor Documentation

fipa::services::ServiceDirectory::ServiceDirectory ( )
virtual fipa::services::ServiceDirectory::~ServiceDirectory ( )
inlinevirtual

Member Function Documentation

void fipa::services::ServiceDirectory::deregisterService ( const ServiceDirectoryEntry entry)

Deregister service

Parameters
entry(only the name is relevant for deregistration)
Exceptions
NotFound
void fipa::services::ServiceDirectory::deregisterService ( const std::string &  regex,
ServiceDirectoryEntry::Field  field = ServiceDirectoryEntry::NAME 
)
virtual

Remove a service by name

Parameters
regexregular expression
fieldfield to apply the regular expression on, default is name of the entry

Reimplemented in fipa::services::DistributedServiceDirectory.

ServiceDirectoryList fipa::services::ServiceDirectory::getAll ( ) const

Retrieve all registered services

Returns
List of all registered services
base::Time fipa::services::ServiceDirectory::getTimestamp ( ) const
inline

Get timestamp

Returns
Timestamp when updateTimestamp has been called the last time
void fipa::services::ServiceDirectory::mergeSelectively ( const ServiceDirectoryList updateList,
ServiceDirectoryEntry::Field  selectiveMerge 
)
virtual

Merge the existing service directory list with the existing.

Uses each unique value to update corresponding field, e.g., when locator is set as field for the selective merge then all instances with the same locator are removed from the service directory and are thus overriden by the updatelist

Parameters
updateListlist of services selected to update the existing one
selectiveMergeField by which entries are identified for removal
void fipa::services::ServiceDirectory::modify ( const ServiceDirectoryEntry entry)

Modify an existing entry – an entry will be identified by the same name

Parameters
entryEntry that updates the existing one
Exceptions
NotFoundif entry does not exist
void fipa::services::ServiceDirectory::registerService ( const ServiceDirectoryEntry entry)
virtual

Register service

Parameters
entrydescription object to add
Exceptions
DuplicateEntry

Reimplemented in fipa::services::DistributedServiceDirectory.

ServiceDirectoryList fipa::services::ServiceDirectory::search ( const ServiceDirectoryEntry entry) const

Search for a service matching the given name

Parameters
entryEntry to be searched for
Returns
Result list
ServiceDirectoryList fipa::services::ServiceDirectory::search ( const std::string &  regex,
ServiceDirectoryEntry::Field  field = ServiceDirectoryEntry::NAME,
bool  doThrow = true 
) const
virtual

Search for a service with a name matching the given regular expression

Parameters
regexRegular expression to match
fieldField name to apply the regex to
doThrowFlag to control the throw behaviour, i.e. to throw an exception when no result has been found
Exceptions
NotFound
Returns
Result list

Reimplemented in fipa::services::DistributedServiceDirectory.

void fipa::services::ServiceDirectory::updateTimestamp ( )
inline

Update modification time

Member Data Documentation

boost::mutex fipa::services::ServiceDirectory::mMutex
protected

The documentation for this class was generated from the following files: