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

#include <kernel_log_events_handler.h>

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

Public Member Functions

 KernelLogEventsHandler (SharedFD kernel_log_fd)
 
 ~KernelLogEventsHandler ()
 
int AddSubscriber (std::function< void(const Json::Value &)> subscriber)
 
void Unsubscribe (int subscriber_id)
 

Private Member Functions

void ReadLoop ()
 
void DeliverEvent (const Json::Value &event)
 

Private Attributes

SharedFD kernel_log_fd_
 
SharedFD eventfd_
 
std::atomic< bool > running_
 
std::thread read_thread_
 
std::map< int, std::function< void(const Json::Value &)> > subscribers_
 
int last_subscriber_id_ = 0
 
std::mutex subscribers_mtx_
 
std::list< Json::Value > last_events_
 

Constructor & Destructor Documentation

◆ KernelLogEventsHandler()

cuttlefish::KernelLogEventsHandler::KernelLogEventsHandler ( SharedFD  kernel_log_fd)
explicit

◆ ~KernelLogEventsHandler()

cuttlefish::KernelLogEventsHandler::~KernelLogEventsHandler ( )

Member Function Documentation

◆ AddSubscriber()

int cuttlefish::KernelLogEventsHandler::AddSubscriber ( std::function< void(const Json::Value &)>  subscriber)

◆ DeliverEvent()

void cuttlefish::KernelLogEventsHandler::DeliverEvent ( const Json::Value &  event)
private

◆ ReadLoop()

void cuttlefish::KernelLogEventsHandler::ReadLoop ( )
private

◆ Unsubscribe()

void cuttlefish::KernelLogEventsHandler::Unsubscribe ( int  subscriber_id)

Member Data Documentation

◆ eventfd_

SharedFD cuttlefish::KernelLogEventsHandler::eventfd_
private

◆ kernel_log_fd_

SharedFD cuttlefish::KernelLogEventsHandler::kernel_log_fd_
private

◆ last_events_

std::list<Json::Value> cuttlefish::KernelLogEventsHandler::last_events_
private

◆ last_subscriber_id_

int cuttlefish::KernelLogEventsHandler::last_subscriber_id_ = 0
private

◆ read_thread_

std::thread cuttlefish::KernelLogEventsHandler::read_thread_
private

◆ running_

std::atomic<bool> cuttlefish::KernelLogEventsHandler::running_
private

◆ subscribers_

std::map<int, std::function<void(const Json::Value&)> > cuttlefish::KernelLogEventsHandler::subscribers_
private

◆ subscribers_mtx_

std::mutex cuttlefish::KernelLogEventsHandler::subscribers_mtx_
private

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