mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-05-25 11:41:57 +00:00
ref[cpp]: refactor cpp protocol generate
This commit is contained in:
@@ -35,11 +35,11 @@ namespace zfoo {
|
||||
|
||||
class ByteBuffer;
|
||||
|
||||
class IPacket {
|
||||
class IProtocol {
|
||||
public:
|
||||
virtual int16_t protocolId() = 0;
|
||||
|
||||
virtual ~IPacket() {
|
||||
virtual ~IProtocol() {
|
||||
}
|
||||
};
|
||||
|
||||
@@ -47,9 +47,9 @@ namespace zfoo {
|
||||
public:
|
||||
virtual int16_t protocolId() = 0;
|
||||
|
||||
virtual void write(ByteBuffer &buffer, IPacket *packet) = 0;
|
||||
virtual void write(ByteBuffer &buffer, IProtocol *packet) = 0;
|
||||
|
||||
virtual IPacket *read(ByteBuffer &buffer) = 0;
|
||||
virtual IProtocol *read(ByteBuffer &buffer) = 0;
|
||||
};
|
||||
|
||||
IProtocolRegistration *getProtocol(int16_t protocolId);
|
||||
@@ -395,21 +395,21 @@ namespace zfoo {
|
||||
return readString()[0];
|
||||
}
|
||||
|
||||
inline bool writePacketFlag(const IPacket *packet) {
|
||||
inline bool writePacketFlag(const IProtocol *packet) {
|
||||
bool flag = packet == nullptr;
|
||||
writeBool(!flag);
|
||||
return flag;
|
||||
}
|
||||
|
||||
inline void writePacket(IPacket *packet, const int16_t &protocolId) {
|
||||
inline void writePacket(IProtocol *packet, const int16_t &protocolId) {
|
||||
IProtocolRegistration *protocolRegistration = getProtocol(protocolId);
|
||||
protocolRegistration->write(*this, packet);
|
||||
}
|
||||
|
||||
inline unique_ptr<IPacket> readPacket(const int16_t &protocolId) {
|
||||
inline unique_ptr<IProtocol> readPacket(const int16_t &protocolId) {
|
||||
IProtocolRegistration *protocolRegistration = getProtocol(protocolId);
|
||||
auto packet = protocolRegistration->read(*this);
|
||||
return unique_ptr<IPacket>(packet);
|
||||
return unique_ptr<IProtocol>(packet);
|
||||
}
|
||||
|
||||
|
||||
@@ -1069,7 +1069,7 @@ namespace zfoo {
|
||||
writeInt(map.size());
|
||||
for (const auto&[key, value] : map) {
|
||||
writeInt(key);
|
||||
writePacket((IPacket *) &value, protocolId);
|
||||
writePacket((IProtocol *) &value, protocolId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1164,7 +1164,7 @@ namespace zfoo {
|
||||
writeInt(map.size());
|
||||
for (const auto&[key, value] : map) {
|
||||
writeLong(key);
|
||||
writePacket((IPacket *) &value, protocolId);
|
||||
writePacket((IProtocol *) &value, protocolId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1259,7 +1259,7 @@ namespace zfoo {
|
||||
writeInt(map.size());
|
||||
for (const auto&[key, value] : map) {
|
||||
writeString(key);
|
||||
writePacket((IPacket *) &value, protocolId);
|
||||
writePacket((IProtocol *) &value, protocolId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1287,7 +1287,7 @@ namespace zfoo {
|
||||
int32_t length = array.size();
|
||||
writeInt(length);
|
||||
for (auto value : array) {
|
||||
writePacket((IPacket *) &value, protocolId);
|
||||
writePacket((IProtocol *) &value, protocolId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1312,7 +1312,7 @@ namespace zfoo {
|
||||
int32_t length = list.size();
|
||||
writeInt(length);
|
||||
for (auto value : list) {
|
||||
writePacket((IPacket *) &value, protocolId);
|
||||
writePacket((IProtocol *) &value, protocolId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1337,7 +1337,7 @@ namespace zfoo {
|
||||
int32_t length = set.size();
|
||||
writeInt(length);
|
||||
for (auto value : set) {
|
||||
writePacket((IPacket *) &value, protocolId);
|
||||
writePacket((IProtocol *) &value, protocolId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace zfoo {
|
||||
return const_cast<IProtocolRegistration *>(protocols[protocolId]);
|
||||
}
|
||||
|
||||
void write(ByteBuffer &buffer, IPacket *packet) {
|
||||
void write(ByteBuffer &buffer, IProtocol *packet) {
|
||||
auto protocolId = packet->protocolId();
|
||||
// 写入协议号
|
||||
buffer.writeShort(protocolId);
|
||||
@@ -24,7 +24,7 @@ namespace zfoo {
|
||||
getProtocol(protocolId)->write(buffer, packet);
|
||||
}
|
||||
|
||||
IPacket *read(ByteBuffer &buffer) {
|
||||
IProtocol *read(ByteBuffer &buffer) {
|
||||
auto protocolId = buffer.readShort();
|
||||
return getProtocol(protocolId)->read(buffer);
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
namespace zfoo {
|
||||
|
||||
{}
|
||||
class {} : public IPacket {
|
||||
class {} : public IProtocol {
|
||||
public:
|
||||
{}
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace zfoo {
|
||||
return {};
|
||||
}
|
||||
|
||||
void write(ByteBuffer &buffer, IPacket *packet) override {
|
||||
void write(ByteBuffer &buffer, IProtocol *packet) override {
|
||||
if (buffer.writePacketFlag(packet)) {
|
||||
return;
|
||||
}
|
||||
@@ -43,7 +43,7 @@ namespace zfoo {
|
||||
{}
|
||||
}
|
||||
|
||||
IPacket *read(ByteBuffer &buffer) override {
|
||||
IProtocol *read(ByteBuffer &buffer) override {
|
||||
auto *packet = new {}();
|
||||
if (!buffer.readBool()) {
|
||||
return packet;
|
||||
|
||||
Reference in New Issue
Block a user