summaryrefslogtreecommitdiff
path: root/TAO/CIAO/DAnCE/spec_RepositoryManager/RM_Helper.h
blob: e78be2e4f44a8299d286d0e5195a84a186105698 (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// $Id$

#ifndef RM_HELPER_H_
#define RM_HELPER_H_


#include "ciao/Packaging_DataC.h"		//for the PackageConfiguration declaration
#include "tao/CDR.h"					//for TAO CDR classes

//int operator<< (ACE_OutputCDR& cdr, const Deployment::PackageConfiguration& pc); 
//int operator>> (ACE_InputCDR& cdr, Deployment::PackageConfiguration& pc);
//Similar operators are generated by the IDL compiler
//
//Do search for "Deployment::PackageConfiguration &" in Packaging_DataC.cpp
//
//::CORBA::Boolean operator<< (
//    TAO_OutputCDR &strm,
//    const Deployment::PackageConfiguration &_tao_aggregate
//
//::CORBA::Boolean operator>> (
//    TAO_InputCDR &strm,
//    Deployment::PackageConfiguration &_tao_aggregate
//  )


class RM_Helper
{
public:

	static void pc_to_cdr (const Deployment::PackageConfiguration& pc, TAO_OutputCDR& cdr);

	static void cdr_to_pc (Deployment::PackageConfiguration& pc, TAO_InputCDR& cdr);

	static bool externalize (const Deployment::PackageConfiguration& pc, const char* path);

	static bool reincarnate (Deployment::PackageConfiguration& pc, const char* path);

	///function that writes out a file to a specified location on the hard disk
	///returns 1 on success
	///		   0 on error

	static bool write_to_disk (const char* full_path, 
			 	 			   const CORBA::Octet* buffer, 
							   size_t length
							   );


	///function that writes out a file to a specified location on the hand disk
	///returns 1 on success
	///		   0 on already exists and replace == false
	///		   0 on error

	static bool write_to_disk (const char* full_path, 
							   ACE_Message_Block& mb,
							   bool replace = true
							   );

	///function that writes out a file to a specified location on the hand disk
	///returns 1 on success
	///		   0 on already exists and replace == false
	///		   0 on error
	///
	///NOTE: This function is relevant for PackageConfigurations ONLY

	static bool write_pc_to_disk (const char* full_path, 
								  ACE_Message_Block& mb,
								  bool replace = true
								 );

	///function to read the contents of a file from disk into a CORBA::OctetSeq
	///returns a pointer to a CORBA::Octet buffer and updates the lenght on success 
	///		 0 on failure

	static CORBA::Octet* read_from_disk (const char* full_path, size_t &length);

	///function to read the contents of a file from disk into an ACE_Message_Block
	///returns a pointer to an ACE_Message_Block and updates the lenght on success 
	///		 0 on failure


	static ACE_Message_Block* read_pc_from_disk (const char* full_path, size_t &length);

};

#endif