//------------------------------------------------------------------------
// @(#)  /98 1.1 5/31/96 09:25:45 [12/22/96 21:56:47] 
//
// ModuleName: 	omgidobj
//
// Description:	This IDL file defines the OMG
//              CosObjectIdenity::IdentifiableObject interface as defined
//		in the OMG Relationship Service Specification, OMG TC 
//              Document 94.5.5 and is covered by the
//		copyrights contained in that document.
//
// 25H7912  (C)  Copyright International Business Machines Corp. 1994,1996 
// All Rights Reserved
// Licensed Materials - Property of IBM
//
// US Government Users Restricted Rights - Use, duplication or disclosure
// restricted by GSA ADP Schedule Contract with IBM Corp.
//------------------------------------------------------------------------

#ifndef COSIDENTITY_IDL
#define COSIDENTITY_IDL

#include <somobj.idl>

module CosObjectIdentity {

//#-----------------------------------------------
//# Forward Declares for Interfaces
//#-----------------------------------------------
    interface IdentifiableObject;

//#-----------------------------------------------
//# Typedefs
//#-----------------------------------------------
    typedef unsigned long ObjectIdentifier;

//#-----------------------------------------------
//# IdentifiableObject interface 
//#-----------------------------------------------
    interface IdentifiableObject  : SOMObject
    {

	readonly attribute ObjectIdentifier constant_random_id;

	boolean is_identical (
	      in IdentifiableObject other_object);

        #ifdef __SOMIDL__
	implementation 
        {
	    dllname          = "somabs1.dll";
	    majorversion     = 3;
	    minorversion     = 0;
	    memory_management= corba;
	    somDefaultInit:  override, init;
	    somDestruct:     override;

	    releaseorder: _get_constant_random_id,
                          _set_constant_random_id,
			  is_identical;
		      
            constant_random_id: nodata;
	};

      #endif 

    };

}; 

#endif 

