summaryrefslogtreecommitdiff
path: root/modules/CIAO/ccm/CCM_StateIdFactory.idl
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/ccm/CCM_StateIdFactory.idl')
-rw-r--r--modules/CIAO/ccm/CCM_StateIdFactory.idl63
1 files changed, 63 insertions, 0 deletions
diff --git a/modules/CIAO/ccm/CCM_StateIdFactory.idl b/modules/CIAO/ccm/CCM_StateIdFactory.idl
new file mode 100644
index 00000000000..9d2d5a1349a
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_StateIdFactory.idl
@@ -0,0 +1,63 @@
+// $Id$
+
+#if !defined (CCM_STATEIDFACTORY)
+#define CCM_STATEIDFACTORY
+
+#include <CosPersistentState.idl>
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ typedef short SegmentId;
+ const SegmentId COMPONENT_SEGMENT = 0;
+
+ typedef short FacetId;
+ const FacetId COMPONENT_FACET = 0;
+
+ typedef sequence<octet> IdData;
+#if !defined (CCM_LW)
+ typedef CosPersistentState::Pid PersistentId;
+#endif
+
+ exception InvalidStateIdData {};
+
+ typedef short StateIdType;
+ const StateIdType PERSISTENT_ID = 0;
+
+ abstract valuetype StateIdValue
+ {
+ StateIdType get_sid_type();
+ IdData get_sid_data();
+ };
+
+ local interface StateIdFactory
+ {
+ StateIdValue create (in IdData data)
+ raises (InvalidStateIdData);
+ };
+
+#if !defined (CCM_LW)
+ valuetype PersistentIdValue : StateIdValue
+ {
+ private PersistentId pid;
+ PersistentId get_pid();
+ factory init (in PersistentId pid);
+ };
+#endif
+
+ valuetype SegmentDescr
+ {
+ private StateIdValue sid;
+ private SegmentId seg;
+
+ StateIdValue get_sid();
+ SegmentId get_seg_id();
+ factory init (in StateIdValue sid,
+ in SegmentId seg);
+ };
+
+ typedef sequence<SegmentDescr> SegmentDescrSeq;
+
+};
+#endif /* CCM_STATEIDFACTORY */