Componentes.Terceros.RemObj.../internal/5.0.23.613/1/RemObjects SDK for Delphi/Source/CodeGen2/Templates/template.invk.cpp

215 lines
8.5 KiB
C++
Raw Normal View History

// %UNIT_NAME%
//
/*---------------------------------------------------------------------------}
{ This unit was automatically generated by the RemObjects SDK after reading }
{ the RODL file associated with this project. }
{ }
{ Do not modify this unit manually, or your changes will be lost when this }
{ unit is regenerated the next time you compile the project. }
{---------------------------------------------------------------------------*/
// RemObjects:
#include <uRORes.HPP>
#include <uROClient.HPP>
// Interface of %LIBRARY_NAME%
#include "%LIBRARY_NAME%_intf.h"
// Implementation of %LIBRARY_NAME%
#include "%LIBRARY_NAME%_invk.h"
// <%%% START SERVICES %%%>
// T%SERVICE_NAME%_Invoker
// <%%% START FUNCTION_OPERATIONS %%%>
void __fastcall T%SERVICE_NAME%_Invoker::Invoke_%OPERATION_NAME%(
const System::_di_IInterface __Instance,
const Uroclientintf::_di_IROMessage __Message,
const Uroclientintf::_di_IROTransport __Transport,
/* out */ Uroserverintf::TROResponseOptions& __oResponseOptions)
{
// <%%% START IF_RESULT_SIMPLE %%%>
// virtual %OPERATION_RESULT% __fastcall %OPERATION_NAME%(
// <%%% END IF_RESULT_SIMPLE %%%>
// <%%% START IF_RESULT_COMPLEX %%%>
// virtual %OPERATION_RESULT%* __fastcall %OPERATION_NAME%(
// <%%% END IF_RESULT_COMPLEX %%%>
// <%%% START PARAMS %%%>
// <%%% START IF_PARAM_TYPE_SIMPLE %%%>
// %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,
// <%%% END IF_PARAM_TYPE_SIMPLE %%%>
// <%%% START IF_PARAM_TYPE_COMPLEX %%%>
// %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,
// <%%% END IF_PARAM_TYPE_COMPLEX %%%>
// <%%% END PARAMS %%%>
// );
// <%%% START PARAMS_NO_STRIP %%%>
// <%%% START IF_PARAM_TYPE_SIMPLE %%%>
%PARAM_TYPE% %PARAM_NAME%;
// <%%% END IF_PARAM_TYPE_SIMPLE %%%>
// <%%% START IF_PARAM_TYPE_COMPLEX %%%>
%PARAM_TYPE%* %PARAM_NAME%;
// <%%% END IF_PARAM_TYPE_COMPLEX %%%>
// <%%% END PARAMS_NO_STRIP %%%>
// <%%% START IF_RESULT_SIMPLE %%%>
%OPERATION_RESULT% lResult;
// <%%% END IF_RESULT_SIMPLE %%%>
// <%%% START IF_RESULT_COMPLEX %%%>
%OPERATION_RESULT%* lResult;
// <%%% END IF_RESULT_COMPLEX %%%>
try
{
_di_I%SERVICE_NAME% __%SERVICE_NAME%Instance;
if (__Instance->Supports(__%SERVICE_NAME%Instance))
{
// <%%% START IN_PARAMS_NO_STRIP %%%>
// <%%% START IF_PARAM_TYPE_SIMPLE %%%>
__Message->Read("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));
// <%%% END IF_PARAM_TYPE_SIMPLE %%%>
// <%%% START IF_PARAM_TYPE_COMPLEX %%%>
__Message->Read("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));
// <%%% END IF_PARAM_TYPE_COMPLEX %%%>
// <%%% END IN_PARAMS_NO_STRIP %%%>
lResult = __%SERVICE_NAME%Instance->%OPERATION_NAME%(
// <%%% START PARAMS %%%>
%PARAM_NAME%,
// <%%% END PARAMS %%%>
);
__Message->InitializeResponseMessage(__Transport, "%LIBRARY_NAME%", "%SERVICE_NAME%", "%OPERATION_NAME%Response");
// <%%% START OUT_PARAMS_NO_STRIP %%%>
// <%%% START IF_PARAM_TYPE_SIMPLE %%%>
__Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));
// <%%% END IF_PARAM_TYPE_SIMPLE %%%>
// <%%% START IF_PARAM_TYPE_COMPLEX %%%>
__Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));
// <%%% END IF_PARAM_TYPE_COMPLEX %%%>
// <%%% END OUT_PARAMS_NO_STRIP %%%>
// <%%% START IF_RESULT_SIMPLE %%%>
__Message->Write("Result", __Get%OPERATION_RESULT%Info, &lResult, TParamAttributes(%OPERATION_RESULT_ATTRIBUTE%));
// <%%% END IF_RESULT_SIMPLE %%%>
// <%%% START IF_RESULT_COMPLEX %%%>
__Message->Write("Result", __typeinfo(%OPERATION_RESULT%), lResult, TParamAttributes(%OPERATION_RESULT_ATTRIBUTE%));
// <%%% END IF_RESULT_COMPLEX %%%>
__Message->Finalize();
}
else
{
throw new EIntfCastError("Critical error in Invoker: Instance does not support I%SERVICE_NAME% interface");
}
}
__finally
{
// <%%% START IF_HAS_COMPLEX_TYPE %%%>
TROObjectDisposer* __lObjectDisposer = new TROObjectDisposer(__Instance);
try
{
// <%%% START PARAMS_NO_STRIP %%%>
// <%%% START IF_PARAM_TYPE_COMPLEX %%%>
__lObjectDisposer->Add(%PARAM_NAME%);
// <%%% END IF_PARAM_TYPE_COMPLEX %%%>
// <%%% END PARAMS_NO_STRIP %%%>
// <%%% START IF_RESULT_COMPLEX %%%>
__lObjectDisposer->Add(lResult);
// <%%% END IF_RESULT_COMPLEX %%%>
}
__finally
{
delete __lObjectDisposer;
}
// <%%% END IF_HAS_COMPLEX_TYPE %%%>
}
}
// <%%% END FUNCTION_OPERATIONS %%%>
// <%%% START PROCEDURE_OPERATIONS %%%>
void __fastcall T%SERVICE_NAME%_Invoker::Invoke_%OPERATION_NAME%(
const System::_di_IInterface __Instance,
const Uroclientintf::_di_IROMessage __Message,
const Uroclientintf::_di_IROTransport __Transport,
/* out */ Uroserverintf::TROResponseOptions& __oResponseOptions)
{
// virtual void __fastcall %OPERATION_NAME%(
// <%%% START PARAMS %%%>
// <%%% START IF_PARAM_TYPE_SIMPLE %%%>
// %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,
// <%%% END IF_PARAM_TYPE_SIMPLE %%%>
// <%%% START IF_PARAM_TYPE_COMPLEX %%%>
// %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,
// <%%% END IF_PARAM_TYPE_COMPLEX %%%>
// <%%% END PARAMS %%%>
// );
// <%%% START PARAMS_NO_STRIP %%%>
// <%%% START IF_PARAM_TYPE_SIMPLE %%%>
%PARAM_TYPE% %PARAM_NAME%;
// <%%% END IF_PARAM_TYPE_SIMPLE %%%>
// <%%% START IF_PARAM_TYPE_COMPLEX %%%>
%PARAM_TYPE%* %PARAM_NAME%;
// <%%% END IF_PARAM_TYPE_COMPLEX %%%>
// <%%% END PARAMS_NO_STRIP %%%>
try
{
_di_I%SERVICE_NAME% __%SERVICE_NAME%Instance;
if (__Instance->Supports(__%SERVICE_NAME%Instance))
{
// <%%% START IN_PARAMS_NO_STRIP %%%>
// <%%% START IF_PARAM_TYPE_SIMPLE %%%>
__Message->Read("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));
// <%%% END IF_PARAM_TYPE_SIMPLE %%%>
// <%%% START IF_PARAM_TYPE_COMPLEX %%%>
__Message->Read("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));
// <%%% END IF_PARAM_TYPE_COMPLEX %%%>
// <%%% END IN_PARAMS_NO_STRIP %%%>
__%SERVICE_NAME%Instance->%OPERATION_NAME%(
// <%%% START PARAMS %%%>
%PARAM_NAME%,
// <%%% END PARAMS %%%>
);
__Message->InitializeResponseMessage(__Transport, "%LIBRARY_NAME%", "%SERVICE_NAME%", "%OPERATION_NAME%Response");
// <%%% START OUT_PARAMS_NO_STRIP %%%>
// <%%% START IF_PARAM_TYPE_SIMPLE %%%>
__Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));
// <%%% END IF_PARAM_TYPE_SIMPLE %%%>
// <%%% START IF_PARAM_TYPE_COMPLEX %%%>
__Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));
// <%%% END IF_PARAM_TYPE_COMPLEX %%%>
// <%%% END OUT_PARAMS_NO_STRIP %%%>
__Message->Finalize();
// <%%% START IF_NO_OUT_PARAMS %%%>
__oResponseOptions = TROResponseOptions() << roNoResponse;
// <%%% END IF_NO_OUT_PARAMS %%%>
}
else
{
throw new EIntfCastError("Critical error in Invoker: Instance does not support %SERVICE_NAME% interface");
}
}
__finally
{
// <%%% START IF_HAS_COMPLEX_TYPE %%%>
TROObjectDisposer* __lObjectDisposer = new TROObjectDisposer(__Instance);
try
{
// <%%% START PARAMS_NO_STRIP %%%>
// <%%% START IF_PARAM_TYPE_COMPLEX %%%>
__lObjectDisposer->Add(%PARAM_NAME%);
// <%%% END IF_PARAM_TYPE_COMPLEX %%%>
// <%%% END PARAMS_NO_STRIP %%%>
}
__finally
{
delete __lObjectDisposer;
}
// <%%% END IF_HAS_COMPLEX_TYPE %%%>
}
}
// <%%% END PROCEDURE_OPERATIONS %%%>
// <%%% END SERVICES %%%>