diff --git a/include/hpp/corbaserver/rbprm/server.hh b/include/hpp/corbaserver/rbprm/server.hh index 365074fe79f7d5462cd6356ad282705933c1e3e1..e6aa05b3fc255c6ee4b63a6ee75ac4f3866fa858 100644 --- a/include/hpp/corbaserver/rbprm/server.hh +++ b/include/hpp/corbaserver/rbprm/server.hh @@ -43,6 +43,8 @@ class HPP_RBPRM_CORBA_DLLAPI Server : public corbaServer::ServerPlugin { std::string name() const; + ::CORBA::Object_ptr servant (const std::string& name) const; + public: corba::Server<impl::RbprmBuilder>* rbprmBuilder_; }; // class Server diff --git a/src/hpp/corbaserver/rbprm/client.py b/src/hpp/corbaserver/rbprm/client.py index 7f449c18cca25cd50cb04a96c18422bfb22da158..68453b656cebf1647299faecf9af981d60fbbb48 100755 --- a/src/hpp/corbaserver/rbprm/client.py +++ b/src/hpp/corbaserver/rbprm/client.py @@ -27,7 +27,7 @@ class Client(_Parent): """ defaultClients = { - 'rbprmbuilder': RbprmBuilder, + 'builder': RbprmBuilder, } def __init__(self, url=None, context="corbaserver"): @@ -40,7 +40,7 @@ class Client(_Parent): self._initOrb(url) self._makeClients("rbprm", self.defaultClients, context) - # self.rbprmbuilder is created by self._makeClients + # self.builder is created by self._makeClients # The old code stored the object as self.rbprm # Make it backward compatible. - self.rbprm = self.rbprmbuilder + self.rbprm = self.builder diff --git a/src/server.cc b/src/server.cc index 6327e88064efb8dd9102ebc6f3c3ee79f1a8c8ab..4744ab05cace6e59f10fb6930d07dee679d1b5b1 100644 --- a/src/server.cc +++ b/src/server.cc @@ -35,13 +35,13 @@ std::string Server::name() const { return "rbprm"; } /// Start corba server void Server::startCorbaServer(const std::string& contextId, const std::string& contextKind) { - bool mThd = parent()->multiThread(); - rbprmBuilder_ = new corba::Server<impl::RbprmBuilder>(0, NULL, mThd, "child"); - rbprmBuilder_->implementation().setServer(this); + initializeTplServer (rbprmBuilder_, contextId, contextKind, name(), "builder"); +} - if (rbprmBuilder_->startCorbaServer(contextId, contextKind, "rbprm", "rbprmbuilder") != 0) { - HPP_THROW_EXCEPTION(hpp::Exception, "Failed to start corba rbprm server."); - } +::CORBA::Object_ptr Server::servant(const std::string& name) const +{ + if (name == "builder") return rbprmBuilder_->implementation()._this(); + throw std::invalid_argument ("No servant " + name); } } // namespace rbprm } // namespace hpp