Files
2022-10-26 12:25:11 +08:00

67 lines
1.5 KiB
C++

#pragma once
#pragma pack(push,1)
template < typename DATATYPE >
struct sTEMPLATE_TOTAL_INFO
{
explicit sTEMPLATE_TOTAL_INFO() : m_Count(0) {}
typedef DATATYPE DATA_TYPE;
enum { MAX_DATA_NUM = 0xFF, };
BYTE m_Count;
DATA_TYPE m_Data[MAX_DATA_NUM];
void Clear() { m_Count = 0; }
int GetSize()
{
return (sizeof(*this)-(MAX_DATA_NUM-m_Count)*sizeof(this->m_Data[0]));
}
};
#ifdef __20080312__SOLARAUTH_SERVER_PATCH
template<>
struct sTEMPLATE_TOTAL_INFO<CONVERT_RESULT>
{
typedef CONVERT_RESULT DATA_TYPE;
enum { MAX_DATA_NUM = 0xFF, };
explicit sTEMPLATE_TOTAL_INFO()
: m_Count(0)
{
}
void Clear() { m_Count = 0; }
int GetSize()
{
return (sizeof(*this)-(MAX_DATA_NUM-m_Count)*sizeof(this->m_Data[0]));
}
VOID AddData( const CONVERT_RESULT& val )
{
m_Data[m_Count++] = val;
}
VOID AddData(LPCTSTR FileName, eRC_CONVERT Error, BOOL type)
{
m_Data[m_Count].byType = type;
m_Data[m_Count].dwError = Error;
_tcsncpy( m_Data[m_Count++].szFileName, FileName, MAX_FILE_NAME);
}
BYTE m_Count;
DATA_TYPE m_Data[MAX_DATA_NUM];
};
#endif
typedef sTEMPLATE_TOTAL_INFO<SERVER_INFO_EX> SERVER_TOTAL_INFO;
typedef sTEMPLATE_TOTAL_INFO<FTP_CONNECT_INFO> FTP_TOTAL_INFO;
typedef sTEMPLATE_TOTAL_INFO<SERVER_ACCESS_INFO> SERVER_ACCESS_TOTAL_INFO;
typedef sTEMPLATE_TOTAL_INFO<AGENT_INFO> AGENT_TOTAL_INFO;
#ifdef __20080312__SOLARAUTH_SERVER_PATCH
typedef sTEMPLATE_TOTAL_INFO<SCFOLDER_INFO> SCRIPTFOLDER_TOTAL_INFO;
typedef sTEMPLATE_TOTAL_INFO<CONVERT_RESULT> CONVERT_RESULT_TOTAL_INFO;
#endif
#pragma pack(pop)