// **********************************************************************
//
// Copyright (c) 2002
// IONA Technologies, Inc.
// Waltham, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

#ifndef OB_PORTABLE_INTERCEPTOR_ORT_IDL
#define OB_PORTABLE_INTERCEPTOR_ORT_IDL

#include <OB/PIORT.idl>
#include <OB/IOP.idl>

#pragma prefix "ooc.com"

module OBPortableInterceptor
{

//
// ORBacus specific implementation of the ObjectReferenceTemplate
//

abstract valuetype ObjectReferenceTemplate :
    PortableInterceptor::ObjectReferenceTemplate
{
    Object make_object_for(in string repository_id,
    		           in PortableInterceptor::ObjectId id,
		           in PortableInterceptor::AdapterName name);
};

valuetype TransientORT : ObjectReferenceTemplate
{
    private PortableInterceptor::ServerId the_server_id;
    private PortableInterceptor::ORBId the_orb_id;
    private PortableInterceptor::AdapterName the_adapter_name;
    private unsigned long the_create_time;
    private IOP::IOR the_ior_template;
};

valuetype PersistentORT : ObjectReferenceTemplate
{
    private PortableInterceptor::ServerId the_server_id;
    private PortableInterceptor::ORBId the_orb_id;
    private PortableInterceptor::AdapterName the_adapter_name;
    private IOP::IOR the_ior_template;
};

}; // End module OBPortableInterceptor

#endif
