38 explicit Session(uint32_t session_id, uid_t uid)
50 const std::map<uint32_t, std::shared_ptr<StaticResource>>& resources) {
57 success &= res.second->ReleaseResource();
70 auto success = it->second->ReleaseResource();
127 const Json::Value& request);
140 std::optional<std::shared_ptr<Session>>
FindSession(uint32_t
id);
Definition: resource_manager.h:36
uid_t GetUID()
Definition: resource_manager.h:43
void Insert(const std::map< uint32_t, std::shared_ptr< StaticResource > > &resources)
Definition: resource_manager.h:49
uint32_t GetSessionID()
Definition: resource_manager.h:42
std::set< std::string > active_interfaces_
Definition: resource_manager.h:81
Session(uint32_t session_id, uid_t uid)
Definition: resource_manager.h:38
const std::set< std::string > & GetActiveInterfaces()
Definition: resource_manager.h:45
bool ReleaseResource(uint32_t resource_id)
Definition: resource_manager.h:64
~Session()
Definition: resource_manager.h:40
std::map< uint32_t, std::shared_ptr< StaticResource > > managed_resources_
Definition: resource_manager.h:82
bool ReleaseAllResources()
Definition: resource_manager.h:54
uint32_t session_id_
Definition: resource_manager.h:79
uid_t uid_
Definition: resource_manager.h:80
Definition: shared_fd.h:129
Definition: alloc_utils.cpp:23
constexpr char kDefaultLocation[]
Definition: utils.h:31
IfaceType
Defines interface types supported by allocd.
Definition: request.h:44
Definition: resource_manager.h:95
uint32_t AllocateSessionID()
Definition: resource_manager.cpp:74
~ResourceManager()
Definition: resource_manager.cpp:47
void SetUseIpv4Bridge(bool ipv4)
Definition: resource_manager.h:136
bool RemoveInterface(const std::string &iface, IfaceType ty)
Definition: resource_manager.cpp:145
uint32_t AllocateResourceID()
Definition: resource_manager.cpp:70
std::map< uint32_t, std::shared_ptr< StaticResource > > pending_add_
Definition: resource_manager.h:147
Json::Value JsonHandleDestroyInterfaceRequest(const Json::Value &request)
Definition: resource_manager.cpp:485
void JsonServer()
Definition: resource_manager.cpp:232
bool ValidateRequestList(const Json::Value &config)
Definition: resource_manager.cpp:187
void SetUseIpv6Bridge(bool ipv6)
Definition: resource_manager.h:138
bool ValidateConfigRequest(const Json::Value &config)
Definition: resource_manager.cpp:210
cuttlefish::SharedFD shutdown_socket_
Definition: resource_manager.h:152
bool CheckCredentials(SharedFD client_socket, uid_t uid)
Definition: resource_manager.cpp:382
std::map< uint32_t, std::shared_ptr< Session > > managed_sessions_
Definition: resource_manager.h:146
void SetUseEbtablesLegacy(bool use_legacy)
Definition: resource_manager.cpp:66
bool use_ebtables_legacy_
Definition: resource_manager.h:151
bool use_ipv6_bridge_
Definition: resource_manager.h:150
std::atomic_uint32_t global_resource_id_
Definition: resource_manager.h:143
void SetSocketLocation(const std::string &sock_name)
Definition: resource_manager.cpp:62
std::optional< std::shared_ptr< Session > > FindSession(uint32_t id)
Definition: resource_manager.cpp:613
Json::Value JsonHandleShutdownRequest(SharedFD client_socket)
Definition: resource_manager.cpp:407
bool AddInterface(const std::string &iface, IfaceType ty, uint32_t id, uid_t uid)
Definition: resource_manager.cpp:78
ResourceManager()=default
Json::Value JsonHandleCreateInterfaceRequest(SharedFD client_socket, const Json::Value &request)
Definition: resource_manager.cpp:419
Json::Value JsonHandleIdRequest()
Definition: resource_manager.cpp:399
bool ValidateRequest(const Json::Value &request)
Definition: resource_manager.cpp:222
std::atomic_uint32_t session_id_
Definition: resource_manager.h:144
std::string location_
Definition: resource_manager.h:148
std::set< std::string > active_interfaces_
Definition: resource_manager.h:145
bool use_ipv4_bridge_
Definition: resource_manager.h:149
Json::Value JsonHandleStopSessionRequest(const Json::Value &request, uid_t uid)
Definition: resource_manager.cpp:557