Thrill  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
foxxll Namespace Reference

FOXXLL library namespace More...

Namespaces

 async_schedule_local
 
 mng_local
 Block Manager Internals.
 

Classes

class  addressable_fifo_queue
 
class  addressable_priority_queue
 
struct  aligned_alloc_settings
 
class  bad_ext_alloc
 
class  bad_parameter
 
struct  basic_allocation_strategy
 
class  BID
 
class  BID< 0 >
 Specialization of block identifier class (BID) for variable size block size. More...
 
class  block_manager
 Block manager class. More...
 
class  block_prefetcher
 
class  block_scheduler
 
class  block_scheduler_algorithm
 Interface of a block scheduling algorithm. More...
 
class  block_scheduler_algorithm_offline_lfd
 Block scheduling algorithm caching via the longest forward distance policy (offline). More...
 
class  block_scheduler_algorithm_offline_lru_prefetching
 
class  block_scheduler_algorithm_online_lru
 Block scheduling algorithm caching via the least recently used policy (online). More...
 
class  block_scheduler_algorithm_simulation
 Pseudo block scheduling algorithm only recording the request sequence. More...
 
class  buf_istream
 
class  buf_istream_reverse
 
class  buf_ostream
 
class  buffered_writer
 
struct  CASE
 
class  config
 
class  disk_block_allocator
 This class manages allocation of blocks onto a single disk. More...
 
class  disk_config
 
class  disk_queued_file
 Implementation of some file methods based on serving_request. More...
 
class  disk_queues
 
class  fake_timer
 Class fake_timer is a drop-in replacement for timer, which does nothing. More...
 
class  file
 
class  file_stats
 
class  file_stats_data
 
class  fileperblock_file
 
struct  first_disk_only
 
struct  fully_random
 
struct  interleaved_alloc_traits
 
struct  interleaved_alloc_traits< fully_random >
 
struct  interleaved_alloc_traits< random_cyclic >
 
struct  interleaved_alloc_traits< random_cyclic_disk >
 
struct  interleaved_alloc_traits< random_cyclic_flash >
 
struct  interleaved_alloc_traits< simple_random >
 
struct  interleaved_alloc_traits< single_disk >
 
struct  interleaved_alloc_traits< striping >
 
struct  interleaved_fully_random
 
struct  interleaved_random_cyclic
 
struct  interleaved_simple_random
 
struct  interleaved_striping
 
class  io_error
 
class  memory_file
 Implementation of file based on new[] and memcpy. More...
 
class  new_alloc
 
struct  new_alloc_rebind
 
struct  new_alloc_rebind< Type, Type >
 
struct  NilCase
 
struct  offset_allocator
 
class  onoff_switch
 
class  prefetch_pool
 Implements dynamically resizable prefetching pool. More...
 
struct  random_cyclic
 
struct  random_cyclic_disk
 
struct  random_cyclic_flash
 
class  read_write_pool
 Implements dynamically resizable buffered writing and prefetched reading pool. More...
 
class  request
 Request object encapsulating basic properties like file and offset. More...
 
class  request_interface
 
class  request_queue
 Interface of a request_queue to which requests can be added and canceled. More...
 
class  request_queue_impl_1q
 
class  request_queue_impl_qwqr
 
class  request_queue_impl_worker
 
class  request_with_state
 Request with completion shared_state. More...
 
class  request_with_waiters
 Request that is aware of threads waiting for it to complete. More...
 
class  resource_error
 
class  scoped_print_iostats
 Simple scoped iostats reporter which takes a message and reports the relative IO performance on destruction. More...
 
class  scoped_print_timer
 Simple scoped timer, which takes a text message and prints the duration until the scope is destroyed. More...
 
class  serving_request
 Request which serves an I/O by calling the synchronous routine of the file. More...
 
class  set_switch_handler
 
class  shared_state
 
struct  simple_random
 
struct  single_disk
 
class  singleton
 
class  stats
 
class  stats_data
 
struct  striping
 
class  swappable_block
 
class  SWITCH
 
class  SWITCH< Tag, NilCase >
 
class  syscall_file
 Implementation of file based on UNIX syscalls. More...
 
class  timer
 Class timer is a simple stop watch timer. More...
 
class  typed_block
 
class  ufs_file_base
 Base for UNIX file system implementations. More...
 
class  uint_pair
 Construct an 40-bit or 48-bit unsigned integer stored in five or six bytes. More...
 
class  unreachable
 
class  write_pool
 Implements dynamically resizable buffered writing pool. More...
 

Typedefs

template<size_t BlockSize>
using BIDArray = tlx::simple_vector< BID< BlockSize > >
 
using completion_handler = tlx::delegate< void(request *r, bool success)>
 completion handler More...
 
using default_alloc_strategy = foxxll::random_cyclic
 
using external_diff_type = int64_t
 
using external_size_type = uint64_t
 
using file_ptr = tlx::counting_ptr< file >
 A reference counting pointer for file. More...
 
using request_ptr = tlx::counting_ptr< request >
 A reference counting pointer for request. More...
 
using uint40 = uint_pair< uint8_t >
 Construct a 40-bit unsigned integer stored in five bytes. More...
 
using uint48 = uint_pair< uint16_t >
 Construct a 48-bit unsigned integer stored in six bytes. More...
 

Functions

template<typename HighType >
class foxxll::uint_pair __attribute__ ((packed))
 
static std::string add_IEC_binary_multiplier (const external_size_type number, const std::string &unit="")
 
static std::string add_SI_multiplier (external_size_type number, const std::string &unit="")
 
template<size_t Alignment>
void * aligned_alloc (size_t size, size_t meta_info_size=0)
 
template<size_t Alignment>
void aligned_dealloc (void *ptr)
 
template<typename Integral >
std::make_signed< Integral >::type as_signed (Integral value)
 Return the given value casted to the corresponding signed type. More...
 
template<typename Integral >
std::make_unsigned< Integral >
::type 
as_unsigned (Integral value)
 Return the given value casted to the corresponding unsigned type. More...
 
int64_t atoi64 (const char *s)
 
uint64_t atouint64 (const char *s)
 
template<class RequestIterator >
std::iterator_traits
< RequestIterator >
::difference_type 
cancel_all (RequestIterator reqs_begin, RequestIterator reqs_end)
 
int check_library_version ()
 Check for a mismatch between library and headers. More...
 
void compute_prefetch_schedule (size_t *first, size_t *last, size_t *out_first, size_t m, size_t D)
 
template<typename RunType >
void compute_prefetch_schedule (const RunType &input, size_t *out_first, size_t m, size_t D)
 
template<typename BidIteratorType >
void compute_prefetch_schedule (BidIteratorType input_begin, BidIteratorType input_end, size_t *out_first, size_t m, size_t D)
 
void compute_prefetch_schedule (const size_t *first, const size_t *last, size_t *out_first, size_t m, size_t D)
 
file_ptr create_file (const std::string &io_impl, const std::string &filename, int options, int physical_device_id=file::DEFAULT_QUEUE, int disk_allocator_id=file::NO_ALLOCATOR)
 create fileio object from io_impl string and a few parameters More...
 
file_ptr create_file (disk_config &config, int mode, int disk_allocator_id=file::NO_ALLOCATOR)
 create fileio object from disk_config parameter More...
 
template<typename Integral , typename Integral2 >
std::remove_const< Integral >::type div_ceil (Integral n, Integral2 d)
 
static bool exist_file (const std::string &path)
 
std::string get_library_version_string ()
 returns "X.Y.Z" version string of library More...
 
std::string get_library_version_string_long ()
 returns longer "X.Y.Z (feature) (version)" string of library More...
 
std::string get_version_string ()
 Return "X.Y.Z" version string (of headers) More...
 
std::string get_version_string_long ()
 Return longer "X.Y.Z (feature) (version)" version string (of headers) More...
 
size_t longhash1 (uint64_t key_)
 
template<class Type1 , class Type2 >
bool operator!= (const new_alloc< Type1 > &, const new_alloc< Type2 > &) noexcept
 
std::ostream & operator<< (std::ostream &out, const request &req)
 
template<size_t BlockSize>
std::ostream & operator<< (std::ostream &s, const BID< BlockSize > &bid)
 
std::ostream & operator<< (std::ostream &o, const stats &s)
 
template<class Type1 , class Type2 >
bool operator== (const new_alloc< Type1 > &, const new_alloc< Type2 > &) noexcept
 
template<class RequestIterator >
RequestIterator poll_any (RequestIterator reqs_begin, RequestIterator reqs_end)
 
static bool poll_any (request_ptr req_array[], size_t count, size_t &index)
 
template<class Container >
Container::value_type pop (Container &c)
 
template<class Container >
Container::value_type pop_back (Container &c)
 
template<class Container >
Container::value_type pop_begin (Container &c)
 
template<class Container >
Container::value_type pop_front (Container &c)
 
void print_library_version_mismatch ()
 Check and print mismatch between header and library versions. More...
 
int register_exit_handler (void(*function)(void))
 
template<typename Integral >
Integral round_up_to_power_of_two (Integral n, unsigned power)
 round n up to next larger multiple of 2^power. example: (48,4) = 64, (48,3) = 48. More...
 
void run_exit_handlers ()
 
template<class Type >
void swap_1D_arrays (Type *a, Type *b, size_t size)
 
static double timestamp ()
 Returns number of seconds since the epoch, high resolution. More...
 
template<typename Type >
std::string to_str (const Type &t)
 Format any ostream-able type into a string. More...
 
int version_integer ()
 return integer version number of the FOXXLL library More...
 
int version_major ()
 return X if the FOXXLL library version is X.Y.Z More...
 
int version_minor ()
 return Y if the FOXXLL library version is X.Y.Z More...
 
int version_patch ()
 return Z if the FOXXLL library version is X.Y.Z More...
 
template<class RequestIterator >
void wait_all (RequestIterator reqs_begin, RequestIterator reqs_end)
 Collection of functions to track statuses of a number of requests. More...
 
static void wait_all (request_ptr req_array[], size_t count)
 
template<class RequestIterator >
RequestIterator wait_any (RequestIterator reqs_begin, RequestIterator reqs_end)
 
static size_t wait_any (request_ptr req_array[], size_t count)
 

Variables

constexpr size_t BlockAlignment = 4096
 
constexpr bool debug_aligned_alloc = false
 
constexpr bool debug_typed_block = false
 
const int DEFAULT = ~(~0u >> 1)
 

Detailed Description

FOXXLL library namespace

Typedef Documentation

using external_diff_type = int64_t

Definition at line 28 of file types.hpp.

using external_size_type = uint64_t

Definition at line 27 of file types.hpp.

Function Documentation

class foxxll::uint_pair foxxll::__attribute__ ( (packed)  )
void* foxxll::aligned_alloc ( size_t  size,
size_t  meta_info_size = 0 
)
inline

Definition at line 48 of file aligned_alloc.hpp.

References debug_aligned_alloc, div_ceil(), free(), malloc(), realloc(), TLX_LOG1, and TLX_LOGC.

void foxxll::aligned_dealloc ( void *  ptr)
inline

Definition at line 122 of file aligned_alloc.hpp.

References debug_aligned_alloc, free(), and TLX_LOGC.

std::make_signed<Integral>::type foxxll::as_signed ( Integral  value)

Return the given value casted to the corresponding signed type.

Definition at line 39 of file types.hpp.

References gen_data::value.

Referenced by fileperblock_file< base_file_type >::export_files().

std::make_unsigned<Integral>::type foxxll::as_unsigned ( Integral  value)

Return the given value casted to the corresponding unsigned type.

Definition at line 32 of file types.hpp.

References gen_data::value.

int64_t foxxll::atoi64 ( const char *  s)
inline

Definition at line 43 of file utils.hpp.

uint64_t foxxll::atouint64 ( const char *  s)
inline

Definition at line 52 of file utils.hpp.

int foxxll::check_library_version ( )
inline

Check for a mismatch between library and headers.

Definition at line 72 of file version.hpp.

References FOXXLL_VERSION_MAJOR, FOXXLL_VERSION_MINOR, FOXXLL_VERSION_PATCH, version_major(), version_minor(), and version_patch().

Referenced by print_library_version_mismatch().

void foxxll::compute_prefetch_schedule ( size_t *  first,
size_t *  last,
size_t *  out_first,
size_t  m,
size_t  D 
)
inline

Definition at line 34 of file async_schedule.hpp.

References compute_prefetch_schedule().

void foxxll::compute_prefetch_schedule ( const RunType &  input,
size_t *  out_first,
size_t  m,
size_t  D 
)
void foxxll::compute_prefetch_schedule ( BidIteratorType  input_begin,
BidIteratorType  input_end,
size_t *  out_first,
size_t  m,
size_t  D 
)
void compute_prefetch_schedule ( const size_t *  first,
const size_t *  last,
size_t *  out_first,
size_t  m,
size_t  D 
)
file_ptr create_file ( const std::string &  io_impl,
const std::string &  filename,
int  options,
int  physical_device_id,
int  disk_allocator_id 
)

create fileio object from io_impl string and a few parameters

Definition at line 29 of file create_file.cpp.

References file::DIRECT, disk_config::direct, disk_config::DIRECT_OFF, disk_config::DIRECT_ON, disk_config::DIRECT_TRY, disk_config::queue, and file::REQUIRE_DIRECT.

Referenced by block_manager::block_manager().

std::remove_const<Integral>::type foxxll::div_ceil ( Integral  n,
Integral2  d 
)
inline

Definition at line 64 of file utils.hpp.

Referenced by aligned_alloc().

static bool foxxll::exist_file ( const std::string &  path)
inlinestatic

Definition at line 42 of file config.cpp.

References TLX_LOG0.

Referenced by config::find_config().

std::string get_library_version_string ( )

returns "X.Y.Z" version string of library

Definition at line 40 of file version.cpp.

References get_version_string().

Referenced by print_library_version_mismatch().

std::string get_library_version_string_long ( )

returns longer "X.Y.Z (feature) (version)" string of library

Definition at line 45 of file version.cpp.

References get_version_string_long().

std::string foxxll::get_version_string ( )
inline

Return "X.Y.Z" version string (of headers)

Definition at line 34 of file version.hpp.

References FOXXLL_VERSION_STRING.

Referenced by get_library_version_string().

std::string foxxll::get_version_string_long ( )
inline

Return longer "X.Y.Z (feature) (version)" version string (of headers)

Definition at line 40 of file version.hpp.

References FOXXLL_VERSION_GIT_SHA1, FOXXLL_VERSION_PHASE, and FOXXLL_VERSION_STRING.

Referenced by config::config(), and get_library_version_string_long().

size_t foxxll::longhash1 ( uint64_t  key_)
inline

Definition at line 91 of file utils.hpp.

bool foxxll::operator!= ( const new_alloc< Type1 > &  ,
const new_alloc< Type2 > &   
)
inlinenoexcept

Definition at line 131 of file new_alloc.hpp.

std::ostream& foxxll::operator<< ( std::ostream &  o,
const stats &  s 
)

Definition at line 375 of file iostats.cpp.

bool foxxll::operator== ( const new_alloc< Type1 > &  ,
const new_alloc< Type2 > &   
)
inlinenoexcept

Definition at line 124 of file new_alloc.hpp.

Container::value_type foxxll::pop ( Container &  c)
inline

Definition at line 125 of file utils.hpp.

Container::value_type foxxll::pop_back ( Container &  c)
inline

Definition at line 141 of file utils.hpp.

Container::value_type foxxll::pop_front ( Container &  c)
inline

Definition at line 133 of file utils.hpp.

void foxxll::print_library_version_mismatch ( )
inline

Check and print mismatch between header and library versions.

Definition at line 84 of file version.hpp.

References check_library_version(), die, FOXXLL_VERSION_STRING, and get_library_version_string().

Referenced by config::config().

int register_exit_handler ( void(*)(void)  function)
Integral foxxll::round_up_to_power_of_two ( Integral  n,
unsigned  power 
)
inline

round n up to next larger multiple of 2^power. example: (48,4) = 64, (48,3) = 48.

Definition at line 113 of file utils.hpp.

void run_exit_handlers ( )

Definition at line 41 of file exithandler.cpp.

void foxxll::swap_1D_arrays ( Type *  a,
Type *  b,
size_t  size 
)
inline

Definition at line 105 of file utils.hpp.

References tlx::swap().

std::string foxxll::to_str ( const Type &  t)

Format any ostream-able type into a string.

Definition at line 36 of file utils.hpp.

Referenced by disk_config::parse_line().

int version_integer ( )

return integer version number of the FOXXLL library

Definition at line 35 of file version.cpp.

References FOXXLL_VERSION_INTEGER.

int version_major ( )

return X if the FOXXLL library version is X.Y.Z

Definition at line 20 of file version.cpp.

References FOXXLL_VERSION_MAJOR.

Referenced by check_library_version().

int version_minor ( )

return Y if the FOXXLL library version is X.Y.Z

Definition at line 25 of file version.cpp.

References FOXXLL_VERSION_MINOR.

Referenced by check_library_version().

int version_patch ( )

return Z if the FOXXLL library version is X.Y.Z

Definition at line 30 of file version.cpp.

References FOXXLL_VERSION_PATCH.

Referenced by check_library_version().

Variable Documentation

constexpr bool debug_aligned_alloc = false

Definition at line 26 of file aligned_alloc.hpp.

Referenced by aligned_alloc(), and aligned_dealloc().

const int DEFAULT = ~(~0u >> 1)

Definition at line 26 of file tmeta.hpp.