Files
SibIntel1/Source/MasharovDev/commands.h
T
2024-08-15 19:09:07 +05:00

37 lines
663 B
C++

#pragma once
#ifndef __NO_DEF_STD_TYPES
typedef unsigned char byte;
typedef unsigned short word;
typedef unsigned long dword;
#endif
#pragma pack(push,1)
struct TCommand
{
byte size;
byte command;
};
#define DECLARE_CMD_DATA(cmd) cmd##_T cmd##_D
#define DECLARE_CMD(cmd, var) cmd##_T var; \
var.size = sizeof(var); \
var.command = cmd;
/*
* В классе CSocket должен быть реализован метод
* write(const char *buffer, size_t size)
*/
template <class CSocket>
bool sendCommand(CSocket &socket, const TCommand &command)
{
return socket.write(reinterpret_cast<const char*>(&command), command.size);
}
#pragma pack(pop)