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

#include <netlink_request.h>

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

Public Member Functions

 NetlinkRequest (int32_t type, int32_t flags)
 
 NetlinkRequest (NetlinkRequest &&other)
 
 ~NetlinkRequest ()=default
 
void AddString (uint16_t type, const std::string &value)
 
template<typename T >
void AddInt (uint16_t type, T value)
 
void AddIfInfo (int32_t if_index, bool is_operational)
 
void AddAddrInfo (int32_t if_index, int prefix_len=24)
 
void AddMacAddress (const std::array< unsigned char, 6 > &address)
 
void AddInAddr (uint16_t type, in_addr_t *addr)
 
void PushList (uint16_t type)
 
void PopList ()
 
void * RequestData () const
 
size_t RequestLength () const
 
uint32_t SeqNo () const
 
void * AppendRaw (const void *data, size_t length)
 
void * ReserveRaw (size_t length)
 
template<typename T >
T * Append (const T &data)
 
template<typename T >
T * Reserve ()
 

Private Member Functions

nlattrAppendTag (uint16_t type, const void *data, uint16_t length)
 
 NetlinkRequest (const NetlinkRequest &)=delete
 
NetlinkRequestoperator= (const NetlinkRequest &)=delete
 

Private Attributes

std::vector< std::pair< nlattr *, int32_t > > lists_
 
std::vector< char > request_
 
nlmsghdrheader_
 

Constructor & Destructor Documentation

◆ NetlinkRequest() [1/3]

cuttlefish::NetlinkRequest::NetlinkRequest ( int32_t  type,
int32_t  flags 
)

◆ NetlinkRequest() [2/3]

cuttlefish::NetlinkRequest::NetlinkRequest ( NetlinkRequest &&  other)

◆ ~NetlinkRequest()

cuttlefish::NetlinkRequest::~NetlinkRequest ( )
default

◆ NetlinkRequest() [3/3]

cuttlefish::NetlinkRequest::NetlinkRequest ( const NetlinkRequest )
privatedelete

Member Function Documentation

◆ AddAddrInfo()

void cuttlefish::NetlinkRequest::AddAddrInfo ( int32_t  if_index,
int  prefix_len = 24 
)

◆ AddIfInfo()

void cuttlefish::NetlinkRequest::AddIfInfo ( int32_t  if_index,
bool  is_operational 
)

◆ AddInAddr()

void cuttlefish::NetlinkRequest::AddInAddr ( uint16_t  type,
in_addr_t *  addr 
)

◆ AddInt()

template<typename T >
void cuttlefish::NetlinkRequest::AddInt ( uint16_t  type,
value 
)
inline

◆ AddMacAddress()

void cuttlefish::NetlinkRequest::AddMacAddress ( const std::array< unsigned char, 6 > &  address)

◆ AddString()

void cuttlefish::NetlinkRequest::AddString ( uint16_t  type,
const std::string &  value 
)

◆ Append()

template<typename T >
T * cuttlefish::NetlinkRequest::Append ( const T &  data)
inline

◆ AppendRaw()

void * cuttlefish::NetlinkRequest::AppendRaw ( const void *  data,
size_t  length 
)

◆ AppendTag()

nlattr * cuttlefish::NetlinkRequest::AppendTag ( uint16_t  type,
const void *  data,
uint16_t  length 
)
private

◆ operator=()

NetlinkRequest & cuttlefish::NetlinkRequest::operator= ( const NetlinkRequest )
privatedelete

◆ PopList()

void cuttlefish::NetlinkRequest::PopList ( )

◆ PushList()

void cuttlefish::NetlinkRequest::PushList ( uint16_t  type)

◆ RequestData()

void * cuttlefish::NetlinkRequest::RequestData ( ) const

◆ RequestLength()

size_t cuttlefish::NetlinkRequest::RequestLength ( ) const

◆ Reserve()

template<typename T >
T * cuttlefish::NetlinkRequest::Reserve ( )
inline

◆ ReserveRaw()

void * cuttlefish::NetlinkRequest::ReserveRaw ( size_t  length)

◆ SeqNo()

uint32_t cuttlefish::NetlinkRequest::SeqNo ( ) const

Member Data Documentation

◆ header_

nlmsghdr* cuttlefish::NetlinkRequest::header_
private

◆ lists_

std::vector<std::pair<nlattr*, int32_t> > cuttlefish::NetlinkRequest::lists_
private

◆ request_

std::vector<char> cuttlefish::NetlinkRequest::request_
private

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