OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
CorbaNaming.h
Go to the documentation of this file.
1// -*- C++ -*-
20#ifndef RTC_CORBANAMING_H
21#define RTC_CORBANAMING_H
22
23#include <rtm/RTC.h>
24
25// STL includes
26#include <map>
27#include <string>
28#include <vector>
29
45namespace RTC
46{
86 {
87 public:
103 explicit CorbaNaming(CORBA::ORB_ptr orb);
104
122 CorbaNaming(CORBA::ORB_ptr orb, const char* name_server);
123
135 virtual ~CorbaNaming();
136
156 void init(const char* name_server);
157
158 bool isAlive();
159
160 using SystemException = CORBA::SystemException;
161 using NotFound = CosNaming::NamingContext::NotFound;
162 using CannotProceed = CosNaming::NamingContext::CannotProceed;
163 using InvalidName = CosNaming::NamingContext::InvalidName;
164 using AlreadyBound = CosNaming::NamingContext::AlreadyBound;
165 using NotEmpty = CosNaming::NamingContext::NotEmpty;
166 using InvalidAddress = CosNaming::NamingContextExt::InvalidAddress;
167 using ObjectList = std::vector<CORBA::Object_ptr>;
168
251 void bind(const CosNaming::Name& name, CORBA::Object_ptr obj,
252 bool force = true);
253
292 void bindByString(const char* string_name, CORBA::Object_ptr obj,
293 bool force = true);
294
355 void bindRecursive(CosNaming::NamingContext_ptr context,
356 const CosNaming::Name& name,
357 CORBA::Object_ptr obj);
358
396 void rebind(const CosNaming::Name& name, CORBA::Object_ptr obj,
397 bool force = true);
398
435 void rebindByString(const char* string_name, CORBA::Object_ptr obj,
436 bool force = true);
437
475 static void rebindRecursive(CosNaming::NamingContext_ptr context,
476 const CosNaming::Name& name,
477 CORBA::Object_ptr obj);
478
515 void bindContext(const CosNaming::Name& name,
516 CosNaming::NamingContext_ptr name_cxt,
517 bool force = true);
518
556 void bindContext(const char* string_name,
557 CosNaming::NamingContext_ptr name_cxt,
558 bool force = true);
559
585 void bindContextRecursive(CosNaming::NamingContext_ptr context,
586 const CosNaming::Name& name,
587 CosNaming::NamingContext_ptr name_cxt);
588
627 void rebindContext(const CosNaming::Name& name,
628 CosNaming::NamingContext_ptr name_cxt,
629 bool force = true);
630
669 void rebindContext(const char* string_name,
670 CosNaming::NamingContext_ptr name_cxt,
671 bool force = true);
672
698 static void rebindContextRecursive(CosNaming::NamingContext_ptr context,
699 const CosNaming::Name& name,
700 CosNaming::NamingContext_ptr name_cxt);
701
743 CORBA::Object_ptr resolve(const CosNaming::Name& name);
744
787 CORBA::Object_ptr resolve(const char* string_name);
788
826 void unbind(const CosNaming::Name& name);
827
870 void unbind(const char* string_name);
871
893 CosNaming::NamingContext_ptr newContext();
894
934 CosNaming::NamingContext_ptr
935 bindNewContext(const CosNaming::Name& name, bool force = true);
936
977 CosNaming::NamingContext_ptr
978 bindNewContext(const char* string_name, bool force = true);
979
1007 static void destroy(CosNaming::NamingContext_ptr context);
1008
1040 void destroyRecursive(CosNaming::NamingContext_ptr context);
1041
1055 void clearAll();
1056
1080 static void list(CosNaming::NamingContext_ptr name_cxt,
1081 CORBA::ULong how_many,
1082 CosNaming::BindingList_var& bl,
1083 CosNaming::BindingIterator_var& bi);
1120 void list(const char* string_name,
1121 CosNaming::BindingList_var& bl);
1122
1169 void listByKind(const char* string_name,
1170 const char* string_kind,
1171 CosNaming::BindingList_var& bl);
1172
1173 //============================================================
1174 // interface of NamingContextExt
1175 //============================================================
1201 static char* toString(const CosNaming::Name& name);
1202
1228 static CosNaming::Name toName(const char* sname);
1229
1259 char* toUrl(char* addr, char* string_name);
1260
1292 CORBA::Object_ptr resolveStr(const char* string_name);
1293
1294 //============================================================
1295 // Find functions
1296 //============================================================
1297
1298 // ObjectList find(const char* name, const char* kind);
1299 // ObjectList findById(const char* name, const char* kind);
1300 // ObjectList findByKind(const char* name, const char* kind);
1301
1334 static CORBA::Object_ptr bindOrResolve(CosNaming::NamingContext_ptr context,
1335 const CosNaming::Name& name,
1336 CORBA::Object_ptr obj);
1337
1371 static CosNaming::NamingContext_ptr
1372 bindOrResolveContext(CosNaming::NamingContext_ptr context,
1373 const CosNaming::Name& name,
1374 CosNaming::NamingContext_ptr new_context);
1375
1406 CosNaming::NamingContext_ptr
1407 bindOrResolveContext(CosNaming::NamingContext_ptr context,
1408 const CosNaming::Name& name);
1409
1427 const char* getNameServer();
1428
1446 CosNaming::NamingContext_ptr getRootContext();
1447
1469 static bool isNamingContext(CORBA::Object_ptr obj);
1470
1492 bool isNamingContext(const CosNaming::Name& name);
1493
1515 bool isNamingContext(const char* string_name);
1516
1546 static CosNaming::Name subName(const CosNaming::Name& name,
1547 CORBA::Long begin,
1548 CORBA::Long end = -1);
1549
1550 protected:
1583 static void nameToString(const CosNaming::Name& name, char* string_name,
1584 CORBA::ULong slen);
1613 static CORBA::ULong getNameLength(const CosNaming::Name& name);
1614
1640 static unsigned int split(const std::string& input,
1641 const std::string& delimiter,
1642 std::vector<std::string>& results);
1643
1651 CORBA::ORB_ptr m_ptrORB;
1652
1660 std::string m_nameServer;
1668 CosNaming::NamingContextExt_var m_rootContext;
1669
1670 private:
1671 CORBA::ULong m_blLength;
1672
1673 }; // class CorbaNaming
1674} // namespace RTC
1675
1676#endif // end of RTC_CORBANAMING_H
RTComponent header.
CORBA Naming Service helper class.
Definition CorbaNaming.h:86
CORBA::Object_ptr resolveStr(const char *string_name)
Resolve from name of string representation and get object.
void rebindByString(const char *string_name, CORBA::Object_ptr obj, bool force=true)
Rebind Object.
CorbaNaming(CORBA::ORB_ptr orb)
Consructor.
void rebindContext(const char *string_name, CosNaming::NamingContext_ptr name_cxt, bool force=true)
Rebind NamingContext.
CosNaming::NamingContext::CannotProceed CannotProceed
Definition CorbaNaming.h:162
static char * toString(const CosNaming::Name &name)
Get string representation of given NameComponent.
CosNaming::NamingContext::InvalidName InvalidName
Definition CorbaNaming.h:163
bool isNamingContext(const char *string_name)
Determine whether the given string name is NamingContext.
static bool isNamingContext(CORBA::Object_ptr obj)
Determine whether the object is NamingContext.
static CosNaming::Name subName(const CosNaming::Name &name, CORBA::Long begin, CORBA::Long end=-1)
Get subset of given name component.
static void list(CosNaming::NamingContext_ptr name_cxt, CORBA::ULong how_many, CosNaming::BindingList_var &bl, CosNaming::BindingIterator_var &bi)
Get Binding of the given NamingContext.
CORBA::ORB_ptr m_ptrORB
ORB .
Definition CorbaNaming.h:1651
static void rebindRecursive(CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CORBA::Object_ptr obj)
Bind intermediate context recursively and rebind object.
CosNaming::NamingContextExt_var m_rootContext
The root context of specified name server .
Definition CorbaNaming.h:1668
CosNaming::NamingContext::NotEmpty NotEmpty
Definition CorbaNaming.h:165
void unbind(const CosNaming::Name &name)
Unbind a binding specified by NameComponent.
bool isNamingContext(const CosNaming::Name &name)
Determine whether the given name component is NamingContext.
virtual ~CorbaNaming()
Virtual destructor.
void bindRecursive(CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CORBA::Object_ptr obj)
Bind intermediate context recursively and bind object.
void bindByString(const char *string_name, CORBA::Object_ptr obj, bool force=true)
Bind object on specified string name position.
std::string m_nameServer
Name of the name server .
Definition CorbaNaming.h:1660
CosNaming::NamingContext_ptr bindOrResolveContext(CosNaming::NamingContext_ptr context, const CosNaming::Name &name)
Bind or resolve the given name component.
void rebindContext(const CosNaming::Name &name, CosNaming::NamingContext_ptr name_cxt, bool force=true)
Rebind NamingContext.
CORBA::Object_ptr resolve(const char *string_name)
Return object bound on the specified name.
static CosNaming::Name toName(const char *sname)
Resolve given string representation to NameComponent.
CosNaming::NamingContext::AlreadyBound AlreadyBound
Definition CorbaNaming.h:164
void clearAll()
Destroy all bindings.
void listByKind(const char *string_name, const char *string_kind, CosNaming::BindingList_var &bl)
Get all the binding with specified kind under given naming path.
CosNaming::NamingContext_ptr bindNewContext(const char *string_name, bool force=true)
Bind new NamingContext.
void rebind(const CosNaming::Name &name, CORBA::Object_ptr obj, bool force=true)
Rebind object.
CosNaming::NamingContext_ptr bindNewContext(const CosNaming::Name &name, bool force=true)
Bind new NamingContext.
CORBA::SystemException SystemException
Definition CorbaNaming.h:160
void unbind(const char *string_name)
Unbind a binding specified by string representation.
void destroyRecursive(CosNaming::NamingContext_ptr context)
Destroy the naming context recursively.
CosNaming::NamingContext_ptr newContext()
Create new NamingContext.
static unsigned int split(const std::string &input, const std::string &delimiter, std::vector< std::string > &results)
Split of string.
void list(const char *string_name, CosNaming::BindingList_var &bl)
Get all the binding under given naming path.
CORBA::Object_ptr resolve(const CosNaming::Name &name)
Return object bound on the specified NameComponent.
static void destroy(CosNaming::NamingContext_ptr context)
Destroy the naming context.
const char * getNameServer()
Get the name of name server.
char * toUrl(char *addr, char *string_name)
Get URL representation from given addr and string_name.
static CosNaming::NamingContext_ptr bindOrResolveContext(CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CosNaming::NamingContext_ptr new_context)
Bind or resolve the given name component.
void bindContext(const char *string_name, CosNaming::NamingContext_ptr name_cxt, bool force=true)
Bind NamingContext.
void init(const char *name_server)
Initialize the Naming Service.
void bind(const CosNaming::Name &name, CORBA::Object_ptr obj, bool force=true)
Bind object on specified name component position.
void bindContext(const CosNaming::Name &name, CosNaming::NamingContext_ptr name_cxt, bool force=true)
Bind NamingContext.
void bindContextRecursive(CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CosNaming::NamingContext_ptr name_cxt)
Bind intermediate context recursively and bind NamingContext.
static CORBA::Object_ptr bindOrResolve(CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CORBA::Object_ptr obj)
Bind or resolve the given name component.
std::vector< CORBA::Object_ptr > ObjectList
Definition CorbaNaming.h:167
static void nameToString(const CosNaming::Name &name, char *string_name, CORBA::ULong slen)
Get string representation of name component.
CorbaNaming(CORBA::ORB_ptr orb, const char *name_server)
Consructor.
CosNaming::NamingContext_ptr getRootContext()
Get the root context.
CosNaming::NamingContextExt::InvalidAddress InvalidAddress
Definition CorbaNaming.h:166
static void rebindContextRecursive(CosNaming::NamingContext_ptr context, const CosNaming::Name &name, CosNaming::NamingContext_ptr name_cxt)
Rebind intermediate context recursively and rebind NamingContext.
CosNaming::NamingContext::NotFound NotFound
Definition CorbaNaming.h:161
static CORBA::ULong getNameLength(const CosNaming::Name &name)
Get string length of the name component's string representation.
RT-Component.