From 3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c Mon Sep 17 00:00:00 2001 From: "William R. Otte" Date: Mon, 24 Jul 2006 15:50:21 +0000 Subject: Repo restructuring --- TAO/orbsvcs/ImplRepo_Service/Activator_Options.h | 105 +++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 TAO/orbsvcs/ImplRepo_Service/Activator_Options.h (limited to 'TAO/orbsvcs/ImplRepo_Service/Activator_Options.h') diff --git a/TAO/orbsvcs/ImplRepo_Service/Activator_Options.h b/TAO/orbsvcs/ImplRepo_Service/Activator_Options.h new file mode 100644 index 00000000000..45f351a0f44 --- /dev/null +++ b/TAO/orbsvcs/ImplRepo_Service/Activator_Options.h @@ -0,0 +1,105 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Activator_Options.h + * + * $Id$ + * + * @brief Definition of the Options class for the Implementation Repository. + * + * @author Darrell Brunsch + */ +//============================================================================= + +#ifndef ACTIVATOR_OPTIONS_H +#define ACTIVATOR_OPTIONS_H + +#include "activator_export.h" + +#include "ace/SString.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +/** + * @class Options + * + * This is where all the settings for TAO's Implementation Repository are + * stored. + */ +class Activator_Export Activator_Options +{ +public: + + enum SERVICE_COMMAND { + SC_NONE, + SC_INSTALL, + SC_REMOVE, + SC_INSTALL_NO_LOCATOR + }; + + Activator_Options (); + + /// Parse the command-line arguments and initialize the options. + int init (int argc, char *argv[]); + /// This version should only be used when run as an nt service. + int init_from_registry(); + + /// Service Mode + bool service (void) const; + + /// Notify the ImR when server processes die. + /// Note : Currently this only works on Unix. + bool notify_imr (void) const; + + /// Debug level for the Implementation Repository. + unsigned int debug (void) const; + + /// Returns the file where the IOR should be stored. + const ACE_CString& ior_filename (void) const; + + /// The nt service command to run (install/remove) + SERVICE_COMMAND service_command(void) const; + + /// Save the command line arguments as registry settings. (Windows only) + int save_registry_options (); + + const char* cmdline(void) const; + + const ACE_CString& name(void) const; + +private: + /// Parses and pulls out arguments for the ImR + int parse_args (int &argc, char *argv[]); + + /// Print the usage information. + void print_usage (void) const; + + /// Loads options from the registry + int load_registry_options (); + +private: + + /// Our extra command line arguments + ACE_CString cmdline_; + + /// Debug level. + unsigned int debug_; + + /// File where the IOR of the server object is stored. + ACE_CString ior_output_file_; + + /// Should we run as a service? + bool service_; + + bool notify_imr_; + + /// SC_NONE, SC_INSTALL, SC_REMOVE, ... + SERVICE_COMMAND service_command_; + + ACE_CString name_; +}; + +#endif -- cgit v1.2.1