summaryrefslogtreecommitdiff
path: root/DAnCE/dance/RepositoryManager/repository_manager_admin.h
blob: 05dbf7c7fca379bc72288df590fc5192183e3ec7 (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

/**
 * @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 "dance/Deployment/Deployment_RepositoryManagerC.h"

namespace DAnCE
{
  namespace RepositoryManager
  {
    /**
     * @class Admin
     * @brief Implements administrative functions for the Repository Manager.
     */
    class 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_ */