Android-cuttlefish cvd tool
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
android::base Namespace Reference

Namespaces

namespace  impl
 
namespace  internal
 
namespace  log_detail
 
namespace  utf8
 

Classes

class  bad_expected_access
 
struct  borrowed_fd
 
struct  DefaultCloser
 
struct  Errno
 
class  ErrnoRestorer
 
class  Error
 
class  expected
 
class  expected< void, E >
 
class  LogdLogger
 
class  LogMessage
 
class  LogMessageData
 
struct  LogNullGuard
 
struct  LogNullGuard< char * >
 
struct  LogNullGuard< const char * >
 
struct  LogNullGuard< std::nullptr_t >
 
class  MappedFile
 
class  NoDestructor
 
struct  OkOrFail
 
struct  OkOrFail< Result< T, E, include_message > >
 
struct  ResultError
 
struct  ResultError< E, false >
 
class  ScopedLockAssertion
 
class  ScopedLogSeverity
 
class  ScopeGuard
 
struct  unexpect_t
 
class  unexpected
 
class  unique_fd_impl
 

Typedefs

using LogFunction = std::function< void(LogId, LogSeverity, const char *, const char *, unsigned int, const char *)>
 
using AbortFunction = std::function< void(const char *)>
 
template<typename T , typename E = Errno, bool include_message = true>
using Result = android::base::expected< T, ResultError< E, include_message > >
 
using unique_fd = unique_fd_impl< DefaultCloser >
 

Enumerations

enum  LogSeverity {
  VERBOSE , DEBUG , INFO , WARNING ,
  ERROR , FATAL_WITHOUT_ABORT , FATAL
}
 
enum  LogId {
  DEFAULT , MAIN , SYSTEM , RADIO ,
  CRASH
}
 
enum class  ParseBoolResult { kError , kFalse , kTrue }
 

Functions

ssize_t SendFileDescriptorVector (borrowed_fd sockfd, const void *data, size_t len, const std::vector< int > &fds)
 
ssize_t ReceiveFileDescriptorVector (borrowed_fd sockfd, void *data, size_t len, size_t max_fds, std::vector< unique_fd > *fds)
 
std::string SystemErrorCodeToString (int error_code)
 
bool ReadFdToString (borrowed_fd fd, std::string *content)
 
bool ReadFileToString (const std::string &path, std::string *content, bool follow_symlinks)
 
bool WriteStringToFd (std::string_view content, borrowed_fd fd)
 
static bool CleanUpAfterFailedWrite (const std::string &path)
 
bool WriteStringToFile (const std::string &content, const std::string &path, mode_t mode, uid_t owner, gid_t group, bool follow_symlinks)
 
bool WriteStringToFile (const std::string &content, const std::string &path, bool follow_symlinks)
 
bool ReadFully (borrowed_fd fd, void *data, size_t byte_count)
 
bool ReadFullyAtOffset (borrowed_fd fd, void *data, size_t byte_count, off64_t offset)
 
bool WriteFullyAtOffset (borrowed_fd fd, const void *data, size_t byte_count, off64_t offset)
 
bool WriteFully (borrowed_fd fd, const void *data, size_t byte_count)
 
bool RemoveFileIfExists (const std::string &path, std::string *err)
 
bool Readlink (const std::string &path, std::string *result)
 
bool Realpath (const std::string &path, std::string *result)
 
std::string GetExecutablePath ()
 
std::string GetExecutableDirectory ()
 
static int _basename_r (const char *path, size_t path_size, char *buffer, size_t buffer_size)
 
std::string Basename (std::string_view path)
 
static int _dirname_r (const char *path, size_t path_size, char *buffer, size_t buffer_size)
 
std::string Dirname (std::string_view path)
 
std::string HexString (const void *bytes, size_t len)
 
static uint8_t HexNybbleToValue (char c)
 
bool HexToBytes (const std::string &hex, std::vector< uint8_t > *bytes)
 
ssize_t ReceiveFileDescriptorVector (borrowed_fd sock, void *data, size_t len, size_t max_fds, std::vector< android::base::unique_fd > *fds)
 
template<typename... Args>
ssize_t SendFileDescriptors (borrowed_fd sock, const void *data, size_t len, Args &&... sent_fds)
 
template<typename... Args>
ssize_t ReceiveFileDescriptors (borrowed_fd sock, void *data, size_t len, Args &&... received_fds)
 
template<typename CollectionType , typename T >
void Append (CollectionType &collection, T &&arg)
 
template<typename CollectionType , typename T , typename... Args>
void Append (CollectionType &collection, T &&arg, Args &&... args)
 
template<typename T , typename Arg , typename... Args>
void AssertType (Arg &&)
 
template<typename T , typename Arg , typename... Args>
void AssertType (Arg &&, Args &&... args)
 
template<class E >
 unexpected (E) -> unexpected< E >
 
template<class T1 , class E1 , class T2 , class E2 >
constexpr bool operator== (const expected< T1, E1 > &x, const expected< T2, E2 > &y)
 
template<class T1 , class E1 , class T2 , class E2 >
constexpr bool operator!= (const expected< T1, E1 > &x, const expected< T2, E2 > &y)
 
template<class T1 , class E1 , class E2 >
constexpr bool operator== (const expected< T1, E1 > &x, const unexpected< E2 > &y)
 
template<class T1 , class E1 , class E2 >
constexpr bool operator== (const unexpected< E2 > &x, const expected< T1, E1 > &y)
 
template<class T1 , class E1 , class E2 >
constexpr bool operator!= (const expected< T1, E1 > &x, const unexpected< E2 > &y)
 
template<class T1 , class E1 , class E2 >
constexpr bool operator!= (const unexpected< E2 > &x, const expected< T1, E1 > &y)
 
template<class T1 , class E1 >
void swap (expected< T1, E1 > &x, expected< T1, E1 > &y) noexcept(noexcept(x.swap(y)))
 
template<class E1 , class E2 >
constexpr bool operator== (const expected< void, E1 > &x, const expected< void, E2 > &y)
 
template<class T1 , class E1 , class E2 >
constexpr bool operator== (const expected< T1, E1 > &x, const expected< void, E2 > &y)
 
template<class E1 , class T2 , class E2 >
constexpr bool operator== (const expected< void, E1 > &x, const expected< T2, E2 > &y)
 
template<class E1 , class E2 >
constexpr bool operator== (const unexpected< E1 > &e1, const unexpected< E2 > &e2)
 
template<class E1 , class E2 >
constexpr bool operator!= (const unexpected< E1 > &e1, const unexpected< E2 > &e2)
 
template<class E1 >
void swap (unexpected< E1 > &x, unexpected< E1 > &y) noexcept(noexcept(x.swap(y)))
 
void KernelLogger (LogId log_buffer_id, LogSeverity severity, const char *tag, const char *file, unsigned int line, const char *message)
 
void StderrLogger (LogId log_buffer_id, LogSeverity severity, const char *tag, const char *file, unsigned int line, const char *message)
 
void StdioLogger (LogId log_buffer_id, LogSeverity severity, const char *tag, const char *file, unsigned int line, const char *message)
 
void DefaultAborter (const char *abort_message)
 
void SetDefaultTag (const std::string &tag)
 
void InitLogging (char *argv[], LogFunction &&logger=INIT_LOGGING_DEFAULT_LOGGER, AbortFunction &&aborter=DefaultAborter)
 
LogFunction SetLogger (LogFunction &&logger)
 
AbortFunction SetAborter (AbortFunction &&aborter)
 
template<typename LHS , typename RHS >
constexpr auto MakeEagerEvaluator (LHS &&lhs, RHS &&rhs)
 
LogSeverity GetMinimumLogSeverity ()
 
LogSeverity SetMinimumLogSeverity (LogSeverity new_severity)
 
bool ShouldLog (LogSeverity severity, const char *tag)
 
template<typename T >
static T get_unaligned (const void *address)
 
template<typename T >
static void put_unaligned (void *address, T v)
 
ParseBoolResult ParseBool (std::string_view s)
 
template<typename T , T(*)(const char *str, char **endptr) strtox>
static bool ParseFloatingPoint (const char *s, T *out, T min, T max)
 
static bool ParseDouble (const char *s, double *out, double min=std::numeric_limits< double >::lowest(), double max=std::numeric_limits< double >::max())
 
static bool ParseDouble (const std::string &s, double *out, double min=std::numeric_limits< double >::lowest(), double max=std::numeric_limits< double >::max())
 
static bool ParseFloat (const char *s, float *out, float min=std::numeric_limits< float >::lowest(), float max=std::numeric_limits< float >::max())
 
static bool ParseFloat (const std::string &s, float *out, float min=std::numeric_limits< float >::lowest(), float max=std::numeric_limits< float >::max())
 
template<typename T >
bool ParseUint (const char *s, T *out, T max=std::numeric_limits< T >::max(), bool allow_suffixes=false)
 
template<typename T >
bool ParseUint (const std::string &s, T *out, T max=std::numeric_limits< T >::max(), bool allow_suffixes=false)
 
template<typename T >
bool ParseByteCount (const char *s, T *out, T max=std::numeric_limits< T >::max())
 
template<typename T >
bool ParseByteCount (const std::string &s, T *out, T max=std::numeric_limits< T >::max())
 
template<typename T >
bool ParseInt (const char *s, T *out, T min=std::numeric_limits< T >::min(), T max=std::numeric_limits< T >::max())
 
template<typename T >
bool ParseInt (const std::string &s, T *out, T min=std::numeric_limits< T >::min(), T max=std::numeric_limits< T >::max())
 
bool ParseNetAddress (const std::string &address, std::string *host, int *port, std::string *canonical_address, std::string *error)
 
std::string GetProperty (const std::string &key, const std::string &default_value)
 
bool GetBoolProperty (const std::string &key, bool default_value)
 
template<typename T >
GetIntProperty (const std::string &key, T default_value, T min=std::numeric_limits< T >::min(), T max=std::numeric_limits< T >::max())
 
template<typename T >
GetUintProperty (const std::string &key, T default_value, T max=std::numeric_limits< T >::max())
 
bool SetProperty (const std::string &key, const std::string &value)
 
static int HwTimeoutMultiplier ()
 
template<typename E >
bool operator== (const ResultError< E > &lhs, const ResultError< E > &rhs)
 
template<typename E >
bool operator!= (const ResultError< E > &lhs, const ResultError< E > &rhs)
 
template<typename E >
std::ostream & operator<< (std::ostream &os, const ResultError< E > &t)
 
Error< ErrnoErrnoError ()
 
template<typename E >
ErrorCode (E code)
 
template<typename T , typename E , typename... Args>
ErrorCode (E code, T &&t, const Args &... args)
 
template<typename T , typename... Args>
Error< ErrnoErrorfImpl (const T &&fmt, const Args &... args)
 
template<typename T , typename... Args>
Error< ErrnoErrnoErrorfImpl (const T &&fmt, const Args &... args)
 
template<typename F >
ScopeGuard< F > make_scope_guard (F &&f)
 
template<typename F >
 ScopeGuard (F &&t) -> ScopeGuard< F >
 
std::string StringPrintf (const char *fmt,...) __attribute__((__format__(__printf__
 
std::string void StringAppendF (std::string *dst, const char *fmt,...) __attribute__((__format__(__printf__
 
std::string void void StringAppendV (std::string *dst, const char *format, va_list ap) __attribute__((__format__(__printf__
 
std::vector< std::string > Split (const std::string &s, const std::string &delimiters)
 
std::vector< std::string > Tokenize (const std::string &s, const std::string &delimiters)
 
template<typename T >
std::string Trim (T &&t)
 
template std::string Trim (const char *&)
 
template std::string Trim (const char *&&)
 
template std::string Trim (const std::string &)
 
template std::string Trim (const std::string &&)
 
template std::string Trim (std::string_view &)
 
template std::string Trim (std::string_view &&)
 
template<typename ContainerT , typename SeparatorT >
std::string Join (const ContainerT &things, SeparatorT separator)
 
template std::string Join (const std::vector< std::string > &, char)
 
template std::string Join (const std::vector< const char * > &, char)
 
template std::string Join (const std::vector< std::string > &, const std::string &)
 
template std::string Join (const std::vector< const char * > &, const std::string &)
 
bool StartsWith (std::string_view s, std::string_view prefix)
 
bool StartsWith (std::string_view s, char prefix)
 
bool StartsWithIgnoreCase (std::string_view s, std::string_view prefix)
 
bool EndsWith (std::string_view s, std::string_view suffix)
 
bool EndsWith (std::string_view s, char suffix)
 
bool EndsWithIgnoreCase (std::string_view s, std::string_view suffix)
 
bool EqualsIgnoreCase (std::string_view lhs, std::string_view rhs)
 
bool ConsumePrefix (std::string_view *s, std::string_view prefix)
 
bool ConsumeSuffix (std::string_view *s, std::string_view suffix)
 
std::string StringReplace (std::string_view s, std::string_view from, std::string_view to, bool all)
 
std::string ErrnoNumberAsString (int errnum)
 
uint64_t GetThreadId ()
 
template<typename Closer >
bool Pipe (unique_fd_impl< Closer > *read, unique_fd_impl< Closer > *write, int flags=O_CLOEXEC)
 
template<typename Closer >
bool Socketpair (int domain, int type, int protocol, unique_fd_impl< Closer > *left, unique_fd_impl< Closer > *right)
 
template<typename Closer >
bool Socketpair (int type, unique_fd_impl< Closer > *left, unique_fd_impl< Closer > *right)
 
FILE * Fdopen (unique_fd &&ufd, const char *mode)
 
DIR * Fdopendir (unique_fd &&ufd)
 
template<typename F , typename... Args>
static void SplitByLines (const char *msg, const F &log_function, Args &&... args)
 
template<typename F >
static void SplitByLogdChunks (LogId log_id, LogSeverity severity, const char *tag, const char *file, unsigned int line, const char *msg, const F &log_function)
 
static std::pair< int, int > CountSizeAndNewLines (const char *message)
 
static std::string StderrOutputGenerator (const struct timespec &ts, int pid, uint64_t tid, LogSeverity severity, const char *tag, const char *file, unsigned int line, const char *message)
 
static const char * getprogname ()
 
static const char * GetFileBasename (const char *file)
 
static LogId log_id_tToLogId (int32_t buffer_id)
 
static LogSeverity PriorityToLogSeverity (int priority)
 
static int32_t LogSeverityToPriority (LogSeverity severity)
 
static LogFunctionLogger ()
 
static AbortFunctionAborter ()
 
static std::recursive_mutex & TagLock ()
 
static void LogdLogChunk (LogId, LogSeverity, const char *, const char *)
 
static off64_t InitPageSize ()
 
int posix_strerror_r (int errnum, char *buf, size_t buflen)
 
template int8_t GetIntProperty (const std::string &, int8_t, int8_t, int8_t)
 
template int16_t GetIntProperty (const std::string &, int16_t, int16_t, int16_t)
 
template int32_t GetIntProperty (const std::string &, int32_t, int32_t, int32_t)
 
template int64_t GetIntProperty (const std::string &, int64_t, int64_t, int64_t)
 
template uint8_t GetUintProperty (const std::string &, uint8_t, uint8_t)
 
template uint16_t GetUintProperty (const std::string &, uint16_t, uint16_t)
 
template uint32_t GetUintProperty (const std::string &, uint32_t, uint32_t)
 
template uint64_t GetUintProperty (const std::string &, uint64_t, uint64_t)
 

Variables

constexpr unexpect_t unexpect {}
 
static constexpr bool kEnableDChecks = true
 
static std::string * gDefaultTag
 
static bool gInitialized = false
 
static LogSeverity gMinimumLogSeverity = INFO
 
static constexpr char kEmptyBuffer [] = {'0'}
 

Typedef Documentation

◆ AbortFunction

using android::base::AbortFunction = typedef std::function<void(const char* )>

◆ LogFunction

using android::base::LogFunction = typedef std::function<void(LogId , LogSeverity , const char* , const char* , unsigned int , const char* )>

◆ Result

template<typename T , typename E = Errno, bool include_message = true>
using android::base::Result = typedef android::base::expected<T, ResultError<E, include_message> >

◆ unique_fd

Enumeration Type Documentation

◆ LogId

Enumerator
DEFAULT 
MAIN 
SYSTEM 
RADIO 
CRASH 

◆ LogSeverity

Enumerator
VERBOSE 
DEBUG 
INFO 
WARNING 
ERROR 
FATAL_WITHOUT_ABORT 
FATAL 

◆ ParseBoolResult

enum class android::base::ParseBoolResult
strong
Enumerator
kError 
kFalse 
kTrue 

Function Documentation

◆ _basename_r()

static int android::base::_basename_r ( const char *  path,
size_t  path_size,
char *  buffer,
size_t  buffer_size 
)
static

◆ _dirname_r()

static int android::base::_dirname_r ( const char *  path,
size_t  path_size,
char *  buffer,
size_t  buffer_size 
)
static

◆ Aborter()

static AbortFunction & android::base::Aborter ( )
static

◆ Append() [1/2]

template<typename CollectionType , typename T >
void android::base::Append ( CollectionType &  collection,
T &&  arg 
)

◆ Append() [2/2]

template<typename CollectionType , typename T , typename... Args>
void android::base::Append ( CollectionType &  collection,
T &&  arg,
Args &&...  args 
)

◆ AssertType() [1/2]

template<typename T , typename Arg , typename... Args>
void android::base::AssertType ( Arg &&  )

◆ AssertType() [2/2]

template<typename T , typename Arg , typename... Args>
void android::base::AssertType ( Arg &&  ,
Args &&...  args 
)

◆ Basename()

std::string android::base::Basename ( std::string_view  path)

◆ CleanUpAfterFailedWrite()

static bool android::base::CleanUpAfterFailedWrite ( const std::string &  path)
static

◆ ConsumePrefix()

bool android::base::ConsumePrefix ( std::string_view *  s,
std::string_view  prefix 
)
inline

◆ ConsumeSuffix()

bool android::base::ConsumeSuffix ( std::string_view *  s,
std::string_view  suffix 
)
inline

◆ CountSizeAndNewLines()

static std::pair< int, int > android::base::CountSizeAndNewLines ( const char *  message)
static

◆ DefaultAborter()

void android::base::DefaultAborter ( const char *  abort_message)

◆ Dirname()

std::string android::base::Dirname ( std::string_view  path)

◆ EndsWith() [1/2]

bool android::base::EndsWith ( std::string_view  s,
char  suffix 
)

◆ EndsWith() [2/2]

bool android::base::EndsWith ( std::string_view  s,
std::string_view  suffix 
)

◆ EndsWithIgnoreCase()

bool android::base::EndsWithIgnoreCase ( std::string_view  s,
std::string_view  suffix 
)

◆ EqualsIgnoreCase()

bool android::base::EqualsIgnoreCase ( std::string_view  lhs,
std::string_view  rhs 
)

◆ ErrnoError()

Error< Errno > android::base::ErrnoError ( )
inline

◆ ErrnoErrorfImpl()

template<typename T , typename... Args>
Error< Errno > android::base::ErrnoErrorfImpl ( const T &&  fmt,
const Args &...  args 
)
inline

◆ ErrnoNumberAsString()

std::string android::base::ErrnoNumberAsString ( int  errnum)

◆ ErrorCode() [1/2]

template<typename E >
E android::base::ErrorCode ( code)
inline

◆ ErrorCode() [2/2]

template<typename T , typename E , typename... Args>
E android::base::ErrorCode ( code,
T &&  t,
const Args &...  args 
)
inline

◆ ErrorfImpl()

template<typename T , typename... Args>
Error< Errno > android::base::ErrorfImpl ( const T &&  fmt,
const Args &...  args 
)
inline

◆ Fdopen()

FILE * android::base::Fdopen ( unique_fd &&  ufd,
const char *  mode 
)
inline

◆ Fdopendir()

DIR * android::base::Fdopendir ( unique_fd &&  ufd)
inline

◆ get_unaligned()

template<typename T >
static T android::base::get_unaligned ( const void *  address)
inlinestatic

◆ GetBoolProperty()

bool android::base::GetBoolProperty ( const std::string &  key,
bool  default_value 
)

◆ GetExecutableDirectory()

std::string android::base::GetExecutableDirectory ( )

◆ GetExecutablePath()

std::string android::base::GetExecutablePath ( )

◆ GetFileBasename()

static const char * android::base::GetFileBasename ( const char *  file)
static

◆ GetIntProperty() [1/5]

template int16_t android::base::GetIntProperty ( const std::string &  ,
int16_t  ,
int16_t  ,
int16_t   
)

◆ GetIntProperty() [2/5]

template int32_t android::base::GetIntProperty ( const std::string &  ,
int32_t  ,
int32_t  ,
int32_t   
)

◆ GetIntProperty() [3/5]

template int64_t android::base::GetIntProperty ( const std::string &  ,
int64_t  ,
int64_t  ,
int64_t   
)

◆ GetIntProperty() [4/5]

template int8_t android::base::GetIntProperty ( const std::string &  ,
int8_t  ,
int8_t  ,
int8_t   
)

◆ GetIntProperty() [5/5]

template<typename T >
T android::base::GetIntProperty ( const std::string &  key,
default_value,
min = std::numeric_limits<T>::min(),
max = std::numeric_limits<T>::max() 
)

◆ GetMinimumLogSeverity()

LogSeverity android::base::GetMinimumLogSeverity ( )

◆ getprogname()

static const char * android::base::getprogname ( )
static

◆ GetProperty()

std::string android::base::GetProperty ( const std::string &  key,
const std::string &  default_value 
)

◆ GetThreadId()

uint64_t android::base::GetThreadId ( )

◆ GetUintProperty() [1/5]

template uint16_t android::base::GetUintProperty ( const std::string &  ,
uint16_t  ,
uint16_t   
)

◆ GetUintProperty() [2/5]

template uint32_t android::base::GetUintProperty ( const std::string &  ,
uint32_t  ,
uint32_t   
)

◆ GetUintProperty() [3/5]

template uint64_t android::base::GetUintProperty ( const std::string &  ,
uint64_t  ,
uint64_t   
)

◆ GetUintProperty() [4/5]

template uint8_t android::base::GetUintProperty ( const std::string &  ,
uint8_t  ,
uint8_t   
)

◆ GetUintProperty() [5/5]

template<typename T >
T android::base::GetUintProperty ( const std::string &  key,
default_value,
max = std::numeric_limits<T>::max() 
)

◆ HexNybbleToValue()

static uint8_t android::base::HexNybbleToValue ( char  c)
static

◆ HexString()

std::string android::base::HexString ( const void *  bytes,
size_t  len 
)

◆ HexToBytes()

bool android::base::HexToBytes ( const std::string &  hex,
std::vector< uint8_t > *  bytes 
)

◆ HwTimeoutMultiplier()

static int android::base::HwTimeoutMultiplier ( )
inlinestatic

◆ InitLogging()

void android::base::InitLogging ( char *  argv[],
LogFunction &&  logger = INIT_LOGGING_DEFAULT_LOGGER,
AbortFunction &&  aborter = DefaultAborter 
)

◆ InitPageSize()

static off64_t android::base::InitPageSize ( )
static

◆ Join() [1/5]

template<typename ContainerT , typename SeparatorT >
std::string android::base::Join ( const ContainerT &  things,
SeparatorT  separator 
)

◆ Join() [2/5]

template std::string android::base::Join ( const std::vector< const char * > &  ,
char   
)

◆ Join() [3/5]

template std::string android::base::Join ( const std::vector< const char * > &  ,
const std::string &   
)

◆ Join() [4/5]

template std::string android::base::Join ( const std::vector< std::string > &  ,
char   
)

◆ Join() [5/5]

template std::string android::base::Join ( const std::vector< std::string > &  ,
const std::string &   
)

◆ KernelLogger()

void android::base::KernelLogger ( LogId  log_buffer_id,
LogSeverity  severity,
const char *  tag,
const char *  file,
unsigned int  line,
const char *  message 
)

◆ log_id_tToLogId()

static LogId android::base::log_id_tToLogId ( int32_t  buffer_id)
static

◆ LogdLogChunk()

static void android::base::LogdLogChunk ( LogId  ,
LogSeverity  ,
const char *  ,
const char *   
)
static

◆ Logger()

static LogFunction & android::base::Logger ( )
static

◆ LogSeverityToPriority()

static int32_t android::base::LogSeverityToPriority ( LogSeverity  severity)
static

◆ make_scope_guard()

template<typename F >
ScopeGuard< F > android::base::make_scope_guard ( F &&  f)

◆ MakeEagerEvaluator()

template<typename LHS , typename RHS >
constexpr auto android::base::MakeEagerEvaluator ( LHS &&  lhs,
RHS &&  rhs 
)
constexpr

◆ operator!=() [1/5]

template<class T1 , class E1 , class T2 , class E2 >
constexpr bool android::base::operator!= ( const expected< T1, E1 > &  x,
const expected< T2, E2 > &  y 
)
constexpr

◆ operator!=() [2/5]

template<class T1 , class E1 , class E2 >
constexpr bool android::base::operator!= ( const expected< T1, E1 > &  x,
const unexpected< E2 > &  y 
)
constexpr

◆ operator!=() [3/5]

template<typename E >
bool android::base::operator!= ( const ResultError< E > &  lhs,
const ResultError< E > &  rhs 
)
inline

◆ operator!=() [4/5]

template<class E1 , class E2 >
constexpr bool android::base::operator!= ( const unexpected< E1 > &  e1,
const unexpected< E2 > &  e2 
)
constexpr

◆ operator!=() [5/5]

template<class T1 , class E1 , class E2 >
constexpr bool android::base::operator!= ( const unexpected< E2 > &  x,
const expected< T1, E1 > &  y 
)
constexpr

◆ operator<<()

template<typename E >
std::ostream & android::base::operator<< ( std::ostream &  os,
const ResultError< E > &  t 
)
inline

◆ operator==() [1/8]

template<class T1 , class E1 , class T2 , class E2 >
constexpr bool android::base::operator== ( const expected< T1, E1 > &  x,
const expected< T2, E2 > &  y 
)
constexpr

◆ operator==() [2/8]

template<class T1 , class E1 , class E2 >
constexpr bool android::base::operator== ( const expected< T1, E1 > &  x,
const expected< void, E2 > &  y 
)
constexpr

◆ operator==() [3/8]

template<class T1 , class E1 , class E2 >
constexpr bool android::base::operator== ( const expected< T1, E1 > &  x,
const unexpected< E2 > &  y 
)
constexpr

◆ operator==() [4/8]

template<class E1 , class T2 , class E2 >
constexpr bool android::base::operator== ( const expected< void, E1 > &  x,
const expected< T2, E2 > &  y 
)
constexpr

◆ operator==() [5/8]

template<class E1 , class E2 >
constexpr bool android::base::operator== ( const expected< void, E1 > &  x,
const expected< void, E2 > &  y 
)
constexpr

◆ operator==() [6/8]

template<typename E >
bool android::base::operator== ( const ResultError< E > &  lhs,
const ResultError< E > &  rhs 
)
inline

◆ operator==() [7/8]

template<class E1 , class E2 >
constexpr bool android::base::operator== ( const unexpected< E1 > &  e1,
const unexpected< E2 > &  e2 
)
constexpr

◆ operator==() [8/8]

template<class T1 , class E1 , class E2 >
constexpr bool android::base::operator== ( const unexpected< E2 > &  x,
const expected< T1, E1 > &  y 
)
constexpr

◆ ParseBool()

ParseBoolResult android::base::ParseBool ( std::string_view  s)

◆ ParseByteCount() [1/2]

template<typename T >
bool android::base::ParseByteCount ( const char *  s,
T *  out,
max = std::numeric_limits<T>::max() 
)

◆ ParseByteCount() [2/2]

template<typename T >
bool android::base::ParseByteCount ( const std::string &  s,
T *  out,
max = std::numeric_limits<T>::max() 
)

◆ ParseDouble() [1/2]

static bool android::base::ParseDouble ( const char *  s,
double *  out,
double  min = std::numeric_limits<double>::lowest(),
double  max = std::numeric_limits<double>::max() 
)
inlinestatic

◆ ParseDouble() [2/2]

static bool android::base::ParseDouble ( const std::string &  s,
double *  out,
double  min = std::numeric_limits<double>::lowest(),
double  max = std::numeric_limits<double>::max() 
)
inlinestatic

◆ ParseFloat() [1/2]

static bool android::base::ParseFloat ( const char *  s,
float *  out,
float  min = std::numeric_limits<float>::lowest(),
float  max = std::numeric_limits<float>::max() 
)
inlinestatic

◆ ParseFloat() [2/2]

static bool android::base::ParseFloat ( const std::string &  s,
float *  out,
float  min = std::numeric_limits<float>::lowest(),
float  max = std::numeric_limits<float>::max() 
)
inlinestatic

◆ ParseFloatingPoint()

template<typename T , T(*)(const char *str, char **endptr) strtox>
static bool android::base::ParseFloatingPoint ( const char *  s,
T *  out,
min,
max 
)
inlinestatic

◆ ParseInt() [1/2]

template<typename T >
bool android::base::ParseInt ( const char *  s,
T *  out,
min = std::numeric_limits<T>::min(),
max = std::numeric_limits<T>::max() 
)

◆ ParseInt() [2/2]

template<typename T >
bool android::base::ParseInt ( const std::string &  s,
T *  out,
min = std::numeric_limits<T>::min(),
max = std::numeric_limits<T>::max() 
)

◆ ParseNetAddress()

bool android::base::ParseNetAddress ( const std::string &  address,
std::string *  host,
int *  port,
std::string *  canonical_address,
std::string *  error 
)

◆ ParseUint() [1/2]

template<typename T >
bool android::base::ParseUint ( const char *  s,
T *  out,
max = std::numeric_limits<T>::max(),
bool  allow_suffixes = false 
)

◆ ParseUint() [2/2]

template<typename T >
bool android::base::ParseUint ( const std::string &  s,
T *  out,
max = std::numeric_limits<T>::max(),
bool  allow_suffixes = false 
)

◆ Pipe()

template<typename Closer >
bool android::base::Pipe ( unique_fd_impl< Closer > *  read,
unique_fd_impl< Closer > *  write,
int  flags = O_CLOEXEC 
)
inline

◆ posix_strerror_r()

int android::base::posix_strerror_r ( int  errnum,
char *  buf,
size_t  buflen 
)

◆ PriorityToLogSeverity()

static LogSeverity android::base::PriorityToLogSeverity ( int  priority)
static

◆ put_unaligned()

template<typename T >
static void android::base::put_unaligned ( void *  address,
v 
)
inlinestatic

◆ ReadFdToString()

bool android::base::ReadFdToString ( borrowed_fd  fd,
std::string *  content 
)

◆ ReadFileToString()

bool android::base::ReadFileToString ( const std::string &  path,
std::string *  content,
bool  follow_symlinks 
)

◆ ReadFully()

bool android::base::ReadFully ( borrowed_fd  fd,
void *  data,
size_t  byte_count 
)

◆ ReadFullyAtOffset()

bool android::base::ReadFullyAtOffset ( borrowed_fd  fd,
void *  data,
size_t  byte_count,
off64_t  offset 
)

◆ Readlink()

bool android::base::Readlink ( const std::string &  path,
std::string *  result 
)

◆ Realpath()

bool android::base::Realpath ( const std::string &  path,
std::string *  result 
)

◆ ReceiveFileDescriptors()

template<typename... Args>
ssize_t android::base::ReceiveFileDescriptors ( borrowed_fd  sock,
void *  data,
size_t  len,
Args &&...  received_fds 
)

◆ ReceiveFileDescriptorVector() [1/2]

ssize_t android::base::ReceiveFileDescriptorVector ( borrowed_fd  sock,
void *  data,
size_t  len,
size_t  max_fds,
std::vector< android::base::unique_fd > *  fds 
)

◆ ReceiveFileDescriptorVector() [2/2]

ssize_t android::base::ReceiveFileDescriptorVector ( borrowed_fd  sockfd,
void *  data,
size_t  len,
size_t  max_fds,
std::vector< unique_fd > *  fds 
)

◆ RemoveFileIfExists()

bool android::base::RemoveFileIfExists ( const std::string &  path,
std::string *  err 
)

◆ ScopeGuard()

template<typename F >
android::base::ScopeGuard ( F &&  t) -> ScopeGuard< F >

◆ SendFileDescriptors()

template<typename... Args>
ssize_t android::base::SendFileDescriptors ( borrowed_fd  sock,
const void *  data,
size_t  len,
Args &&...  sent_fds 
)

◆ SendFileDescriptorVector()

ssize_t android::base::SendFileDescriptorVector ( borrowed_fd  sockfd,
const void *  data,
size_t  len,
const std::vector< int > &  fds 
)

◆ SetAborter()

AbortFunction android::base::SetAborter ( AbortFunction &&  aborter)

◆ SetDefaultTag()

void android::base::SetDefaultTag ( const std::string &  tag)

◆ SetLogger()

LogFunction android::base::SetLogger ( LogFunction &&  logger)

◆ SetMinimumLogSeverity()

LogSeverity android::base::SetMinimumLogSeverity ( LogSeverity  new_severity)

◆ SetProperty()

bool android::base::SetProperty ( const std::string &  key,
const std::string &  value 
)

◆ ShouldLog()

bool android::base::ShouldLog ( LogSeverity  severity,
const char *  tag 
)

◆ Socketpair() [1/2]

template<typename Closer >
bool android::base::Socketpair ( int  domain,
int  type,
int  protocol,
unique_fd_impl< Closer > *  left,
unique_fd_impl< Closer > *  right 
)
inline

◆ Socketpair() [2/2]

template<typename Closer >
bool android::base::Socketpair ( int  type,
unique_fd_impl< Closer > *  left,
unique_fd_impl< Closer > *  right 
)
inline

◆ Split()

std::vector< std::string > android::base::Split ( const std::string &  s,
const std::string &  delimiters 
)

◆ SplitByLines()

template<typename F , typename... Args>
static void android::base::SplitByLines ( const char *  msg,
const F &  log_function,
Args &&...  args 
)
static

◆ SplitByLogdChunks()

template<typename F >
static void android::base::SplitByLogdChunks ( LogId  log_id,
LogSeverity  severity,
const char *  tag,
const char *  file,
unsigned int  line,
const char *  msg,
const F &  log_function 
)
static

◆ StartsWith() [1/2]

bool android::base::StartsWith ( std::string_view  s,
char  prefix 
)

◆ StartsWith() [2/2]

bool android::base::StartsWith ( std::string_view  s,
std::string_view  prefix 
)

◆ StartsWithIgnoreCase()

bool android::base::StartsWithIgnoreCase ( std::string_view  s,
std::string_view  prefix 
)

◆ StderrLogger()

void android::base::StderrLogger ( LogId  log_buffer_id,
LogSeverity  severity,
const char *  tag,
const char *  file,
unsigned int  line,
const char *  message 
)

◆ StderrOutputGenerator()

static std::string android::base::StderrOutputGenerator ( const struct timespec &  ts,
int  pid,
uint64_t  tid,
LogSeverity  severity,
const char *  tag,
const char *  file,
unsigned int  line,
const char *  message 
)
static

◆ StdioLogger()

void android::base::StdioLogger ( LogId  log_buffer_id,
LogSeverity  severity,
const char *  tag,
const char *  file,
unsigned int  line,
const char *  message 
)

◆ StringAppendF()

void android::base::StringAppendF ( std::string *  dst,
const char *  fmt,
  ... 
)

◆ StringAppendV()

void android::base::StringAppendV ( std::string *  dst,
const char *  format,
va_list  ap 
)

◆ StringPrintf()

std::string android::base::StringPrintf ( const char *  fmt,
  ... 
)

◆ StringReplace()

std::string android::base::StringReplace ( std::string_view  s,
std::string_view  from,
std::string_view  to,
bool  all 
)

◆ swap() [1/2]

template<class T1 , class E1 >
void android::base::swap ( expected< T1, E1 > &  x,
expected< T1, E1 > &  y 
)
noexcept

◆ swap() [2/2]

template<class E1 >
void android::base::swap ( unexpected< E1 > &  x,
unexpected< E1 > &  y 
)
noexcept

◆ SystemErrorCodeToString()

std::string android::base::SystemErrorCodeToString ( int  error_code)

◆ TagLock()

static std::recursive_mutex & android::base::TagLock ( )
static

◆ Tokenize()

std::vector< std::string > android::base::Tokenize ( const std::string &  s,
const std::string &  delimiters 
)

◆ Trim() [1/7]

template std::string android::base::Trim ( const char *&&  )

◆ Trim() [2/7]

template std::string android::base::Trim ( const char *&  )

◆ Trim() [3/7]

template std::string android::base::Trim ( const std::string &&  )

◆ Trim() [4/7]

template std::string android::base::Trim ( const std::string &  )

◆ Trim() [5/7]

template std::string android::base::Trim ( std::string_view &&  )

◆ Trim() [6/7]

template std::string android::base::Trim ( std::string_view &  )

◆ Trim() [7/7]

template<typename T >
std::string android::base::Trim ( T &&  t)

◆ unexpected()

template<class E >
android::base::unexpected ( ) -> unexpected< E >

◆ WriteFully()

bool android::base::WriteFully ( borrowed_fd  fd,
const void *  data,
size_t  byte_count 
)

◆ WriteFullyAtOffset()

bool android::base::WriteFullyAtOffset ( borrowed_fd  fd,
const void *  data,
size_t  byte_count,
off64_t  offset 
)

◆ WriteStringToFd()

bool android::base::WriteStringToFd ( std::string_view  content,
borrowed_fd  fd 
)

◆ WriteStringToFile() [1/2]

bool android::base::WriteStringToFile ( const std::string &  content,
const std::string &  path,
bool  follow_symlinks 
)

◆ WriteStringToFile() [2/2]

bool android::base::WriteStringToFile ( const std::string &  content,
const std::string &  path,
mode_t  mode,
uid_t  owner,
gid_t  group,
bool  follow_symlinks 
)

Variable Documentation

◆ gDefaultTag

std::string* android::base::gDefaultTag
static

◆ gInitialized

bool android::base::gInitialized = false
static

◆ gMinimumLogSeverity

LogSeverity android::base::gMinimumLogSeverity = INFO
static

◆ kEmptyBuffer

constexpr char android::base::kEmptyBuffer[] = {'0'}
staticconstexpr

◆ kEnableDChecks

constexpr bool android::base::kEnableDChecks = true
staticconstexpr

◆ unexpect

constexpr unexpect_t android::base::unexpect {}
inlineconstexpr