summaryrefslogtreecommitdiff
path: root/TAO/CIAO/DAnCE/ComponentPackager/CPK_Packager.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/DAnCE/ComponentPackager/CPK_Packager.h')
-rw-r--r--TAO/CIAO/DAnCE/ComponentPackager/CPK_Packager.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/TAO/CIAO/DAnCE/ComponentPackager/CPK_Packager.h b/TAO/CIAO/DAnCE/ComponentPackager/CPK_Packager.h
new file mode 100644
index 00000000000..638afe33e08
--- /dev/null
+++ b/TAO/CIAO/DAnCE/ComponentPackager/CPK_Packager.h
@@ -0,0 +1,91 @@
+//==================================================================
+/**
+ * @file CPK_Packager.h
+ *
+ * $Id$
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+//==================================================================
+
+#ifndef CPK_PACKAGE_H
+#define CPK_PACKAGE_H
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/SString.h"
+#include "Base_Packager.h"
+
+#ifdef __GNUC__
+ #include "ZipArchive.h"
+ #include "ZipPlatform.h"
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <dirent.h>
+ #include <fnmatch.h>
+ #include <unistd.h>
+#else
+ #include "ZipArchive.h"
+ #include "ZipPlatform.h"
+#endif
+
+#include <set>
+#include "Base_Packager.h"
+
+namespace CIAO
+{
+ namespace Component_Packager
+ {
+ using namespace CIAO::Component_Packager;
+
+ /**
+ * @class CPK_Package
+ *
+ * @brief This class defines operations
+ * for creating DAnCE component
+ * package
+ *
+ */
+ class CPK_Packager : public Base_Packager
+ {
+ public:
+ /// constructor
+ CPK_Packager (const char *pkg_url,
+ const char *cdp_url,
+ const char *pdl_url,
+ bool include_std_desc)
+ :Base_Packager (pkg_url, cdp_url, pdl_url, include_std_desc),
+ cpk_file_ (this->pkg_url_) { }
+
+ /// Collect the information for files to be archived
+ int preparePackage (PACKAGE_PLAN &pkg_plan);
+
+ /// Create a zip archive
+ int createPackage (const PACKAGE_PLAN &pkg_plan);
+
+ protected:
+ // A memory buffer to store package description
+ CZipMemFile desc_mf_;
+
+ // The actualy archive in zip format
+ CZipArchive cpk_zip_;
+
+ // String format used by CZipArchive
+ CZipString cpk_file_;
+ };
+
+ // overloaded std::out operator
+ CZipMemFile& operator << (CZipMemFile &mf,
+ const ACE_TCHAR *str);
+ // overloaded std::out operator
+ CZipMemFile& operator << (CZipMemFile &mf,
+ const ACE_TString &str);
+ }
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CPK_PACKAGE_H */