Changeset - r25375:b2134f0f8453
[Not reviewed]
master
0 2 0
rubidium42 - 3 years ago 2021-04-27 19:25:52
rubidium@openttd.org
Add: [Network] Writing std::string to a packet
2 files changed with 5 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/network/core/packet.cpp
Show inline comments
 
@@ -178,12 +178,11 @@ void Packet::Send_uint64(uint64 data)
 
 * the string + '\0'. No size-byte or something.
 
 * @param data The string to send
 
 */
 
void Packet::Send_string(const char *data)
 
void Packet::Send_string(const std::string_view data)
 
{
 
	assert(data != nullptr);
 
	/* Length of the string + 1 for the '\0' termination. */
 
	assert(this->CanWriteToPacket(strlen(data) + 1));
 
	while (this->buffer.emplace_back(*data++) != '\0') {}
 
	assert(this->CanWriteToPacket(data.size() + 1));
 
	this->buffer.insert(this->buffer.end(), data.begin(), data.end());
 
	this->buffer.emplace_back('\0');
 
}
 

	
 
/**
src/network/core/packet.h
Show inline comments
 
@@ -71,7 +71,7 @@ public:
 
	void   Send_uint16(uint16 data);
 
	void   Send_uint32(uint32 data);
 
	void   Send_uint64(uint64 data);
 
	void   Send_string(const char *data);
 
	void   Send_string(const std::string_view data);
 
	size_t Send_bytes (const byte *begin, const byte *end);
 

	
 
	/* Reading/receiving of packets */
0 comments (0 inline, 0 general)