* Renamed net_datalink_module::send_data() to send_routed_data(), and
send_datagram() to send_data(). * Renamed DatagramSocket::SocketEnqueue() to EnqueueClone(), SocketDequeue() to Dequeue(). * Ordered the methods in ProtocolUtilities.h according to their declaration. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37870 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -113,14 +113,14 @@ public:
|
||||
status_t InitCheck() const;
|
||||
|
||||
status_t Enqueue(net_buffer* buffer);
|
||||
status_t EnqueueClone(net_buffer* buffer);
|
||||
|
||||
status_t Dequeue(uint32 flags, net_buffer** _buffer);
|
||||
net_buffer* Dequeue(bool clone);
|
||||
status_t BlockingDequeue(bool peek, bigtime_t timeout,
|
||||
net_buffer** _buffer);
|
||||
void Clear();
|
||||
|
||||
status_t SocketEnqueue(net_buffer* buffer);
|
||||
status_t SocketDequeue(uint32 flags,
|
||||
net_buffer** _buffer);
|
||||
void Clear();
|
||||
|
||||
bool IsEmpty() const { return fBuffers.IsEmpty(); }
|
||||
ssize_t AvailableData() const;
|
||||
@@ -193,22 +193,7 @@ DECL_DATAGRAM_SOCKET(inline status_t)::Enqueue(net_buffer* buffer)
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline status_t)::_Enqueue(net_buffer* buffer)
|
||||
{
|
||||
if (fSocket->receive.buffer_size > 0
|
||||
&& (fCurrentBytes + buffer->size) > fSocket->receive.buffer_size)
|
||||
return ENOBUFS;
|
||||
|
||||
fBuffers.Add(buffer);
|
||||
fCurrentBytes += buffer->size;
|
||||
|
||||
_NotifyOneReader(true);
|
||||
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline status_t)::SocketEnqueue(net_buffer* _buffer)
|
||||
DECL_DATAGRAM_SOCKET(inline status_t)::EnqueueClone(net_buffer* _buffer)
|
||||
{
|
||||
AutoLocker _(fLock);
|
||||
|
||||
@@ -224,6 +209,14 @@ DECL_DATAGRAM_SOCKET(inline status_t)::SocketEnqueue(net_buffer* _buffer)
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline status_t)::Dequeue(uint32 flags,
|
||||
net_buffer** _buffer)
|
||||
{
|
||||
return BlockingDequeue((flags & MSG_PEEK) != 0, _SocketTimeout(flags),
|
||||
_buffer);
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline net_buffer*)::Dequeue(bool peek)
|
||||
{
|
||||
AutoLocker _(fLock);
|
||||
@@ -231,21 +224,6 @@ DECL_DATAGRAM_SOCKET(inline net_buffer*)::Dequeue(bool peek)
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline net_buffer*)::_Dequeue(bool peek)
|
||||
{
|
||||
if (fBuffers.IsEmpty())
|
||||
return NULL;
|
||||
|
||||
if (peek)
|
||||
return ModuleBundle::Buffer()->clone(fBuffers.Head(), false);
|
||||
|
||||
net_buffer* buffer = fBuffers.RemoveHead();
|
||||
fCurrentBytes -= buffer->size;
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline status_t)::BlockingDequeue(bool peek,
|
||||
bigtime_t timeout, net_buffer** _buffer)
|
||||
{
|
||||
@@ -281,14 +259,6 @@ DECL_DATAGRAM_SOCKET(inline status_t)::BlockingDequeue(bool peek,
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline status_t)::SocketDequeue(uint32 flags,
|
||||
net_buffer** _buffer)
|
||||
{
|
||||
return BlockingDequeue((flags & MSG_PEEK) != 0, _SocketTimeout(flags),
|
||||
_buffer);
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline void)::Clear()
|
||||
{
|
||||
AutoLocker _(fLock);
|
||||
@@ -296,15 +266,6 @@ DECL_DATAGRAM_SOCKET(inline void)::Clear()
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline void)::_Clear()
|
||||
{
|
||||
BufferList::Iterator it = fBuffers.GetIterator();
|
||||
while (it.HasNext())
|
||||
ModuleBundle::Buffer()->free(it.Next());
|
||||
fCurrentBytes = 0;
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline ssize_t)::AvailableData() const
|
||||
{
|
||||
AutoLocker _(fLock);
|
||||
@@ -316,6 +277,19 @@ DECL_DATAGRAM_SOCKET(inline ssize_t)::AvailableData() const
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline void)::WakeAll()
|
||||
{
|
||||
release_sem_etc(fNotify, 0, B_RELEASE_ALL);
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline void)::NotifyOne()
|
||||
{
|
||||
release_sem_etc(fNotify, 1, B_RELEASE_IF_WAITING_ONLY
|
||||
| B_DO_NOT_RESCHEDULE);
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline status_t)::SocketStatus(bool peek) const
|
||||
{
|
||||
if (peek)
|
||||
@@ -328,6 +302,45 @@ DECL_DATAGRAM_SOCKET(inline status_t)::SocketStatus(bool peek) const
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline status_t)::_Enqueue(net_buffer* buffer)
|
||||
{
|
||||
if (fSocket->receive.buffer_size > 0
|
||||
&& (fCurrentBytes + buffer->size) > fSocket->receive.buffer_size)
|
||||
return ENOBUFS;
|
||||
|
||||
fBuffers.Add(buffer);
|
||||
fCurrentBytes += buffer->size;
|
||||
|
||||
_NotifyOneReader(true);
|
||||
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline net_buffer*)::_Dequeue(bool peek)
|
||||
{
|
||||
if (fBuffers.IsEmpty())
|
||||
return NULL;
|
||||
|
||||
if (peek)
|
||||
return ModuleBundle::Buffer()->clone(fBuffers.Head(), false);
|
||||
|
||||
net_buffer* buffer = fBuffers.RemoveHead();
|
||||
fCurrentBytes -= buffer->size;
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline void)::_Clear()
|
||||
{
|
||||
BufferList::Iterator it = fBuffers.GetIterator();
|
||||
while (it.HasNext())
|
||||
ModuleBundle::Buffer()->free(it.Next());
|
||||
fCurrentBytes = 0;
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline status_t)::_Wait(bigtime_t timeout)
|
||||
{
|
||||
LockingBase::Unlock(&fLock);
|
||||
@@ -339,19 +352,6 @@ DECL_DATAGRAM_SOCKET(inline status_t)::_Wait(bigtime_t timeout)
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline void)::WakeAll()
|
||||
{
|
||||
release_sem_etc(fNotify, 0, B_RELEASE_ALL);
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline void)::NotifyOne()
|
||||
{
|
||||
release_sem_etc(fNotify, 1, B_RELEASE_IF_WAITING_ONLY
|
||||
| B_DO_NOT_RESCHEDULE);
|
||||
}
|
||||
|
||||
|
||||
DECL_DATAGRAM_SOCKET(inline void)::_NotifyOneReader(bool notifySocket)
|
||||
{
|
||||
release_sem_etc(fNotify, 1, B_RELEASE_IF_WAITING_ONLY
|
||||
|
||||
@@ -72,8 +72,8 @@ struct net_datalink_module_info {
|
||||
|
||||
status_t (*control)(net_domain* domain, int32 option, void* value,
|
||||
size_t* _length);
|
||||
status_t (*send_data)(net_route* route, net_buffer* buffer);
|
||||
status_t (*send_datagram)(struct net_protocol* protocol,
|
||||
status_t (*send_routed_data)(net_route* route, net_buffer* buffer);
|
||||
status_t (*send_data)(struct net_protocol* protocol,
|
||||
net_domain* domain, net_buffer* buffer);
|
||||
|
||||
bool (*is_local_address)(net_domain* domain,
|
||||
|
||||
Reference in New Issue
Block a user