diff options
Diffstat (limited to 'modules/CIAO/ccm/CCM_StateIdFactory.idl')
-rw-r--r-- | modules/CIAO/ccm/CCM_StateIdFactory.idl | 63 |
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 */ |