SimGrid  3.13
Versatile Simulation of Distributed Systems
simgrid::xbt Namespace Reference

Classes

struct  destroy_delete
 Delete operator which call a destroy() free function. More...
 
class  Extendable
 An Extendable is an object that you can extend with external elements. More...
 
class  Extension
 
class  Range
 Describes a contiguous inclusive-exclusive [a,b) range of values. More...
 
class  signal
 
class  signal< R(P...)>
 A signal/slot mechanism. More...
 
struct  VmMap
 An virtual memory map entry from /proc/$pid/maps. More...
 

Typedefs

template<class T >
using DynarRange = boost::iterator_range< T * >
 A C++ range from a a dynar. More...
 
template<class T >
using unique_ptr = std::unique_ptr< T, destroy_delete< T > >
 A unique_ptr which works for SimGrid C types (dynar, swag, automaton, etc.) More...
 
typedef std::string string
 

Functions

template<class F >
xbt_automaton_propositional_symbol_t add_proposition (xbt_automaton_t a, const char *id, F f)
 Add a proposition to an automaton (the C++ way) More...
 
template<class T >
DynarRange< T > range (xbt_dynar_t dynar)
 Create an iterator range representing a dynar. More...
 
template<class T >
xbt_dynar_t newDeleteDynar ()
 Dynar of T* which delete its values. More...
 
template<class T >
xbt_dynar_t newDestroyDynar ()
 Dynar of T* which destroy() its values. More...
 
std::string string_vprintf (const char *fmt, va_list ap)
 
std::string string_printf (const char *fmt,...)
 
const std::error_category & errno_category () noexcept
 A error_category suitable to be used with errno More...
 
std::error_code errno_code (int errnum)
 Create a error_code from an errno value. More...
 
std::error_code errno_code ()
 Create an error_code from errno (and clear it) More...
 
std::system_error errno_error (int errnum)
 Create a system_error from an errno value. More...
 
std::system_error errno_error (int errnum, const char *what)
 
std::system_error errno_error ()
 Create a system_code from errno (and clear it) More...
 
std::system_error errno_error (const char *what)
 
XBT_PRIVATE std::vector< VmMapget_memory_map (pid_t pid)
 

Typedef Documentation

template<class T >
using simgrid::xbt::DynarRange = typedef boost::iterator_range<T*>

A C++ range from a a dynar.

template<class T >
using simgrid::xbt::unique_ptr = typedef std::unique_ptr<T, destroy_delete<T> >

A unique_ptr which works for SimGrid C types (dynar, swag, automaton, etc.)

It uses an overloaded destroy() function to delete the object.

typedef std::string simgrid::xbt::string

Function Documentation

template<class F >
xbt_automaton_propositional_symbol_t simgrid::xbt::add_proposition ( xbt_automaton_t  a,
const char *  id,
f 
)

Add a proposition to an automaton (the C++ way)

This API hides all the callback and dynamic allocation hell from the used which can use C++ style functors and lambda expressions.

template<class T >
DynarRange<T> simgrid::xbt::range ( xbt_dynar_t  dynar)
inline

Create an iterator range representing a dynar.

C++ range loops for xbt_dynar_t:

for (auto& x : range<double>(some_dynar)) ++x;

template<class T >
xbt_dynar_t simgrid::xbt::newDeleteDynar ( )
inline

Dynar of T* which delete its values.

template<class T >
xbt_dynar_t simgrid::xbt::newDestroyDynar ( )
inline

Dynar of T* which destroy() its values.

std::string simgrid::xbt::string_vprintf ( const char *  fmt,
va_list  ap 
)
std::string simgrid::xbt::string_printf ( const char *  fmt,
  ... 
)
const std::error_category& simgrid::xbt::errno_category ( )
inlinenoexcept

A error_category suitable to be used with errno

It is not clear which error we are supposed to generate when getting a errno:

  • system_error clearly cannot be used for this on Windows;
  • generic_error might not be used for non-standard errno.

Let's just define a function which gives us the correct category.

std::error_code simgrid::xbt::errno_code ( int  errnum)
inline

Create a error_code from an errno value.

This is expected to to whatever is right to create a error_code from a given errno value.

std::error_code simgrid::xbt::errno_code ( )
inline

Create an error_code from errno (and clear it)

std::system_error simgrid::xbt::errno_error ( int  errnum)
inline

Create a system_error from an errno value.

This is expected to to whatever is right to create a system_error from a given errno value.

std::system_error simgrid::xbt::errno_error ( int  errnum,
const char *  what 
)
inline
std::system_error simgrid::xbt::errno_error ( )
inline

Create a system_code from errno (and clear it)

std::system_error simgrid::xbt::errno_error ( const char *  what)
inline
XBT_PRIVATE std::vector< VmMap > simgrid::xbt::get_memory_map ( pid_t  pid)