/***************************************************************************


    ========== licence begin  GPL
    Copyright (c) 2002-2005 SAP AG

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    ========== licence end




*/
/* lvcbench.idl : IDL source for lvcbench.dll                               */
/****************************************************************************/
/* This file will be processed by the MIDL tool to
 * produce the type library (lvcbenchLIB.tlb).
 * The library (lvcbenchLIB.tlb) will be included as a 'resource' 
 * into lvcbench.dll.
 */ 

import "oaidl.idl";

[   
	uuid(E1BAF893-A28A-11D5-B346-0050DADE3427),
	version(1.0),
	helpstring("LVCBENCHLIB 1.0 Type Library")
]

library LVCBENCHLIB
{
#if defined(_IN_MSDEV)
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");
#endif
/****************************************************************************/
/* The default alignment of the IDL-compiler ( 4 Byte alignment ) is different 
 * to the default alignment of the Visual C++ compiler ( 8 Byte alignment ).
 * Therefore the alignment of the Visual C++ Compiler is forced to the default
 * alignment of the MIDL compiler using the '#pragma' statement for all type 
 * definitions done within the IDL file.
 */
 
    import "livecachetypes.idl";   

const char LiveCacheApplVersion = "V1.0";    

typedef OmsTypeChar ACCOUNT_KEY[12];
typedef OmsTypeChar BRANCH_KEY[3];
typedef OmsTypeChar TELLER_KEY[4];
typedef OmsTypeChar HISTORY_FILLER[26];

	[	
		uuid(E1BAF895-A28A-11D5-B346-0050DADE3427),
	
		helpstring("Ilvcbench Interface"),
		pointer_default(unique)
	]
/****************************************************************************/
/* *** TODO ***
 * Insert methods to the interface. */
/* All methods will be used as DB-Procedures. All these DB-Procedures will share 
 * COM-Object environment.
 */
	interface Ilvcbench : IUnknown
	{
	    HRESULT TP2_TRANSAC_CPP([in] ACCOUNT_KEY* accountKey, 
		 [in] int         accountAdd,  
		 [in] BRANCH_KEY* branchKey, 
		 [in] TELLER_KEY* tellerKey, 
		 [in] HISTORY_FILLER* historyFiller, 
		 [out] int* returnCode);
	    [helpstring("method TP_TRANS")]  HRESULT TP_TRANS();
	    [helpstring("method CREATE_TP_DATA")]  HRESULT CREATE_TP_DATA ([in] OmsTypeInt4 maxTaskId,
			                                                           [in] OmsTypeInt4 listLength, 
																	   [in] OmsTypeInt4 deleteIntervall);
	    [helpstring("method GET_TRANS_COUNT")] HRESULT GET_TRANS_COUNT([in] OmsTypeInt4 maxTaskId, [out] OmsTypeInt4* error);
	    [helpstring("method STOP")] HRESULT STOP();
	    [helpstring("method STD_TRANS")] HRESULT STD_TRANS();
	    [helpstring("method GET_ERROR")] HRESULT GET_ERROR([in] int taskId, [out] OmsTypeInt4* error);
       	[helpstring("method COUNT_TASKS")] HRESULT COUNT_TASKS([out] OmsTypeInt4* cntTasks); 
    	[helpstring("method GET_CALL_INFO")] HRESULT GET_CALL_INFO([in] OmsTypeInt4  taskId, 
                                                       [out] OmsTypeInt4* runTime, 
                                                       [out] OmsTypeInt4* opCount, 
                                                       [out] OmsTypeInt4* errorCode);
	    [helpstring("method WAIT_FOR_GARBAGE_COLLECTOR")] HRESULT WAIT_FOR_GARBAGE_COLLECTOR();
   	    [helpstring("method CREATE_CONTAINER")] HRESULT CREATE_CONTAINER([in] int keyContainer, [in] int cno, [in] int partitioned);
        [helpstring("method DROP_CONTAINER")] HRESULT DROP_CONTAINER([in] int keyContainer, [in] int cno);
	    [helpstring("method CREATE_OBJECTS")] HRESULT CLEAN_UP();
		[helpstring("method CREATE_OBJECTS")] HRESULT CREATE_OBJECTS([in] OmsTypeInt4 cntObjects, [out] OmsTypeInt4* milliSecs);
		[helpstring("method CREATE_KEYED_OBJECTS")] HRESULT CREATE_KEYED_OBJECTS([in] OmsTypeInt4 cntObjects, [in] OmsTypeInt4 offset);
		[helpstring("method SET_TASK_ID")] HRESULT SET_TASK_ID([in] int taskId); 
		[helpstring("method MAKE_LIST")] HRESULT MAKE_LIST();
		[helpstring("method DEREF")] HRESULT DEREF();
		[helpstring("method GET_RUN_TIME")] HRESULT GET_RUN_TIME([out] OmsTypeInt4* runTime);
		[helpstring("method DEREFFORUPD")] HRESULT DEREFFORUPD();
		[helpstring("method DEREF_KEYED")] HRESULT DEREF_KEYED([in] OmsTypeInt4 cntObjects, [in] OmsTypeInt4 startNumber);
		[helpstring("method CACHED_KEYS_ON")]  HRESULT CACHED_KEYS_ON();		
		[helpstring("method CACHED_KEYS_OFF")] HRESULT CACHED_KEYS_OFF(); 		
		[helpstring("method CREATE_VERSION")] HRESULT CREATE_VERSION([in] OmsTypeInt4 vId);
		[helpstring("method CLOSE_VERSION")] HRESULT CLOSE_VERSION([in] OmsTypeInt4 vId);
		[helpstring("method DROP_VERSION")] HRESULT DROP_VERSION([in] OmsTypeInt4 vId);
		[helpstring("method UPDATE_OBJECTS")] HRESULT UPDATE_OBJECTS();
		[helpstring("method OPEN_VERSION")] HRESULT OPEN_VERSION([in] OmsTypeInt4 vId);
		[helpstring("method RESET_VERSION")] HRESULT RESET_VERSION([in] OmsTypeInt4 vId);
		[helpstring("method ITER")] HRESULT ITER([in] OmsTypeInt4 maxNumber, [in] OmsTypeInt4 noOfIter);
		[helpstring("method ITER_FORUPD")] HRESULT ITER_FORUPD();
		[helpstring("method CREATE_VAROBJECTS")] HRESULT CREATE_VAROBJECTS([in] OmsTypeInt4 noOfObjects, [in] OmsTypeInt4 size);
		[helpstring("method DEREF_VAROBJECTS")] HRESULT DEREF_VAROBJECTS();
		[helpstring("method DELETE_VAROBJECTS")] HRESULT DELETE_VAROBJECTS();
		[helpstring("method HEAP_TEST")] HRESULT HEAP_TEST([in] int MemSizeKB, [in] int MinChunkSize, [in] int MaxChunkSize, [in] int loopCnt);
		[helpstring("method HEAP_SMALL_CHUNKS")] HRESULT HEAP_SMALL_CHUNKS([in] int MemSizeKB, [in] int loopCnt);
		[helpstring("method INIT_SQL")] HRESULT INIT_SQL([in] OmsTypeInt4 initRows);
    [helpstring("method INSERT_SQL")] HRESULT INSERT_SQL([in] OmsTypeInt4 noOfRows);
		[helpstring("method KEY_RANGE_ITER")] HRESULT KEY_RANGE_ITER([in] OmsTypeInt4 maxNumber, [in] OmsTypeInt4 noOfIter);
    [helpstring("method GET_CALL_STATISTICS")] HRESULT GET_CALL_STATISTICS([out] OmsMonitorData* info);
    [helpstring("method LOCK_SHARE")] HRESULT LOCK_SHARE([in] int no);
    [helpstring("method LOCK_EXCLUSIVE")] HRESULT LOCK_EXCLUSIVE([in] int no);
		[helpstring("method UNLOCK")] HRESULT UNLOCK([in] int no);
		[helpstring("method FILL_ARRAY")] HRESULT FILL_ARRAY([in] OmsTypeInt4 cntObjects);		
		[helpstring("method MASS_DEREF")] HRESULT MASS_DEREF([in] OmsTypeInt4 cntObjects, [in] OmsTypeInt4 packetSize);		
		[helpstring("method MASS_DEREF_KEY")] HRESULT MASS_DEREF_KEY([in] OmsTypeInt4 cntObjects, [in] OmsTypeInt4 packetSize); 
		[helpstring("method FILL_ARRAY_KEY")] HRESULT FILL_ARRAY_KEY([in] OmsTypeInt4 cntObjects, [in] OmsTypeInt4 startNumber);
    [helpstring("method INIT_AFTER_EOT")] HRESULT INIT_AFTER_EOT();    // PTS 1128285
        HRESULT CALL_DISPATCHER([in] OmsTypeInt4 count);
		[helpstring("method CREATE_ARRAY_OBJECTS")] HRESULT CREATE_ARRAY_OBJECTS([in]OmsTypeInt4 cntObjects, [in]OmsTypeInt4 arraySize);
		[helpstring("method DEREF_ARRAY_OBJECTS")] HRESULT DEREF_ARRAY_OBJECTS();
		[helpstring("method DELETE_ARRAY_OBJECTS")] HRESULT DELETE_ARRAY_OBJECTS();
    };

	[
		uuid(E1BAF894-A28A-11D5-B346-0050DADE3427),
		helpstring("lvcbench Class")
	]
	coclass lvcbench
	{
		[default] interface Ilvcbench;
	};

};
