summaryrefslogtreecommitdiff
path: root/ciao/ComponentServer/CIAO_ComponentServer.idl
blob: 0acb62bb0921305ace87864eb39a464d83236788 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/**
 * @file CIAO_ComponentServer.idl
 * @author William R. Otte <wotte@dre.vanderbilt.edu>
 * $Id$
 * A couple CIAO-specific extensions to the component server
 * interfaces.
 */

#ifndef CIAO_COMPONENTSERVER_IDL_
#define CIAO_COMPONENTSERVER_IDL_

#include <ccm/CCM_Object.idl>
#include <ccm/ComponentServer/CCM_ComponentServer.idl>

module CIAO
{
  module Deployment
  {
    interface ComponentServer : ::Components::Deployment::ComponentServer
    {
      oneway void shutdown ();
    };

    exception InvalidComponent
    {
    };

    /**
     * @interface CIAO_Container
     * @brief CIAO specific extensions to the component server interface.
     */
    interface Container : Components::Deployment::Container
    {
      /// Instruct the container to install a component without
      /// an explicit home.
      ::Components::CCMObject install_component (in ::Components::Deployment::UUID id,
                                                 in string entrypt,
                                                 in ::Components::ConfigValues config)
        raises (::Components::Deployment::UnknownImplId,
                ::Components::Deployment::ImplEntryPointNotFound,
                ::Components::Deployment::InstallationFailure,
                ::Components::Deployment::InvalidConfiguration);

      /// Activate component with specified ID, if no ID provided,
      /// activates all components.
      void activate_component (in ::Components::CCMObject comp)
        raises (InvalidComponent);

      /// Passivate component with specified ID, if no ID provided,
      /// passivates all components.
      void passivate_component (in ::Components::CCMObject comp)
        raises (InvalidComponent);

      /// Instruct the container to remove a component installed
      /// without an explicit home.  If the component was installed
      /// with an explicit home, this operation will fail.
      void remove_component (in ::Components::CCMObject cref)
        raises (::Components::RemoveFailure);

      /// Returns a sequence of all homeless components.
      ::Components::CCMObjectSeq get_components ();

      void connect_local_facet (in ::Components::CCMObject provider_ref,
                                in string provider_port,
                                in ::Components::CCMObject user_ref,
                                in string user_port)
        raises (::Components::InvalidConnection,
                ::Components::AlreadyConnected);

      void disconnect_local_facet (in ::Components::CCMObject provider_ref,
                                   in string provider_port,
                                   in ::Components::CCMObject user_ref,
                                   in string user_port)
        raises (::Components::InvalidConnection);
    };
  };
};

#endif /* CIAO_COMPONENTSERVER_IDL_ */