Android-cuttlefish cvd tool
Public Member Functions | Private Member Functions | Private Attributes | List of all members
cuttlefish::ResourceManager Struct Reference

#include <resource_manager.h>

Collaboration diagram for cuttlefish::ResourceManager:
Collaboration graph
[legend]

Public Member Functions

 ResourceManager ()=default
 
 ~ResourceManager ()
 
void SetSocketLocation (const std::string &sock_name)
 
void SetUseEbtablesLegacy (bool use_legacy)
 
void JsonServer ()
 

Private Member Functions

uint32_t AllocateResourceID ()
 
uint32_t AllocateSessionID ()
 
bool AddInterface (const std::string &iface, IfaceType ty, uint32_t id, uid_t uid)
 
bool RemoveInterface (const std::string &iface, IfaceType ty)
 
bool ValidateRequest (const Json::Value &request)
 
bool ValidateRequestList (const Json::Value &config)
 
bool ValidateConfigRequest (const Json::Value &config)
 
Json::Value JsonHandleIdRequest ()
 
Json::Value JsonHandleShutdownRequest (SharedFD client_socket)
 
Json::Value JsonHandleCreateInterfaceRequest (SharedFD client_socket, const Json::Value &request)
 
Json::Value JsonHandleDestroyInterfaceRequest (const Json::Value &request)
 
Json::Value JsonHandleStopSessionRequest (const Json::Value &request, uid_t uid)
 
bool CheckCredentials (SharedFD client_socket, uid_t uid)
 
void SetUseIpv4Bridge (bool ipv4)
 
void SetUseIpv6Bridge (bool ipv6)
 
std::optional< std::shared_ptr< Session > > FindSession (uint32_t id)
 

Private Attributes

std::atomic_uint32_t global_resource_id_ = 0
 
std::atomic_uint32_t session_id_ = 0
 
std::set< std::string > active_interfaces_
 
std::map< uint32_t, std::shared_ptr< Session > > managed_sessions_
 
std::map< uint32_t, std::shared_ptr< StaticResource > > pending_add_
 
std::string location_ = kDefaultLocation
 
bool use_ipv4_bridge_ = true
 
bool use_ipv6_bridge_ = true
 
bool use_ebtables_legacy_ = false
 
cuttlefish::SharedFD shutdown_socket_
 

Constructor & Destructor Documentation

◆ ResourceManager()

cuttlefish::ResourceManager::ResourceManager ( )
default

◆ ~ResourceManager()

cuttlefish::ResourceManager::~ResourceManager ( )

Member Function Documentation

◆ AddInterface()

bool cuttlefish::ResourceManager::AddInterface ( const std::string &  iface,
IfaceType  ty,
uint32_t  id,
uid_t  uid 
)
private

◆ AllocateResourceID()

uint32_t cuttlefish::ResourceManager::AllocateResourceID ( )
private

◆ AllocateSessionID()

uint32_t cuttlefish::ResourceManager::AllocateSessionID ( )
private

◆ CheckCredentials()

bool cuttlefish::ResourceManager::CheckCredentials ( SharedFD  client_socket,
uid_t  uid 
)
private

◆ FindSession()

std::optional< std::shared_ptr< Session > > cuttlefish::ResourceManager::FindSession ( uint32_t  id)
private

◆ JsonHandleCreateInterfaceRequest()

Json::Value cuttlefish::ResourceManager::JsonHandleCreateInterfaceRequest ( SharedFD  client_socket,
const Json::Value &  request 
)
private

◆ JsonHandleDestroyInterfaceRequest()

Json::Value cuttlefish::ResourceManager::JsonHandleDestroyInterfaceRequest ( const Json::Value &  request)
private

◆ JsonHandleIdRequest()

Json::Value cuttlefish::ResourceManager::JsonHandleIdRequest ( )
private

◆ JsonHandleShutdownRequest()

Json::Value cuttlefish::ResourceManager::JsonHandleShutdownRequest ( SharedFD  client_socket)
private

◆ JsonHandleStopSessionRequest()

Json::Value cuttlefish::ResourceManager::JsonHandleStopSessionRequest ( const Json::Value &  request,
uid_t  uid 
)
private

◆ JsonServer()

void cuttlefish::ResourceManager::JsonServer ( )

◆ RemoveInterface()

bool cuttlefish::ResourceManager::RemoveInterface ( const std::string &  iface,
IfaceType  ty 
)
private

◆ SetSocketLocation()

void cuttlefish::ResourceManager::SetSocketLocation ( const std::string &  sock_name)

◆ SetUseEbtablesLegacy()

void cuttlefish::ResourceManager::SetUseEbtablesLegacy ( bool  use_legacy)

◆ SetUseIpv4Bridge()

void cuttlefish::ResourceManager::SetUseIpv4Bridge ( bool  ipv4)
inlineprivate

◆ SetUseIpv6Bridge()

void cuttlefish::ResourceManager::SetUseIpv6Bridge ( bool  ipv6)
inlineprivate

◆ ValidateConfigRequest()

bool cuttlefish::ResourceManager::ValidateConfigRequest ( const Json::Value &  config)
private

◆ ValidateRequest()

bool cuttlefish::ResourceManager::ValidateRequest ( const Json::Value &  request)
private

◆ ValidateRequestList()

bool cuttlefish::ResourceManager::ValidateRequestList ( const Json::Value &  config)
private

Member Data Documentation

◆ active_interfaces_

std::set<std::string> cuttlefish::ResourceManager::active_interfaces_
private

◆ global_resource_id_

std::atomic_uint32_t cuttlefish::ResourceManager::global_resource_id_ = 0
private

◆ location_

std::string cuttlefish::ResourceManager::location_ = kDefaultLocation
private

◆ managed_sessions_

std::map<uint32_t, std::shared_ptr<Session> > cuttlefish::ResourceManager::managed_sessions_
private

◆ pending_add_

std::map<uint32_t, std::shared_ptr<StaticResource> > cuttlefish::ResourceManager::pending_add_
private

◆ session_id_

std::atomic_uint32_t cuttlefish::ResourceManager::session_id_ = 0
private

◆ shutdown_socket_

cuttlefish::SharedFD cuttlefish::ResourceManager::shutdown_socket_
private

◆ use_ebtables_legacy_

bool cuttlefish::ResourceManager::use_ebtables_legacy_ = false
private

◆ use_ipv4_bridge_

bool cuttlefish::ResourceManager::use_ipv4_bridge_ = true
private

◆ use_ipv6_bridge_

bool cuttlefish::ResourceManager::use_ipv6_bridge_ = true
private

The documentation for this struct was generated from the following files: