summaryrefslogtreecommitdiff
path: root/TAO/tao/ImR_Client/ImplRepo.pidl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/ImR_Client/ImplRepo.pidl')
-rw-r--r--TAO/tao/ImR_Client/ImplRepo.pidl176
1 files changed, 176 insertions, 0 deletions
diff --git a/TAO/tao/ImR_Client/ImplRepo.pidl b/TAO/tao/ImR_Client/ImplRepo.pidl
new file mode 100644
index 00000000000..010899bda14
--- /dev/null
+++ b/TAO/tao/ImR_Client/ImplRepo.pidl
@@ -0,0 +1,176 @@
+// -*- IDL -*-
+
+//=============================================================================
+/**
+ * @file ImplRepo.pidl
+ *
+ * $Id$
+ *
+ * This file was used to generate the code in ImplRepo{A,C,S}.{h,inl,cpp}
+ *
+ * The command used to generate code from this file is:
+ *
+ * tao_idl -Ssi -Gp -Gd -I$(TAO_ROOT) -Wb,export_macro=TAO_IMR_Client_Export -Wb,export_include=imr_client_export.h -Wb,pre_include="ace/pre.h" -Wb,post_include="ace/post.h" ImplRepo.pidl
+ *
+ */
+//=============================================================================
+
+#include "tao/ImR_Client/ServerObject.pidl"
+
+module ImplementationRepository
+{
+ // = Exceptions
+
+ /// Object already bound in the Implementation Repository
+ exception AlreadyRegistered {};
+
+ /// The server could not be restarted.
+ exception CannotActivate
+ {
+ string reason;
+ };
+
+ /// Object not found in the Implementation Repository
+ exception NotFound {};
+
+ /// One environment variable/value pair.
+ struct EnvironmentVariable
+ {
+ string name;
+ string value;
+ };
+
+ /// Complete Environment.
+ typedef sequence<EnvironmentVariable> EnvironmentList;
+
+ /// The type of Activation
+ enum ActivationMode {NORMAL, MANUAL, PER_CLIENT, AUTO_START};
+
+ /// Options used to start up the server.
+ struct StartupOptions
+ {
+ /// Startup command (program name and arguments).
+ string command_line;
+
+ /// Environment Variables.
+ EnvironmentList environment;
+
+ /// Working directory.
+ string working_directory;
+
+ /// Activation Mode
+ ActivationMode activation;
+
+ /// Name of the activator
+ string activator;
+
+ /// Number of retries allowed
+ long start_limit;
+ };
+
+ struct ServerInformation
+ {
+ /// Server name.
+ string server;
+
+ /// How to start up the server.
+ StartupOptions startup;
+
+ /// This is used in places that require a partial IOR with
+ /// just the ObjectKey missing.
+ string partial_ior;
+ };
+
+ typedef sequence <ServerInformation> ServerInformationList;
+
+ /**
+ * @brief The Server Information Iterator Interface
+ *
+ * Interface for iterating over servers returned with
+ * Administration::list ().
+ */
+ interface ServerInformationIterator
+ {
+ /// This operation returns at most the requested number of
+ /// servers.
+ /// If how_many == 0, then returns all servers
+ boolean next_n (in unsigned long how_many,
+ out ServerInformationList servers);
+
+ /// This operation destroys the iterator.
+ void destroy ();
+ };
+
+ /**
+ * @brief The Implementation Repository Administration Interface
+ *
+ * This interface exports all the administration functionality of
+ * the Implementation Repository.
+ */
+ interface Administration
+ {
+ /// Activate server that is named <server>.
+ ///
+ /// The <NotFound> exception is raised when <server> is not found
+ /// in the Implementation Repository. The <CannotActivate> exception
+ /// is raised when <server> is found in the Repository but could not be
+ /// activated.
+ void activate_server (in string server)
+ raises (NotFound, CannotActivate);
+
+ /// Add/Update the the <server>
+ /// The <NotFound> exception is raised when the activator specified
+ /// in the options is not registered.
+ void add_or_update_server (in string server, in StartupOptions options)
+ raises(NotFound);
+
+ /// Remove <server> from the Implementation Repository.
+ ///
+ /// The <NotFound> exception is raised when <server> is not found
+ /// in the Implementation Repository.
+ void remove_server (in string server)
+ raises (NotFound);
+
+ /// Tries to shutdown the server, first gracefully, then ungracefully.
+ ///
+ /// The <NotFound> exception is raised when <server> is not found
+ /// in the Implementation Repository.
+ void shutdown_server (in string server)
+ raises (NotFound);
+
+ /// Used to notify the Implementation Repository that <server> is alive
+ /// and well at <partial_ior>.
+ ///
+ /// The <NotFound> exception is raised when <server> is not found
+ /// in the Implementation Repository.
+ void server_is_running (in string server,
+ in string partial_ior,
+ in ServerObject server_object)
+ raises (NotFound);
+
+ /// Used to tell the Implementation Repository that <server> is shutting
+ /// down.
+ ///
+ /// The <NotFound> exception is raised when <server> is not found
+ /// in the Implementation Repository.
+
+ void server_is_shutting_down (in string server)
+ raises (NotFound);
+
+ /// Returns the startup information for a given <server>.
+ void find (in string server, out ServerInformation info);
+
+ /// Returns at most <how_many> servers in <server_list>. If there
+ /// are additional servers, they can be received through the
+ /// <server_iterator>. If there are no more servers, then
+ /// <server_iterator> is null.
+ /// If how_many == 0, then returns all servers.
+ void list (in unsigned long how_many,
+ out ServerInformationList server_list,
+ out ServerInformationIterator server_iterator);
+
+ /// Shutdown the ImR, optionally shutting down registered
+ /// activators and servers first.
+ oneway void shutdown(in boolean activators, in boolean servers);
+ };
+};