summaryrefslogtreecommitdiff
path: root/repoman_1/repository_manager_admin.h
diff options
context:
space:
mode:
Diffstat (limited to 'repoman_1/repository_manager_admin.h')
-rw-r--r--repoman_1/repository_manager_admin.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/repoman_1/repository_manager_admin.h b/repoman_1/repository_manager_admin.h
new file mode 100644
index 00000000000..730a20c04b0
--- /dev/null
+++ b/repoman_1/repository_manager_admin.h
@@ -0,0 +1,65 @@
+/**
+ * @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_ */