hpp::corbaServer::Server Class Reference

Implementation of Hpp module Corba server. More...

#include <hpp/corbaserver/server.hh>

List of all members.

Public Member Functions

 Server (core::ProblemSolverPtr_t problemSolver, int argc, const char *argv[], bool multiThread=false)
 Constructor.
 ~Server ()
 Shutdown CORBA server.
void startCorbaServer ()
 Initialize CORBA server to process requests from clients.
int processRequest (bool loop)
 If ORB work is pending, process it.
core::ProblemSolverPtr_t problemSolver () const
core::ProblemSolverPtr_t problemSolver ()

Detailed Description

Implementation of Hpp module Corba server.

This class initializes the Corba server and starts the following Corba interface implementations.

  • hpp::Robot: to build a model::Device and to insert it in a core::ProblemSolver object,
  • hpp::Obstacle: to build obstacles and insert them in a core::ProblemSolver object,
  • hpp::Problem: to define a path planning problem and solve it. To use this object, call the constructor
             int argc=1;
             char *argv[1] = {"program"};
             core::ProblemSolverPtr_t problemSolver = new core::ProblemSolver;
             Server server(problemSolver, argc, argv, isMultiThread);
    
    where isMultiThread specifies whether the server should process requests using multi-thread policy of not. After starting a name server and configuring your Corba implementation, start the servers.
      server.startCorbaServer();
    
    Then, enter in the loop that handle the Corba requests
      server.processRequest(true);
    
    You can then send request to the servers.

Constructor & Destructor Documentation

hpp::corbaServer::Server::Server ( core::ProblemSolverPtr_t  problemSolver,
int  argc,
const char *  argv[],
bool  multiThread = false 
)

Constructor.

Parameters:
problemSolverthe object that will handle Corba requests.
argc,argvparameter to feed ORB initialization.
multiThreadwhether the server may process request using multithred policy.
Note:
It is recommended to configure your Corba implementation through environment variables and to set argc to 1 and argv to any string.
It is highly recommended not to enable multi-thread policy in CORBA request processing if this library is run from an openGL based GUI, since OpenGL does not support multithreading.
hpp::corbaServer::Server::~Server ( )

Shutdown CORBA server.


Member Function Documentation

core::ProblemSolverPtr_t hpp::corbaServer::Server::problemSolver ( ) const
core::ProblemSolverPtr_t hpp::corbaServer::Server::problemSolver ( )
int hpp::corbaServer::Server::processRequest ( bool  loop)

If ORB work is pending, process it.

Parameters:
loopif true, the function never returns, if false, the function processes pending requests and returns.
void hpp::corbaServer::Server::startCorbaServer ( )

Initialize CORBA server to process requests from clients.

Returns:
0 if success, -1 if failure.