Cleanup. Added BTokenSpace::GetList(), though it's probably not needed after all
(we can still remove it later if needed). Added B_SERVER_TOKEN type. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13451 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
*
|
||||
* Authors:
|
||||
* Erik Jaesler ([email protected])
|
||||
* Axel Dörfler, [email protected]
|
||||
*/
|
||||
|
||||
|
||||
@@ -35,7 +36,7 @@ int32
|
||||
BTokenSpace::NewToken(int16 type, void* object,
|
||||
new_token_callback callback)
|
||||
{
|
||||
BAutolock Lock(fLocker);
|
||||
BAutolock locker(this);
|
||||
|
||||
TTokenInfo tokenInfo = { type, object };
|
||||
int32 token;
|
||||
@@ -60,7 +61,7 @@ BTokenSpace::NewToken(int16 type, void* object,
|
||||
bool
|
||||
BTokenSpace::RemoveToken(int32 token, remove_token_callback callback)
|
||||
{
|
||||
BAutolock Lock(fLocker);
|
||||
BAutolock locker(this);
|
||||
|
||||
TTokenMap::iterator iter = fTokenMap.find(token);
|
||||
if (iter == fTokenMap.end())
|
||||
@@ -83,7 +84,7 @@ BTokenSpace::RemoveToken(int32 token, remove_token_callback callback)
|
||||
bool
|
||||
BTokenSpace::CheckToken(int32 token, int16 type) const
|
||||
{
|
||||
BAutolock Locker(const_cast<BLocker&>(fLocker));
|
||||
BAutolock locker(const_cast<BTokenSpace&>(*this));
|
||||
|
||||
TTokenMap::const_iterator iter = fTokenMap.find(token);
|
||||
if (iter != fTokenMap.end() && iter->second.type == type)
|
||||
@@ -97,7 +98,7 @@ status_t
|
||||
BTokenSpace::GetToken(int32 token, int16 type, void** object,
|
||||
get_token_callback callback) const
|
||||
{
|
||||
BAutolock Locker(const_cast<BLocker&>(fLocker));
|
||||
BAutolock locker(const_cast<BTokenSpace&>(*this));
|
||||
|
||||
TTokenMap::const_iterator iter = fTokenMap.find(token);
|
||||
if (iter == fTokenMap.end() || iter->second.type != type) {
|
||||
@@ -115,5 +116,24 @@ BTokenSpace::GetToken(int32 token, int16 type, void** object,
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
} // namespace BPrivate
|
||||
|
||||
status_t
|
||||
BTokenSpace::GetList(int32*& tokens, int32& count) const
|
||||
{
|
||||
BAutolock locker(const_cast<BTokenSpace&>(*this));
|
||||
|
||||
count = fTokenMap.size();
|
||||
tokens = (int32*)malloc(count * sizeof(int32));
|
||||
if (tokens == NULL)
|
||||
return B_NO_MEMORY;
|
||||
|
||||
TTokenMap::const_iterator iterator = fTokenMap.begin();
|
||||
for (int32 i = 0; iterator != fTokenMap.end(); i++) {
|
||||
tokens[i] = iterator->first;
|
||||
iterator++;
|
||||
}
|
||||
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
} // namespace BPrivate
|
||||
|
||||
Reference in New Issue
Block a user