Replaced char* arguments with void* for raw data

This commit is contained in:
Laurent Gomila 2012-04-03 19:06:32 +02:00
parent 69f387de22
commit 8d0da1d9d6
8 changed files with 37 additions and 37 deletions

View File

@ -126,7 +126,7 @@ private :
if (id == audioData) if (id == audioData)
{ {
// Extract audio samples from the packet, and append it to our samples buffer // Extract audio samples from the packet, and append it to our samples buffer
const sf::Int16* samples = reinterpret_cast<const sf::Int16*>(packet.getData() + 1); const sf::Int16* samples = reinterpret_cast<const sf::Int16*>(static_cast<const char*>(packet.getData()) + 1);
std::size_t sampleCount = (packet.getDataSize() - 1) / sizeof(sf::Int16); std::size_t sampleCount = (packet.getDataSize() - 1) / sizeof(sf::Int16);
// Don't forget that the other thread can access the sample array at any time // Don't forget that the other thread can access the sample array at any time

View File

@ -99,7 +99,7 @@ public :
/// \see getDataSize /// \see getDataSize
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
const char* getData() const; const void* getData() const;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Get the size of the data contained in the packet /// \brief Get the size of the data contained in the packet
@ -250,7 +250,7 @@ private :
/// \see onReceive /// \see onReceive
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
virtual const char* onSend(std::size_t& size); virtual const void* onSend(std::size_t& size);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Called after the packet is received over the network /// \brief Called after the packet is received over the network
@ -269,7 +269,7 @@ private :
/// \see onSend /// \see onSend
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
virtual void onReceive(const char* data, std::size_t size); virtual void onReceive(const void* data, std::size_t size);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// Member data // Member data
@ -377,18 +377,18 @@ private :
/// \code /// \code
/// class ZipPacket : public sf::Packet /// class ZipPacket : public sf::Packet
/// { /// {
/// virtual const char* onSend(std::size_t& size) /// virtual const void* onSend(std::size_t& size)
/// { /// {
/// const char* srcData = getData(); /// const void* srcData = getData();
/// std::size_t srcSize = getDataSize(); /// std::size_t srcSize = getDataSize();
/// ///
/// return MySuperZipFunction(srcData, srcSize, &size); /// return MySuperZipFunction(srcData, srcSize, &size);
/// } /// }
/// ///
/// virtual void onReceive(const char* data, std::size_t size) /// virtual void onReceive(const void* data, std::size_t size)
/// { /// {
/// std::size_t dstSize; /// std::size_t dstSize;
/// const char* dstData = MySuperUnzipFunction(data, size, &dstSize); /// const void* dstData = MySuperUnzipFunction(data, size, &dstSize);
/// ///
/// append(dstData, dstSize); /// append(dstData, dstSize);
/// } /// }

View File

@ -134,7 +134,7 @@ public :
/// \see receive /// \see receive
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Status send(const char* data, std::size_t size); Status send(const void* data, std::size_t size);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Receive raw data from the remote peer /// \brief Receive raw data from the remote peer
@ -152,7 +152,7 @@ public :
/// \see send /// \see send
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Status receive(char* data, std::size_t size, std::size_t& received); Status receive(void* data, std::size_t size, std::size_t& received);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Send a formatted packet of data to the remote peer /// \brief Send a formatted packet of data to the remote peer

View File

@ -120,7 +120,7 @@ public :
/// \see receive /// \see receive
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Status send(const char* data, std::size_t size, const IpAddress& remoteAddress, unsigned short remotePort); Status send(const void* data, std::size_t size, const IpAddress& remoteAddress, unsigned short remotePort);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Receive raw data from a remote peer /// \brief Receive raw data from a remote peer
@ -143,7 +143,7 @@ public :
/// \see send /// \see send
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Status receive(char* data, std::size_t size, std::size_t& received, IpAddress& remoteAddress, unsigned short& remotePort); Status receive(void* data, std::size_t size, std::size_t& received, IpAddress& remoteAddress, unsigned short& remotePort);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Send a formatted packet of data to a remote peer /// \brief Send a formatted packet of data to a remote peer

View File

@ -56,7 +56,7 @@ public :
/// \return The number of bytes actually read /// \return The number of bytes actually read
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
virtual Int64 read(char* data, Int64 size) = 0; virtual Int64 read(void* data, Int64 size) = 0;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Change the current reading position /// \brief Change the current reading position
@ -117,7 +117,7 @@ public :
/// ///
/// bool open(std::string filename); /// bool open(std::string filename);
/// ///
/// Int64 read(char* data, Int64 size); /// Int64 read(void* data, Int64 size);
/// ///
/// Int64 seek(Int64 position); /// Int64 seek(Int64 position);
/// ///

View File

@ -71,7 +71,7 @@ void Packet::clear()
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
const char* Packet::getData() const const void* Packet::getData() const
{ {
return !m_data.empty() ? &m_data[0] : NULL; return !m_data.empty() ? &m_data[0] : NULL;
} }
@ -114,7 +114,7 @@ Packet& Packet::operator >>(Int8& data)
{ {
if (checkSize(sizeof(data))) if (checkSize(sizeof(data)))
{ {
data = *reinterpret_cast<const Int8*>(getData() + m_readPos); data = *reinterpret_cast<const Int8*>(&m_data[m_readPos]);
m_readPos += sizeof(data); m_readPos += sizeof(data);
} }
@ -127,7 +127,7 @@ Packet& Packet::operator >>(Uint8& data)
{ {
if (checkSize(sizeof(data))) if (checkSize(sizeof(data)))
{ {
data = *reinterpret_cast<const Uint8*>(getData() + m_readPos); data = *reinterpret_cast<const Uint8*>(&m_data[m_readPos]);
m_readPos += sizeof(data); m_readPos += sizeof(data);
} }
@ -140,7 +140,7 @@ Packet& Packet::operator >>(Int16& data)
{ {
if (checkSize(sizeof(data))) if (checkSize(sizeof(data)))
{ {
data = ntohs(*reinterpret_cast<const Int16*>(getData() + m_readPos)); data = ntohs(*reinterpret_cast<const Int16*>(&m_data[m_readPos]));
m_readPos += sizeof(data); m_readPos += sizeof(data);
} }
@ -153,7 +153,7 @@ Packet& Packet::operator >>(Uint16& data)
{ {
if (checkSize(sizeof(data))) if (checkSize(sizeof(data)))
{ {
data = ntohs(*reinterpret_cast<const Uint16*>(getData() + m_readPos)); data = ntohs(*reinterpret_cast<const Uint16*>(&m_data[m_readPos]));
m_readPos += sizeof(data); m_readPos += sizeof(data);
} }
@ -166,7 +166,7 @@ Packet& Packet::operator >>(Int32& data)
{ {
if (checkSize(sizeof(data))) if (checkSize(sizeof(data)))
{ {
data = ntohl(*reinterpret_cast<const Int32*>(getData() + m_readPos)); data = ntohl(*reinterpret_cast<const Int32*>(&m_data[m_readPos]));
m_readPos += sizeof(data); m_readPos += sizeof(data);
} }
@ -179,7 +179,7 @@ Packet& Packet::operator >>(Uint32& data)
{ {
if (checkSize(sizeof(data))) if (checkSize(sizeof(data)))
{ {
data = ntohl(*reinterpret_cast<const Uint32*>(getData() + m_readPos)); data = ntohl(*reinterpret_cast<const Uint32*>(&m_data[m_readPos]));
m_readPos += sizeof(data); m_readPos += sizeof(data);
} }
@ -192,7 +192,7 @@ Packet& Packet::operator >>(float& data)
{ {
if (checkSize(sizeof(data))) if (checkSize(sizeof(data)))
{ {
data = *reinterpret_cast<const float*>(getData() + m_readPos); data = *reinterpret_cast<const float*>(&m_data[m_readPos]);
m_readPos += sizeof(data); m_readPos += sizeof(data);
} }
@ -205,7 +205,7 @@ Packet& Packet::operator >>(double& data)
{ {
if (checkSize(sizeof(data))) if (checkSize(sizeof(data)))
{ {
data = *reinterpret_cast<const double*>(getData() + m_readPos); data = *reinterpret_cast<const double*>(&m_data[m_readPos]);
m_readPos += sizeof(data); m_readPos += sizeof(data);
} }
@ -223,7 +223,7 @@ Packet& Packet::operator >>(char* data)
if ((length > 0) && checkSize(length)) if ((length > 0) && checkSize(length))
{ {
// Then extract characters // Then extract characters
std::memcpy(data, getData() + m_readPos, length); std::memcpy(data, &m_data[m_readPos], length);
data[length] = '\0'; data[length] = '\0';
// Update reading position // Update reading position
@ -245,7 +245,7 @@ Packet& Packet::operator >>(std::string& data)
if ((length > 0) && checkSize(length)) if ((length > 0) && checkSize(length))
{ {
// Then extract characters // Then extract characters
data.assign(getData() + m_readPos, length); data.assign(&m_data[m_readPos], length);
// Update reading position // Update reading position
m_readPos += length; m_readPos += length;
@ -496,7 +496,7 @@ bool Packet::checkSize(std::size_t size)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
const char* Packet::onSend(std::size_t& size) const void* Packet::onSend(std::size_t& size)
{ {
size = getDataSize(); size = getDataSize();
return getData(); return getData();
@ -504,7 +504,7 @@ const char* Packet::onSend(std::size_t& size)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void Packet::onReceive(const char* data, std::size_t size) void Packet::onReceive(const void* data, std::size_t size)
{ {
append(data, size); append(data, size);
} }

View File

@ -206,7 +206,7 @@ void TcpSocket::disconnect()
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Socket::Status TcpSocket::send(const char* data, std::size_t size) Socket::Status TcpSocket::send(const void* data, std::size_t size)
{ {
// Check the parameters // Check the parameters
if (!data || (size == 0)) if (!data || (size == 0))
@ -221,7 +221,7 @@ Socket::Status TcpSocket::send(const char* data, std::size_t size)
for (int length = 0; length < sizeToSend; length += sent) for (int length = 0; length < sizeToSend; length += sent)
{ {
// Send a chunk of data // Send a chunk of data
sent = ::send(getHandle(), data + length, sizeToSend - length, 0); sent = ::send(getHandle(), static_cast<const char*>(data) + length, sizeToSend - length, 0);
// Check for errors // Check for errors
if (sent < 0) if (sent < 0)
@ -233,7 +233,7 @@ Socket::Status TcpSocket::send(const char* data, std::size_t size)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Socket::Status TcpSocket::receive(char* data, std::size_t size, std::size_t& received) Socket::Status TcpSocket::receive(void* data, std::size_t size, std::size_t& received)
{ {
// First clear the variables to fill // First clear the variables to fill
received = 0; received = 0;
@ -246,7 +246,7 @@ Socket::Status TcpSocket::receive(char* data, std::size_t size, std::size_t& rec
} }
// Receive a chunk of bytes // Receive a chunk of bytes
int sizeReceived = recv(getHandle(), data, static_cast<int>(size), 0); int sizeReceived = recv(getHandle(), static_cast<char*>(data), static_cast<int>(size), 0);
// Check the number of bytes received // Check the number of bytes received
if (sizeReceived > 0) if (sizeReceived > 0)
@ -274,7 +274,7 @@ Socket::Status TcpSocket::send(Packet& packet)
// Get the data to send from the packet // Get the data to send from the packet
std::size_t size = 0; std::size_t size = 0;
const char* data = packet.onSend(size); const void* data = packet.onSend(size);
// First send the packet size // First send the packet size
Uint32 packetSize = htonl(static_cast<Uint32>(size)); Uint32 packetSize = htonl(static_cast<Uint32>(size));

View File

@ -90,7 +90,7 @@ void UdpSocket::unbind()
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Socket::Status UdpSocket::send(const char* data, std::size_t size, const IpAddress& remoteAddress, unsigned short remotePort) Socket::Status UdpSocket::send(const void* data, std::size_t size, const IpAddress& remoteAddress, unsigned short remotePort)
{ {
// Create the internal socket if it doesn't exist // Create the internal socket if it doesn't exist
create(); create();
@ -107,7 +107,7 @@ Socket::Status UdpSocket::send(const char* data, std::size_t size, const IpAddre
sockaddr_in address = priv::SocketImpl::createAddress(remoteAddress.toInteger(), remotePort); sockaddr_in address = priv::SocketImpl::createAddress(remoteAddress.toInteger(), remotePort);
// Send the data (unlike TCP, all the data is always sent in one call) // Send the data (unlike TCP, all the data is always sent in one call)
int sent = sendto(getHandle(), data, static_cast<int>(size), 0, reinterpret_cast<sockaddr*>(&address), sizeof(address)); int sent = sendto(getHandle(), static_cast<const char*>(data), static_cast<int>(size), 0, reinterpret_cast<sockaddr*>(&address), sizeof(address));
// Check for errors // Check for errors
if (sent < 0) if (sent < 0)
@ -118,7 +118,7 @@ Socket::Status UdpSocket::send(const char* data, std::size_t size, const IpAddre
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Socket::Status UdpSocket::receive(char* data, std::size_t size, std::size_t& received, IpAddress& remoteAddress, unsigned short& remotePort) Socket::Status UdpSocket::receive(void* data, std::size_t size, std::size_t& received, IpAddress& remoteAddress, unsigned short& remotePort)
{ {
// First clear the variables to fill // First clear the variables to fill
received = 0; received = 0;
@ -137,7 +137,7 @@ Socket::Status UdpSocket::receive(char* data, std::size_t size, std::size_t& rec
// Receive a chunk of bytes // Receive a chunk of bytes
priv::SocketImpl::AddrLength addressSize = sizeof(address); priv::SocketImpl::AddrLength addressSize = sizeof(address);
int sizeReceived = recvfrom(getHandle(), data, static_cast<int>(size), 0, reinterpret_cast<sockaddr*>(&address), &addressSize); int sizeReceived = recvfrom(getHandle(), static_cast<char*>(data), static_cast<int>(size), 0, reinterpret_cast<sockaddr*>(&address), &addressSize);
// Check for errors // Check for errors
if (sizeReceived < 0) if (sizeReceived < 0)
@ -165,7 +165,7 @@ Socket::Status UdpSocket::send(Packet& packet, const IpAddress& remoteAddress, u
// Get the data to send from the packet // Get the data to send from the packet
std::size_t size = 0; std::size_t size = 0;
const char* data = packet.onSend(size); const void* data = packet.onSend(size);
// Send it // Send it
return send(data, size, remoteAddress, remotePort); return send(data, size, remoteAddress, remotePort);