summaryrefslogtreecommitdiff
path: root/modules/CIAO/ciao/ComponentServer/Configurators/Server_Configurator.h
blob: c12e34522e20ca94fc50c057b09ddd1be6629f40 (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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
//$Id$
/**========================================================
 *
 * @file   Server_Configurator.h
 *
 * @Brief  This file contains the implementation of
 *         the basic ComponentServer_Configurator interface, the one
 *         that does nothing more
 *
 * @author Nanbor Wang <nanbor@exothermic.txcorp.com>
 *========================================================*/

#ifndef COMPONENTSERVER_CONFIGURATOR_H
#define COMPONENTSERVER_CONFIGURATOR_H
#include /**/ "ace/pre.h"

#include "ace/config-all.h"

#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */

#include "ace/DLL.h"
#include "ace/Auto_Ptr.h"
#include "ccm/CCM_StandardConfiguratorC.h"
#include "ComponentServer_Configurator_export.h"
#include "Config_Manager.h"

namespace CIAO
{
  namespace Deployment
  {
    /**
     *
     * @class ComponentServer_Configurator
     *
     * @brief This class defines and implements the default
     * ComponentServer_Configurator base class that's needed for configuring the
     * ComponentServer application process.
     **/
    class ComponentServer_Configurator_Export ComponentServer_Configurator
    {
    public:

      /// Default constructor.
      ComponentServer_Configurator (bool rt = false);

      /// Default destructor.
      virtual ~ComponentServer_Configurator (void);

      /**
       * @brief "pre_orb_initialize" is called before ORB_init.
       */
      virtual int pre_orb_initialize (void);

      /**
       * @brief "post_orb_initialize" is called after ComponentServer
       * get a hold at this object.
       */
      virtual int post_orb_initialize (CORBA::ORB_ptr o);

      /**
       * @brief "init_resource_manager" is called by ComponentServer when
       * it receives an "install" commands.
       */
      virtual int
        init_resource_manager (const ::Components::ConfigValues &properties);

      /**
       * @brief get a policyset by its name.
       */
      virtual CORBA::PolicyList *
        find_container_policies (const ::Components::ConfigValues &properties);

      /// @@ Perhaps we also need a finalizer method here.  Perhaps we
      /// even need to differentiate finalizer before ORB is destroyed
      /// and the one after that.
      bool rt_support (void);

      void set_rt_support (void);

      virtual bool create_config_managers (void);

      bool policy_exists (const char *policy_set_id);

      CORBA::PolicyList *
        find_policies_by_name (const char *name);

    protected:
      bool rt_support_;

      CORBA::ORB_var orb_;

      auto_ptr<Config_Manager> rt_config_manager_;

      auto_ptr<Config_Manager> na_config_manager_;

      ACE_DLL config_dll_;
    };
  }
}

/**
 * For dynamically linkable concrete ComponentServer_Configurator
 * implementation, remember to create a factory method using "C"
 * calling convention in the CPP file as follow:

 extern "C" EXPORT_MACRO CIAO::ComponentServer_Configurator *create_nodeapp_configurator (void);

 CIAO::ComponentServer_Configurator *
 create_nodeapp_configurator (void)
 {
 concrete_ComponentServer_Configurator *config;
 ACE_NEW_RETURN (config, concrete_ComponentServer_Configurator, 0);
 return config;
 }

*/


#include /**/ "ace/post.h"
#endif /* NODEAPP_CONFIGURATOR_H */