summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/PSS/PSDL_Code_Gen.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/PSS/PSDL_Code_Gen.h')
-rw-r--r--TAO/orbsvcs/PSS/PSDL_Code_Gen.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/TAO/orbsvcs/PSS/PSDL_Code_Gen.h b/TAO/orbsvcs/PSS/PSDL_Code_Gen.h
new file mode 100644
index 00000000000..ac461c40611
--- /dev/null
+++ b/TAO/orbsvcs/PSS/PSDL_Code_Gen.h
@@ -0,0 +1,85 @@
+/* -*- C++ -*- */
+// $Id$
+//
+// ==================================================================
+//
+// = LIBRARY
+// PSS
+//
+// = FILENAME
+// PSDL_Code_Gen
+//
+// = DESCRIPTION
+// This class acts as an interface to the database which is used
+// for the saving the state of the objects. Right now, the database
+// is a normal file.
+//
+// = AUTHOR
+// Priyanka Gontla <gontla_p@ociweb.com>
+//
+// ==================================================================
+
+#ifndef TAO_PSDL_CODE_GEN_H
+#define TAO_PSDL_CODE_GEN_H
+
+#include /**/ "ace/pre.h"
+
+#include "psdl_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/IOPC.h"
+#include "tao/ORB.h"
+
+class TAO_PSDL_Datastore;
+
+class TAO_PSDL_Export TAO_PSDL_Code_Gen
+{
+ public:
+
+ TAO_PSDL_Code_Gen (CORBA::ORB_ptr orb);
+
+ ~TAO_PSDL_Code_Gen (void);
+
+ /// Initializes a IOP::CodecFactory and IOP::Codec to take care of
+ /// the marshalling and demarshalling of data.
+ int set_codec (void);
+
+ /// Method to save the name-stringified object reference pair
+ /// to the database. Returns -1 on failure.
+ int set_name_obj_ref (const char *name,
+ const char *string_obj_ref);
+
+ /// Get the stringified form of the object reference given the name
+ /// of the object.
+ const char *get_obj_ref (const char *name);
+
+ private:
+
+ /// Helper method which serializes the data and saves it to the
+ /// database.
+ CORBA::OctetSeq *encode (const char *string_obj_ref);
+
+
+ /// Helper method to get the octet sequence
+ const char *decode (const CORBA::OctetSeq &data);
+
+ /// File where the persistent data is stored.
+ const char *file_name_;
+
+ /// Pointer to the class which accesses the database
+ TAO_PSDL_Datastore *psdl_datastore_;
+
+ /// Pointer to ORB
+ CORBA::ORB_var orb_;
+
+ /// CDR encapsulation codec useful for encoding and decoding the
+ /// data
+ IOP::Codec_var codec_;
+};
+
+#include /**/ "ace/post.h"
+
+#endif /* TAO_PSDL_CODE_GEN_H */