style: Format source code and support grouping client

This commit is contained in:
yuanyuanxiang
2025-10-15 04:32:59 +08:00
parent 77087d2e06
commit 6b81ad1f81
244 changed files with 43052 additions and 42562 deletions

View File

@@ -3,96 +3,112 @@
#include <string>
// Buffer <20><><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>.
class Buffer {
class Buffer
{
private:
PBYTE buf;
ULONG len;
ULONG padding;
std::string md5;
ULONG *ref;
void AddRef() {
(*ref)++;
}
void DelRef() {
(*ref)--;
}
PBYTE buf;
ULONG len;
ULONG padding;
std::string md5;
ULONG *ref;
void AddRef()
{
(*ref)++;
}
void DelRef()
{
(*ref)--;
}
public:
LPBYTE &Buf() {
return buf;
}
~Buffer() {
DelRef();
if (*ref == 0) {
if (buf!=NULL)
{
delete[] buf;
buf = NULL;
}
delete ref;
ref = NULL;
}
}
Buffer():buf(NULL), len(0), ref(new ULONG(1)), padding(0) {
LPBYTE &Buf()
{
return buf;
}
~Buffer()
{
DelRef();
if (*ref == 0) {
if (buf!=NULL) {
delete[] buf;
buf = NULL;
}
delete ref;
ref = NULL;
}
}
Buffer():buf(NULL), len(0), ref(new ULONG(1)), padding(0)
{
}
Buffer(const BYTE * b, int n, int padding=0, const std::string& md5="") :
len(n), ref(new ULONG(1)), padding(padding), md5(md5){
buf = new BYTE[n];
memcpy(buf, b, n);
}
Buffer(Buffer& o) {
o.AddRef();
buf = o.buf;
len = o.len;
ref = o.ref;
}
Buffer operator =(Buffer &o) {
o.AddRef();
buf = o.buf;
len = o.len;
ref = o.ref;
return *this;
}
char* c_str() const {
return (char*)buf;
}
ULONG length(bool noPadding=false)const {
return noPadding ? len - padding : len;
}
std::string MD5() const {
return md5;
}
}
Buffer(const BYTE * b, int n, int padding=0, const std::string& md5="") :
len(n), ref(new ULONG(1)), padding(padding), md5(md5)
{
buf = new BYTE[n];
memcpy(buf, b, n);
}
Buffer(Buffer& o)
{
o.AddRef();
buf = o.buf;
len = o.len;
ref = o.ref;
}
Buffer operator =(Buffer &o)
{
o.AddRef();
buf = o.buf;
len = o.len;
ref = o.ref;
return *this;
}
char* c_str() const
{
return (char*)buf;
}
ULONG length(bool noPadding=false)const
{
return noPadding ? len - padding : len;
}
std::string MD5() const
{
return md5;
}
};
class CBuffer
{
public:
CBuffer(void);
~CBuffer(void);
CBuffer(void);
~CBuffer(void);
ULONG ReadBuffer(PBYTE Buffer, ULONG ulLength);
ULONG GetBufferLength(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
ULONG GetBufferLen() { return GetBufferLength(); }
VOID ClearBuffer();
BOOL WriteBuffer(PBYTE Buffer, ULONG ulLength);
BOOL Write(PBYTE Buffer, ULONG ulLength) {
return WriteBuffer(Buffer, ulLength);
}
BOOL WriteBuffer(CBuffer& buf) {
return WriteBuffer(buf.GetBuffer(), buf.GetBufferLen());
}
LPBYTE GetBuffer(ULONG ulPos=0);
Buffer GetMyBuffer(ULONG ulPos);
BYTE GetBYTE(ULONG ulPos);
BOOL CopyBuffer(PVOID pDst, ULONG nLen, ULONG ulPos);
ULONG RemoveCompletedBuffer(ULONG ulLength);
std::string Skip(ULONG ulPos);
ULONG ReadBuffer(PBYTE Buffer, ULONG ulLength);
ULONG GetBufferLength(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
ULONG GetBufferLen()
{
return GetBufferLength();
}
VOID ClearBuffer();
BOOL WriteBuffer(PBYTE Buffer, ULONG ulLength);
BOOL Write(PBYTE Buffer, ULONG ulLength)
{
return WriteBuffer(Buffer, ulLength);
}
BOOL WriteBuffer(CBuffer& buf)
{
return WriteBuffer(buf.GetBuffer(), buf.GetBufferLen());
}
LPBYTE GetBuffer(ULONG ulPos=0);
Buffer GetMyBuffer(ULONG ulPos);
BYTE GetBYTE(ULONG ulPos);
BOOL CopyBuffer(PVOID pDst, ULONG nLen, ULONG ulPos);
ULONG RemoveCompletedBuffer(ULONG ulLength);
std::string Skip(ULONG ulPos);
protected:
PBYTE m_Base;
PBYTE m_Ptr;
ULONG m_ulMaxLength;
CRITICAL_SECTION m_cs;
ULONG DeAllocateBuffer(ULONG ulLength); // ˽<><CBBD>
ULONG ReAllocateBuffer(ULONG ulLength); // ˽<><CBBD>
PBYTE m_Base;
PBYTE m_Ptr;
ULONG m_ulMaxLength;
CRITICAL_SECTION m_cs;
ULONG DeAllocateBuffer(ULONG ulLength); // ˽<><CBBD>
ULONG ReAllocateBuffer(ULONG ulLength); // ˽<><CBBD>
};