Files
Sun1602/Server/MolaCrypt/SRC.MOLA/CryptManager.ISecureWorkNode.CmdStream.h
T
2022-10-26 12:25:11 +08:00

95 lines
2.2 KiB
C++

// Cryptmanager.ISecureWorkNode.CmdStream.h
#pragma once
#pragma pack(push, 1)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
//
//
class ISecureQueryCmdStreamInit : public ISecureQueryCmdStreamBase
{
public: virtual VOID Release()
{
}
#if SERVER_CODE || CODE_TEST(__MOLA_IwASM_CMD_SERVER_CODE_TEST__)
virtual VOID Init()
{
}
virtual BYTE* GetCmdStream( PARGB_T pARG, WORD& rwSIZE )
{
rwSIZE = 0;
return NULL;
}
virtual sRETURN_PTR_SZ ExecQueryNResult()
{
sRETURN_PTR_SZ info;
info.RET_TYPE = sRETURN_PTR_SZ::PTR;
info.RET_STREAM = NULL;
info.RET_SZ = 0;
return info;
}
#endif //SERVER_CODE
// 주어진 포인터의 가상함수테이블 타입주소를 통해 새롭게 복사본을 만들어낸다.
virtual ISecureQueryCmdStreamBase* GetInstance( BYTE* IN pAllocedPtr )
{
ISecureQueryCmdStreamInit* pInstance = new (pAllocedPtr) ISecureQueryCmdStreamInit();
return pInstance;
}
};
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
// Builtin으로 해결되는 코드들을 여기에 입력하기로 한다.
//
// BuiltinCode Definition
// [CMD STREAM]
// WORD GetCmdStreamSize();
// BOOL SetArgument( PARGB_T pARG );
// sRETURN_PTR_SZ GetResult();
//
template<typename _CMDBLK, typename BYTE _TMP>
class ISecureQueryCmdStreamBuiltinCmd : public ISecureQueryCmdStreamBase
{
public: virtual VOID Release()
{
}
#if SERVER_CODE || CODE_TEST(__MOLA_IwASM_CMD_SERVER_CODE_TEST__)
virtual VOID Init()
{
}
virtual BYTE* GetCmdStream( PARGB_T pARG, WORD& rwSIZE )
{
if( pARG )
m_CMDSTREAM.SetArgument( pARG );
rwSIZE = m_CMDSTREAM.GetCmdStreamSize();
return (BYTE*)&m_CMDSTREAM;
}
virtual sRETURN_PTR_SZ ExecQueryNResult()
{
sRETURN_PTR_SZ sRET = m_CMDSTREAM.GetResult();
return sRET;
}
#endif //SERVER_CODE
// 주어진 포인터의 가상함수테이블 타입주소를 통해 새롭게 복사본을 만들어낸다.
virtual ISecureQueryCmdStreamBase* GetInstance( BYTE* IN pAllocedPtr )
{
ISecureQueryCmdStreamBuiltinCmd* pInstance = new (pAllocedPtr) ISecureQueryCmdStreamBuiltinCmd();
return pInstance;
}
private: _CMDBLK m_CMDSTREAM;
};
#pragma pack(pop)