Files
mir_server/Gateway/common/db/mail_data.h

89 lines
1.9 KiB
C
Raw Normal View History

2025-01-09 17:45:40 +08:00
#ifndef _MAIL_DATA_H_
#define _MAIL_DATA_H_
#include "common.h"
enum MailAwardType
{
MailAwardType_Currency,
MailAwardType_Item,
};
enum MailReadStatusType
{
MailReadStatusType_NotRead,
MailReadStatusType_HaveRead,
};
enum MailAwardStatusType
{
MailAwardStatusType_NoAward = -1, //<2F>޸<EFBFBD><DEB8><EFBFBD>
MailAwardStatusType_CanAward = 0, //<2F><><EFBFBD><EFBFBD>ȡ
MailAwardStatusType_HaveAward = 1, //<2F><><EFBFBD><EFBFBD>ȡ
};
#pragma pack (push, 4)
union MailSeries
{
int64_t llId;
struct
{
unsigned int time_; //31-0λ<30><CEBB>ʾ<EFBFBD><CABE>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>ʱ<EFBFBD>䣬ֵΪ<D6B5><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
uint16_t series_; //47-32λ<32><CEBB>ʾ<EFBFBD><CABE>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>У<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ+1<><31>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
uint16_t sid_; //55-48λ<38><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
} t;
public:
//inline operator int64_t () const { return llId; }
//inline bool operator == (const ItemSeries& series) const { return llId == series.llId; }
//inline bool operator != (const ItemSeries& series) const { return llId != series.llId; }
};
struct MailAwardData
{
int type; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int id; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒid<69><64><EFBFBD>ǻ<EFBFBD><C7BB>ҵĻ<D2B5><C4BB><EFBFBD>û<EFBFBD><C3BB>
int count; //<2F><><EFBFBD><EFBFBD>
MailAwardData() :type(0), id(0), count(0) {}
};
struct MailAwardList
{
int awardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
MailAwardData awardList[10]; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
};
struct MailData
{
static const int HEAD_SIZE = 128;
static const int CONTEXT_SIZE = 1024;
int uid; //<2F>ʼ<EFBFBD>Ψһϵ<D2BB>к<EFBFBD> MailSeries
int readStatus; //<2F><>ȡ״̬
int awardStatus; //<2F>콱״̬
int sendtime; //<2F><><EFBFBD>͵<EFBFBD>ʱ<EFBFBD><CAB1>
char head[128]; //<2F>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>
char context[1024]; //<2F>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>
MailAwardList award_data; // <20>󲿷<EFBFBD><F3B2BFB7><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><D4BA>٣<EFBFBD><D9A3><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>Ż<EFBFBD>
MailData()
{
memset(this, 0, sizeof(MailData));
}
public:
//<2F>޸<EFBFBD>useritem ע<><D7A2><EFBFBD><EFBFBD>Ҫ<EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD> writeToPack, writeDbPack, writeCrcPack
//<2F><>װ<EFBFBD><D7B0><EFBFBD>͸<EFBFBD><CDB8>ͻ<EFBFBD><CDBB>˵İ<CBB5>
void writeData(DataPacket& pack) {
pack.writeBuf(this, sizeof(MailData));
}
void readData(DataPacketReader& pack) {
pack.readBuf(this, sizeof(MailData));
}
};
#pragma pack(pop)
#endif