// **********************************************************************
//
// Copyright (c) 1999
// Object Oriented Concepts, Inc.
// Billerica, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

#include <Test1.idl>

interface TestInterfaceEx : TestInterface
{
    // --------------------------------------------------
    exception ExVoid
    {
    };
    void opVoidEx()
	raises(ExVoid);
    
    // --------------------------------------------------
    exception ExShort
    {
	short value;
    };
    short opShortEx(in short a0,
		    inout short a1,
		    out short a2)
	raises(ExShort);
    
    // --------------------------------------------------
    exception ExLong
    {
	long value;
    };
    long opLongEx(in long a0,
		  inout long a1,
		  out long a2)
	raises(ExLong);
    
    // --------------------------------------------------
    exception ExUShort
    {
	unsigned short value;
    };
    unsigned short opUShortEx(in unsigned short a0,
			      inout unsigned short a1,
			      out unsigned short a2)
	raises(ExUShort);
    
    // --------------------------------------------------
    exception ExULong
    {
	unsigned long value;
    };
    unsigned long opULongEx(in unsigned long a0,
			    inout unsigned long a1,
			    out unsigned long a2)
	raises(ExULong);
    
    // --------------------------------------------------
    exception ExFloat
    {
	float value;
    };
    float opFloatEx(in float a0,
		    inout float a1,
		    out float a2)
	raises(ExFloat);
    
    // --------------------------------------------------
    exception ExDouble
    {
	double value;
    };
    double opDoubleEx(in double a0,
		      inout double a1,
		      out double a2)
	raises(ExDouble);
    
    // --------------------------------------------------
    exception ExBoolean
    {
	boolean value;
    };
    boolean opBooleanEx(in boolean a0,
			inout boolean a1,
			out boolean a2)
	raises(ExBoolean);
    
    // --------------------------------------------------
    exception ExChar
    {
	char value;
    };
    char opCharEx(in char a0,
		  inout char a1,
		  out char a2)
	raises(ExChar);
    
    // --------------------------------------------------
    exception ExOctet
    {
	octet value;
    };
    octet opOctetEx(in octet a0,
		    inout octet a1,
		    out octet a2)
	raises(ExOctet);

    // --------------------------------------------------
    exception ExString
    {
	string value;
    };
    string opStringEx(in string a0,
		      inout string a1,
		      out string a2)
	raises(ExString);

    // --------------------------------------------------
    exception ExAny
    {
	any value;
    };
    any opAnyEx(in any a0,
		inout any a1,
		out any a2)
	raises(ExAny);
    
    // --------------------------------------------------
    exception ExTestEnum
    {
	TestEnum value;
    };
    TestEnum opTestEnumEx(in TestEnum a0,
			  inout TestEnum a1,
			  out TestEnum a2)
	raises(ExTestEnum);
    
    // --------------------------------------------------
    exception ExTestInterface
    {
	TestInterface value;
    };
    TestInterface opTestInterfaceEx(in TestInterface a0,
				    inout TestInterface a1,
				    out TestInterface a2)
	raises(ExTestInterface);
    
    // --------------------------------------------------
    exception ExFixedStruct
    {
	FixedStruct value;
    };
    FixedStruct opFixedStructEx(in FixedStruct a0,
				inout FixedStruct a1,
				out FixedStruct a2)
	raises(ExFixedStruct);
    
    // --------------------------------------------------
    exception ExVariableStruct
    {
	VariableStruct value;
    };
    VariableStruct opVariableStructEx(in VariableStruct a0,
				      inout VariableStruct a1,
				      out VariableStruct a2)
	raises(ExVariableStruct);
    
    // --------------------------------------------------
    exception ExFixedUnion
    {
	FixedUnion value;
    };
    FixedUnion opFixedUnionEx(in FixedUnion a0,
			      inout FixedUnion a1,
			      out FixedUnion a2)
	raises(ExFixedUnion);
    
    // --------------------------------------------------
    exception ExVariableUnion
    {
	VariableUnion value;
    };
    VariableUnion opVariableUnionEx(in VariableUnion a0,
				    inout VariableUnion a1,
				    out VariableUnion a2)
	raises(ExVariableUnion);
    
    // --------------------------------------------------
    exception ExStringSequence
    {
	StringSequence value;
    };
    StringSequence opStringSequenceEx(in StringSequence a0,
				      inout StringSequence a1,
				      out StringSequence a2)
	raises(ExStringSequence);
    
    // --------------------------------------------------
    exception ExFixedArray
    {
	FixedArray value;
    };
    FixedArray opFixedArrayEx(in FixedArray a0,
			      inout FixedArray a1,
			      out FixedArray a2)
	raises(ExFixedArray);
    
    // --------------------------------------------------
    exception ExVariableArray
    {
	VariableArray value;
    };
    VariableArray opVariableArrayEx(in VariableArray a0,
				    inout VariableArray a1,
				    out VariableArray a2)
	raises(ExVariableArray);
    
    // --------------------------------------------------
    exception ExFixedArraySequence
    {
	FixedArraySequence value;
    };
    FixedArraySequence
	opFixedArraySequenceEx(in FixedArraySequence a0,
			       inout FixedArraySequence a1,
			       out FixedArraySequence a2)
	raises(ExFixedArraySequence);
    
    // --------------------------------------------------
    exception ExVariableArraySequence
    {
	VariableArraySequence value;
    };
    VariableArraySequence
	opVariableArraySequenceEx(in VariableArraySequence a0,
				  inout VariableArraySequence a1,
				  out VariableArraySequence a2)
	raises(ExVariableArraySequence);

    // --------------------------------------------------
    void op_UNKNOWN_Ex();
    void op_BAD_PARAM_Ex();
    void op_NO_MEMORY_Ex();
    void op_IMP_LIMIT_Ex();
    void op_COMM_FAILURE_Ex();
    void op_INV_OBJREF_Ex();
    void op_NO_PERMISSION_Ex();
    void op_INTERNAL_Ex();
    void op_MARSHAL_Ex();
    void op_INITIALIZE_Ex();
    void op_NO_IMPLEMENT_Ex();
    void op_BAD_TYPECODE_Ex();
    void op_BAD_OPERATION_Ex();
    void op_NO_RESOURCES_Ex();
    void op_NO_RESPONSE_Ex();
    void op_PERSIST_STORE_Ex();
    void op_BAD_INV_ORDER_Ex();
    void op_TRANSIENT_Ex();
    void op_FREE_MEM_Ex();
    void op_INV_IDENT_Ex();
    void op_INV_FLAG_Ex();
    void op_INTF_REPOS_Ex();
    void op_BAD_CONTEXT_Ex();
    void op_OBJ_ADAPTER_Ex();
    void op_DATA_CONVERSION_Ex();
    void op_OBJECT_NOT_EXIST_Ex();
    void op_TRANSACTION_REQUIRED_Ex();
    void op_TRANSACTION_ROLLEDBACK_Ex();
    void op_INVALID_TRANSACTION_Ex();
    void op_INV_POLICY_Ex();
};

interface TestInterfaceTimeout : TestInterfaceEx
{
    oneway void sleepOneway(in unsigned long sec);
    void sleepTwoway(in unsigned long sec);
};
