summaryrefslogtreecommitdiff
path: root/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin.h
blob: 867b4b0a18a6e823a5c5e761a64e0cc3097e820e (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

// $Id$

/**
 * @file repository_manager_admin.h
 * @author William R. Otte <wotte@dre.vanderbilt.edu>?
 *
 * Class which implements most repository admin functions.
 */

#ifndef REPOSITORY_MANAGER_ADMIN_H_
#define REPOSITORY_MANAGER_ADMIN_H_

#include /**/ "ace/pre.h"
#include "Deployment/Deployment_RepositoryManagerC.h"

#include "Repository_Manager_Admin_Export.h"

namespace DAnCE
{
  namespace RepositoryManager
  {
    /**
     * @class Admin
     * @brief Implements administrative functions for the Repository Manager.
     */
    class DAnCE_RepositoryManager_Admin_Export Admin
    {
    public:
      Admin (Deployment::RepositoryManager_ptr rm);

      /// Install a package at a provided filesystem path.
      bool install_package (const ACE_TCHAR *uri,
                            const ACE_TCHAR *name,
                            bool replace);

      /// Create new package.
      bool create_package (const ACE_TCHAR *pc_path,
                           const ACE_TCHAR *name,
                           const ACE_TCHAR *baselocation,
                           bool replace);

      /// Uninstall a package with a provided UUID.
      /// Fails if the NoSuchName exception was raised.
      bool uninstall_package (const ACE_TCHAR *uuid);

      /// List all installed packages
      ::CORBA::StringSeq * list_packages (void);

      /// List all installed package types
      ::CORBA::StringSeq * list_types (void);

      /// Find package names by type
      ::CORBA::StringSeq * find_by_type (const ACE_TCHAR *type);

      /// Attempt to shutdown the server.
      bool shutdown (void);

    private:
      Deployment::RepositoryManager_var rm_;

    };
  }
}

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

#endif /* REPOSITORY_MANAGER_ADMIN_H_ */