Added signed types to packet

This commit is contained in:
Cloaked9000 2017-01-03 18:10:26 +00:00
parent 27b559b4ef
commit 1594d4babf
2 changed files with 67 additions and 1 deletions

View File

@ -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
*/

View File

@ -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));
}
}