00001 #ifndef SERVICEINTERFACE_H 00002 #define SERVICEINTERFACE_H 00003 00004 00005 //#include "lo/ObjectContainer.h" 00006 00007 #ifndef LO_TYPE_PERCEIVED 00008 #define LO_TYPE_PERCEIVED 1 00009 #endif 00010 00011 #include <string> 00012 00013 class Matrix; 00014 namespace jlo 00015 { 00016 class ServiceLocatedObject; 00017 class XMLTag; 00018 00024 class ServiceInterface 00025 { 00026 public: 00031 ServiceInterface(const char* configFile); 00032 ~ServiceInterface(); 00033 00034 00038 XMLTag* SaveList(); 00042 void LoadList(XMLTag* tag); 00043 00047 static ServiceLocatedObject* FServiceLocatedObject(XMLTag* tag); 00051 static void AddMapString(ServiceLocatedObject* pose, std::string mapstring); 00055 static void RemoveMapString(std::string mapstring); 00059 static ServiceLocatedObject* FServiceLocatedObject(ServiceLocatedObject* pose, Matrix m, Matrix cov, unsigned long type = LO_TYPE_PERCEIVED); 00063 static ServiceLocatedObject* FServiceLocatedObjectWorld(); 00067 static ServiceLocatedObject* FServiceLocatedObjectCopy(ServiceLocatedObject* pose, ServiceLocatedObject* parent = NULL); 00068 00072 static void DisposeList(); 00073 00077 static unsigned long FreeServiceLocatedObject(ServiceLocatedObject* pose); 00078 00082 static ServiceLocatedObject* GetServiceLocatedObject(unsigned long id); 00086 static unsigned long GetServiceLocatedObjectID(std::string); 00090 static unsigned long SetServiceLocatedObject(ServiceLocatedObject* pose); 00094 static ServiceLocatedObject* GetServiceLocatedObjectIndex(unsigned long index); 00095 }; 00096 } 00097 #endif /*ServiceInterface*/ 00098