diff options
Diffstat (limited to 'TAO/orbsvcs/ImplRepo_Service/Server_Info.h')
-rw-r--r-- | TAO/orbsvcs/ImplRepo_Service/Server_Info.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/TAO/orbsvcs/ImplRepo_Service/Server_Info.h b/TAO/orbsvcs/ImplRepo_Service/Server_Info.h new file mode 100644 index 00000000000..e6c3a910f3b --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Server_Info.h @@ -0,0 +1,77 @@ +//============================================================================= +/** + * @file Server_Info.h + * + * $Id$ + * + * This class implements the Server_Info for the Implementation Repository. + * + * + * @author Darrell Brunsch <brunsch@cs.wustl.edu> + * @author Priyanka Gontla <gontla_p@ociweb.com> + */ +#ifndef SERVER_INFO_H +#define SERVER_INFO_H + +#include "ace/Bound_Ptr.h" + +#include "tao/ImR_Client/ImplRepoC.h" + +#include "ace/SString.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +/** +* @brief Information about IMR registered servers. +*/ +struct Server_Info +{ + Server_Info (const ACE_CString& server_name, + const ACE_CString& aname, + const ACE_CString& cmdline, + const ImplementationRepository::EnvironmentList& env, + const ACE_CString& working_dir, + ImplementationRepository::ActivationMode amode, + int start_limit, + const ACE_CString& partial_ior = ACE_CString(""), + const ACE_CString& server_ior = ACE_CString(""), + ImplementationRepository::ServerObject_ptr svrobj = ImplementationRepository::ServerObject::_nil() + ); + + /// Convert to the corba type + ImplementationRepository::ServerInformation* createImRServerInfo(ACE_ENV_SINGLE_ARG_DECL); + + void reset(); + + /// The name of the server. + ACE_CString name; + /// The name of the activator in which this server runs + ACE_CString activator; + /// The command line startup command (program and arguments). + ACE_CString cmdline; + /// Environment Variables. + ImplementationRepository::EnvironmentList env_vars; + /// The working directory. + ACE_CString dir; + /// The type of activation this supports. + ImplementationRepository::ActivationMode activation_mode; + /// Limit of retries to start the server + int start_limit; + /// Current endpoint used by the server. + ACE_CString partial_ior; + /// IOR of the server object in the server. + ACE_CString ior; + /// The timestamp of the last time we verified the server is alive + ACE_Time_Value last_ping; + /// The cached server object + ImplementationRepository::ServerObject_var server; + int start_count; + int waiting_clients; + bool starting; +}; + +typedef ACE_Strong_Bound_Ptr<Server_Info, ACE_Null_Mutex> Server_Info_Ptr; + +#endif /* SERVER_INFO_H */ |