mirror of
https://github.com/SFML/SFML.git
synced 2024-11-25 04:41:05 +08:00
Replaced char* arguments with void* for raw data
This commit is contained in:
parent
69f387de22
commit
8d0da1d9d6
@ -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
|
||||||
|
@ -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);
|
||||||
/// }
|
/// }
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
///
|
///
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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));
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user