tinyrpc/includes/net/abstract_coder.hpp

38 lines
735 B
C++
Raw Normal View History

2025-01-21 16:35:26 +08:00
#pragma once
#include "tcp_buffer.hpp"
#include <cstdint>
#include <netinet/in.h>
namespace tinyrpc {
struct AbstractData {
AbstractData() = default;
virtual ~AbstractData() = default;
};
class AbstractCoder {
public:
AbstractCoder() = default;
virtual ~AbstractCoder() = default;
virtual bool encoder(TcpBuffer& buffer, AbstractData& data) = 0; // 编码
virtual bool decoder(TcpBuffer& buffer, AbstractData& data) = 0; // 解码
// virtual std::string getProtocalType() = 0;
private:
};
inline int32_t getInt32FromNetByte(char& buf) {
int32_t tmp;
memcpy(&tmp, &buf, sizeof(tmp));
return ntohl(tmp);
}
}