Added signed types to packet
This commit is contained in:
parent
27b559b4ef
commit
1594d4babf
@ -132,6 +132,72 @@ namespace fr
|
||||
return *this;
|
||||
}
|
||||
|
||||
/*
|
||||
* Adds a 16bit variable to the packet
|
||||
*/
|
||||
inline Packet &operator<<(int16_t var)
|
||||
{
|
||||
buffer.resize(buffer.size() + sizeof(var));
|
||||
var = htons((uint16_t)var);
|
||||
memcpy(&buffer[buffer.size() - sizeof(var)], &var, sizeof(var));
|
||||
return *this;
|
||||
}
|
||||
|
||||
/*
|
||||
* Extracts a 16bit variable from the packet
|
||||
*/
|
||||
inline Packet &operator>>(int16_t &var)
|
||||
{
|
||||
memcpy(&var, &buffer[0], sizeof(var));
|
||||
buffer.erase(0, sizeof(var));
|
||||
var = ntohs((uint16_t)var);
|
||||
return *this;
|
||||
}
|
||||
|
||||
/*
|
||||
* Adds a 32bit variable to the packet
|
||||
*/
|
||||
inline Packet &operator<<(int32_t var)
|
||||
{
|
||||
buffer.resize(buffer.size() + sizeof(var));
|
||||
var = htonl((uint32_t)var);
|
||||
memcpy(&buffer[buffer.size() - sizeof(var)], &var, sizeof(var));
|
||||
return *this;
|
||||
}
|
||||
|
||||
/*
|
||||
* Extracts a 32bit variable from the packet
|
||||
*/
|
||||
inline Packet &operator>>(int32_t &var)
|
||||
{
|
||||
memcpy(&var, &buffer[0], sizeof(var));
|
||||
buffer.erase(0, sizeof(var));
|
||||
var = ntohl((uint32_t)var);
|
||||
return *this;
|
||||
}
|
||||
|
||||
/*
|
||||
* Adds a 64bit variable to the packet
|
||||
*/
|
||||
inline Packet &operator<<(int64_t var)
|
||||
{
|
||||
buffer.resize(buffer.size() + sizeof(var));
|
||||
var = htonll((uint64_t)var);
|
||||
memcpy(&buffer[buffer.size() - sizeof(var)], &var, sizeof(var));
|
||||
return *this;
|
||||
}
|
||||
|
||||
/*
|
||||
* Extracts a 64bit variable from the packet
|
||||
*/
|
||||
inline Packet &operator>>(int64_t &var)
|
||||
{
|
||||
memcpy(&var, &buffer[0], sizeof(var));
|
||||
buffer.erase(0, sizeof(var));
|
||||
var = ntohll((uint64_t)var);
|
||||
return *this;
|
||||
}
|
||||
|
||||
/*
|
||||
* Adds a float variable to the packet
|
||||
*/
|
||||
|
||||
@ -103,6 +103,6 @@ namespace fr
|
||||
{
|
||||
//todo: Perhaps allow for these settings to be modified
|
||||
int one = 1;
|
||||
setsockopt(get_socket_descriptor(), SOL_TCP, TCP_NODELAY, &one, sizeof(one));
|
||||
setsockopt(get_socket_descriptor(), SOL_TCP, TCP_NODELAY, (char*)&one, sizeof(one));
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user