Anklang 0.3.0-460-gc4ef46ba
ASE — Anklang Sound Engine (C++)

« « « Anklang Documentation
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
platform.hh File Reference
#include <ase/defs.hh>
#include <condition_variable>
#include <thread>
#include <list>

Go to the source code of this file.

Classes

class  Ase::Stopwatch
 
class  Ase::ScopedSemaphore
 
class  Ase::AsyncBlockingQueue< Value >
 This is a thread-safe asyncronous queue which blocks in pop() until data is provided through push(). More...
 
struct  Ase::TaskStatus
 Acquire information about a task (process or thread) at runtime. More...
 
class  Ase::TaskRegistry
 The task registry keeps track of runtime threads for profiling and statistical purposes. More...
 

Namespaces

namespace  Ase
 The Anklang C++ API namespace.
 
namespace  Ase::AnsiColors
 The AnsiColors namespace contains utility functions for colored terminal output.
 

Macros

#define ASE_SFENCE
 Store Fence - prevent processor (and compiler) from reordering stores (write barrier).
 
#define ASE_LFENCE
 
#define ASE_MFENCE
 Memory Fence - prevent processor (and compiler) from reordering loads/stores (read/write barrier), see also std::atomic_thread_fence().
 
#define ASE_CFENCE
 Compiler Fence, prevent compiler from reordering non-volatile loads/stores, see also std::atomic_signal_fence().
 

Typedefs

using Ase::ThreadId = std::thread::id
 

Enumerations

enum class  RPath {
  PREFIXDIR , INSTALLDIR , LOCALEDIR , LIBDIR ,
  ELECTRONDIR , DEMODIR , LADSPADIRS
}
 
enum  Ase::AnsiColors::Colors {
  NONE , Ase::AnsiColors::RESET , BOLD , BOLD_OFF ,
  ITALICS , ITALICS_OFF , UNDERLINE , UNDERLINE_OFF ,
  INVERSE , INVERSE_OFF , STRIKETHROUGH , STRIKETHROUGH_OFF ,
  FG_BLACK , FG_RED , FG_GREEN , FG_YELLOW ,
  FG_BLUE , FG_MAGENTA , FG_CYAN , FG_WHITE ,
  FG_DEFAULT , BG_BLACK , BG_RED , BG_GREEN ,
  BG_YELLOW , BG_BLUE , BG_MAGENTA , BG_CYAN ,
  BG_WHITE , BG_DEFAULT
}
 ANSI color symbols. More...
 
enum class  Colorize : int8 { NEVER , ALWAYS , AUTO }
 

Functions

const char *() Ase::_ (const char *string)
 Translate message strings in the Anklang/ASE text domain.
 
std::string() Ase::_ (const std::string &string)
 Translate message strings in the Anklang/ASE text domain.
 
const char *() Ase::_ (const char *string, const char *plural, int64_t n)
 Translate message strings in the Anklang/ASE text domain, use @plural forms if
!= 1.
 
const char *() Ase::__format_arg__ (2)))
 
std::string() Ase::_ (const std::string &string, const std::string &plural, int64_t n)
 Translate message strings in the Anklang/ASE text domain, use @plural forms if
!= 1.
 
std::string Ase::anklang_runpath (RPath rpath, const String &segment)
 Retrieve various resource paths at runtime.
 
String Ase::anklang_home_dir (const String &subdir)
 Get Anklang home dir, possibly adding subdir.
 
const charAse::AnsiColors::color_code (Colors acolor)
 Return ANSI code for the specified color.
 
std::string Ase::AnsiColors::color (Colors acolor, Colors c1, Colors c2, Colors c3, Colors c4, Colors c5, Colors c6)
 Return ANSI code for the specified color if stdout & stderr should be colorized, see colorize_tty().
 
void Ase::AnsiColors::configure (Colorize colorize)
 Override the environment variable $ASE_COLOR (which may contain "always", "never" or "auto").
 
bool Ase::AnsiColors::colorize_tty (int fd)
 Check whether the tty fd should use colorization, checks ASE_COLOR if fd == -1.
 
uint64 Ase::timestamp_startup ()
 Provides the timestamp_realtime() value from program startup.
 
uint64 Ase::timestamp_realtime ()
 Return the current time as uint64 in µseconds.
 
uint64 Ase::timestamp_benchmark ()
 Returns benchmark timestamp in nano-seconds, clock starts around program startup.
 
uint64 Ase::timestamp_resolution ()
 Provide resolution of timestamp_benchmark() in nano-seconds.
 
String Ase::timestamp_format (uint64 stamp, uint maxlength)
 Convert stamp into a string, adding µsecond fractions if space permits.
 
uint64 Ase::monotonic_counter ()
 A monotonically increasing counter, increments are atomic and visible in all threads.
 
String Ase::program_alias ()
 Retrieve the program name as used for logging or debug messages.
 
void Ase::program_alias_init (String customname)
 Set program_alias to a non-localized alias other than program_argv0 if desired.
 
String Ase::application_name ()
 Retrieve the localized program name intended for user display.
 
void Ase::application_name_init (String desktopname)
 Set the application_name to a name other than program_alias if desired.
 
String Ase::program_cwd ()
 The current working directory during startup.
 
std::string Ase::executable_name () ASE_PURE
 Retrieve the name part of executable_path().
 
std::string Ase::executable_path ()
 Retrieve the path to the currently running executable.
 
String Ase::cpu_info ()
 Retrieve string identifying the runtime CPU type.
 
std::string Ase::cpu_arch ()
 Retrieve string identifying the CPU architecture.
 
const charAse::ase_version ()
 Provide a string containing the package version.
 
const charAse::ase_build_id ()
 Provide a string containing the ASE library build id.
 
int Ase::user_id ()
 
String Ase::user_name ()
 
String Ase::user_real_name ()
 
int Ase::sched_get_priority (int tid)
 Retrieve the nice level of process or thread tid.
 
bool Ase::sched_set_priority (int tid, int nicelevel)
 Try to set the nice level of process or thread tid to nicelevel.
 
bool Ase::sched_fast_priority (int tid)
 Try to acquire low latency scheduling priority, returns true if nice level is < 0.
 
ThreadId Ase::this_thread_self ()
 
void Ase::this_thread_set_name (const String &name16chars)
 
String Ase::this_thread_get_name ()
 
int Ase::this_thread_getpid ()
 
int Ase::this_thread_gettid ()
 
int Ase::this_thread_online_cpus ()
 
bool Ase::this_thread_is_ase ()
 
void Ase::breakpoint ()
 Cause a debugging breakpoint, for development only.
 

Variables

const int Ase::ase_major_version
 
const int Ase::ase_minor_version
 
const int Ase::ase_micro_version
 
const char *const Ase::ase_version_long
 
const char *const Ase::ase_version_short
 
const char *const Ase::ase_gettext_domain
 
const char *const Ase::ase_sharedir
 

Macro Definition Documentation

◆ ASE_CFENCE

#define ASE_CFENCE

Compiler Fence, prevent compiler from reordering non-volatile loads/stores, see also std::atomic_signal_fence().

Definition at line 194 of file platform.hh.

◆ ASE_LFENCE

#define ASE_LFENCE

Load Fence - prevent processor (and compiler) from reordering loads (read barrier).

Definition at line 189 of file platform.hh.

◆ ASE_MFENCE

#define ASE_MFENCE

Memory Fence - prevent processor (and compiler) from reordering loads/stores (read/write barrier), see also std::atomic_thread_fence().

Definition at line 191 of file platform.hh.

◆ ASE_SFENCE

#define ASE_SFENCE

Store Fence - prevent processor (and compiler) from reordering stores (write barrier).

Definition at line 188 of file platform.hh.