2018-09-11 21:30:44 +01:00
|
|
|
#include <dplay8.h>
|
|
|
|
|
|
|
|
#include "AsyncHandleAllocator.hpp"
|
|
|
|
|
|
|
|
AsyncHandleAllocator::AsyncHandleAllocator():
|
|
|
|
next_enum_id(1),
|
|
|
|
next_connect_id(1),
|
2018-09-24 19:39:15 +01:00
|
|
|
next_send_id(1),
|
|
|
|
next_pinfo_id(1) {}
|
2018-09-11 21:30:44 +01:00
|
|
|
|
|
|
|
DPNHANDLE AsyncHandleAllocator::new_enum()
|
|
|
|
{
|
|
|
|
DPNHANDLE handle = next_enum_id++ | TYPE_ENUM;
|
|
|
|
|
|
|
|
next_enum_id &= ~TYPE_MASK;
|
|
|
|
if(next_enum_id == 0)
|
|
|
|
{
|
|
|
|
next_enum_id = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
return handle;
|
|
|
|
}
|
|
|
|
|
|
|
|
DPNHANDLE AsyncHandleAllocator::new_connect()
|
|
|
|
{
|
|
|
|
DPNHANDLE handle = next_connect_id++ | TYPE_ENUM;
|
|
|
|
|
|
|
|
next_connect_id &= ~TYPE_MASK;
|
|
|
|
if(next_connect_id == 0)
|
|
|
|
{
|
|
|
|
next_connect_id = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
return handle;
|
|
|
|
}
|
|
|
|
|
|
|
|
DPNHANDLE AsyncHandleAllocator::new_send()
|
|
|
|
{
|
|
|
|
DPNHANDLE handle = next_send_id++ | TYPE_ENUM;
|
|
|
|
|
|
|
|
next_send_id &= ~TYPE_MASK;
|
|
|
|
if(next_send_id == 0)
|
|
|
|
{
|
|
|
|
next_send_id = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
return handle;
|
|
|
|
}
|
2018-09-24 19:39:15 +01:00
|
|
|
|
|
|
|
DPNHANDLE AsyncHandleAllocator::new_pinfo()
|
|
|
|
{
|
|
|
|
DPNHANDLE handle = next_pinfo_id++ | TYPE_ENUM;
|
|
|
|
|
|
|
|
next_pinfo_id &= ~TYPE_MASK;
|
|
|
|
if(next_pinfo_id == 0)
|
|
|
|
{
|
|
|
|
next_pinfo_id = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
return handle;
|
|
|
|
}
|