/* * Copyright 2012 Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: * Paweł Dziepak, pdziepak@quarnos.org */ #ifndef IDMAP_H #define IDMAP_H #include #include #include class IdMap { public: IdMap(); ~IdMap(); uid_t GetUserId(const char* owner); gid_t GetGroupId(const char* ownerGroup); char* GetOwner(uid_t user); char* GetOwnerGroup(gid_t group); inline status_t InitStatus(); private: status_t _Repair(); template void* _GetBuffer(T value, int32 code); template T _GetValue(const char* buffer, int32 code); status_t fInitStatus; mutex fLock; port_id fRequestPort; port_id fReplyPort; }; inline status_t IdMap::InitStatus() { return fInitStatus; } extern IdMap* gIdMapper; extern mutex gIdMapperLock; #endif // IDMAP_H