|
8 | 8 | //
|
9 | 9 | // See the COPYING file for more information.
|
10 | 10 |
|
| 11 | +#include "hpp/corbaserver/affordance/server.hh" |
| 12 | + |
11 | 13 | #include <hpp/util/exception.hh>
|
12 | 14 | #include <hpp/util/debug.hh>
|
13 |
| -#include "hpp/corbaserver/affordance/server.hh" |
| 15 | +#include <hpp/corbaserver/server.hh> |
14 | 16 | #include "affordance.impl.hh"
|
15 | 17 |
|
16 | 18 | namespace hpp
|
17 | 19 | {
|
18 | 20 | namespace affordanceCorba
|
19 | 21 | {
|
20 |
| - Server::Server (int argc, const char* argv[], bool multiThread, |
21 |
| - const std::string& poaName) : |
22 |
| - impl_ (new corba::Server <impl::Afford> |
23 |
| - (argc, argv, multiThread, poaName)) {} |
24 |
| - Server::~Server () { delete impl_;} |
25 |
| - void Server::setProblemSolverMap (hpp::corbaServer::ProblemSolverMapPtr_t psMap) |
| 22 | + Server::Server (corbaServer::Server* server) |
| 23 | + : corbaServer::ServerPlugin (server), |
| 24 | + impl_ (NULL) |
| 25 | + {} |
| 26 | + |
| 27 | + Server::~Server () |
26 | 28 | {
|
27 |
| - impl_->implementation ().setProblemSolverMap (psMap); |
| 29 | + if (impl_) delete impl_; |
| 30 | + } |
| 31 | + |
| 32 | + std::string Server::name () const |
| 33 | + { |
| 34 | + return "affordance"; |
28 | 35 | }
|
29 | 36 |
|
30 | 37 | /// Start corba server
|
31 | 38 | void Server::startCorbaServer(const std::string& contextId,
|
32 |
| - const std::string& contextKind, |
33 |
| - const std::string& objectId, |
34 |
| - const std::string& objectKind) |
| 39 | + const std::string& contextKind) |
35 | 40 | {
|
36 |
| - if (impl_->startCorbaServer(contextId, contextKind, objectId, objectKind) |
37 |
| - != 0) { |
38 |
| - HPP_THROW_EXCEPTION (hpp::Exception, "Failed to start corba server."); |
| 41 | + bool mThd = parent()->multiThread(); |
| 42 | + impl_ = new corba::Server <impl::Afford> (0, NULL, mThd, "child"); |
| 43 | + |
| 44 | + impl_->implementation ().setServer (this); |
| 45 | + |
| 46 | + if (impl_->startCorbaServer(contextId, contextKind, |
| 47 | + "affordanceCorba", "affordance") != 0) { |
| 48 | + HPP_THROW_EXCEPTION (hpp::Exception, "Failed to start affordance corba server."); |
39 | 49 | }
|
| 50 | + |
| 51 | + // TODO this a very fragile. It works because startCorbaServer is called |
| 52 | + // after setProblemSolverMap in hpp::corbaServer::Server::getContext |
| 53 | + // implementation (file hpp-corbaserver/src/server.cc) |
| 54 | + impl_->implementation().resetAffordanceConfig(); |
40 | 55 | }
|
41 | 56 | } // namespace affordanceCorba
|
42 | 57 | } // namespace hpp
|
| 58 | + |
| 59 | +HPP_CORBASERVER_DEFINE_PLUGIN(hpp::affordanceCorba::Server) |
0 commit comments