summaryrefslogtreecommitdiff
path: root/ACEXML/compass/Container.h
blob: a3b7ff45fdbf51a6cc866fce42cad644460452fa (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
// $Id$

#ifndef COMPASS_CONTAINER_H
#define COMPASS_CONTAINER_H

#include "ACEXML/compass/CompassTypes.h"
#include "ACEXML/compass/CCMHome.h"

namespace Deployment
{
  class Container
  {
  public:
    Container(ConfigValues* config = 0);
    ~Container();

    ComponentServer* get_component_server ();

    CCMHome* install_home (const UUID& id, const string& entrypt,
                           const ConfigValues* config)
      ACE_THROW_SPEC ((UnknownImplId, ImplEntryPointNotFound,
                       InstallationFailure, InvalidConfiguration));

    void remove_home (const CCMHome* href)
      ACE_THROW_SPEC ((RemoveFailure));

    CCMHomes* get_homes ();

    void remove ()
      ACE_THROW_SPEC ((RemoveFailure));

    ConfigValues* get_configuration (void);

    void set_configuration (const ConfigValues* config);

  private:
    ConfigValues*   config_;
    CCMHomes*       homes_;
    ComponentServer* comp_server_;
  };

};

#endif /* COMPASS_CONTAINER_H */