Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
lib Namespace Reference

Description

Implementation namespace for support and library code.

Namespaces

 diff
 
 factory
 
 hash
 Hash implementations usable for the HashIndexed mixin as well as key within tr1::unordered_map.
 
 idi
 Identification Schemes.
 
 iter
 
 iter_explorer
 
 iter_source
 
 iter_stl
 
 linked_elements
 
 maybe
 
 meta
 
 nifty
 
 polyvalue
 
 query
 
 singleton
 
 sync
 Helpers and building blocks for Monitor based synchronisation.
 
 test
 
 time
 
 variant
 
 visitor
 
 wrapper
 

Typedefs

typedef size_t HashVal
 a STL compatible hash value More...
 
typedef size_t IxID
 
typedef lumiera_uidLUID
 a Lumiera UID More...
 
typedef smatch::value_type const & SubMatch
 
typedef vector< string > VectS
 

Classes

class  AddressExposingIter
 wrapper for an existing Iterator type to expose the address of each value yielded. More...
 
class  AllocationCluster
 A pile of objects sharing common allocation and lifecycle. More...
 
class  Allocator_TransferNoncopyable
 Addendum to scoped-holder.hpp for transferring the lifecycle management to another instance. More...
 
class  AutoRegistered
 Helper mixin template for implementing a type intended to participate in automatic element tracking. More...
 
class  CallQueue
 A threadsafe queue for bound void(void) functors. More...
 
class  ClassLock
 A synchronisation protection guard employing a lock scoped to the parameter type as a whole, not an individual instance. More...
 
class  Cmdline
 Abstraction of the usual int argc, int** argv-Commandline, to be able to treat it as a vector of strings. More...
 
class  ConstIter
 wrapper to declare exposed values const More...
 
class  CustomAllocator
 Policy: use just plain heap allocations. More...
 
class  DelStash
 Manage a collection of deleter functions. More...
 
class  Depend
 Access point to singletons and other kinds of dependencies. More...
 
class  DependencyFactory
 
class  DiagnosticContext
 Diagnostic data frame to collect specific information concerning a scope. More...
 
class  ElementTracker
 Registry for tracking object instances. More...
 
class  ExtendedSubId
 
class  ExtensibleFilterIter
 Additional capabilities for FilterIter, allowing to extend the filter condition underway. More...
 
class  FamilyMember
 Utility to produce member IDs for objects belonging to a "Family", as defined by a distinguishing type. More...
 
struct  FilterCore
 Implementation of the filter logic. More...
 
class  FilterIter
 Iterator tool filtering pulled data according to a predicate. More...
 
class  Handle
 Generic opaque reference counting handle, for accessing a service and managing its lifecycle. More...
 
struct  HashIndexed
 A Mixin to add a private ID type to the target class, together with storage to hold an instance of this ID, getter and setter, and a templated version of the ID type which can be used to pass specific subclass type info. More...
 
struct  IdentityCore
 A neutral identity-function core, also serving as point-of reference how any core is intended to work. More...
 
class  InPlaceAnyHolder
 Inline buffer to hold and own an object while concealing the concrete type. More...
 
struct  InPlaceAnyHolder_unrelatedTypes
 Alternative policy for accessing the contents without a common interface; use this policy if the intention is to use OpaqueHolder with a family of similar classes, without requiring all of them to be derived from a common base class. More...
 
struct  InPlaceAnyHolder_useCommonBase
 Standard policy for accessing the contents via a common base class interface. More...
 
class  InPlaceBuffer
 Buffer to place and maintain an object instance privately within another object. More...
 
class  IterAdapter
 Adapter for building an implementation of the lumiera forward iterator concept. More...
 
class  IterCursor
 A cursor-like iterator with the ability to switch iteration direction. More...
 
class  IterExplorer
 Adapter for using an Iterator in the way of a Monad This allows to "bind" or "flatMap" a functor, thereby creating a derived version of the iterator, yielding the (flattened) combination of all the results generated by this bound functor. More...
 
struct  IterQueue
 A Queue which can be pulled by iterating. More...
 
class  IterSource
 Iteration source interface to abstract a data source, which then can be accessed through IterAdapter as a frontend, allowing to pull individual elements until exhaustion. More...
 
struct  IterStack
 A Stack which can be popped by iterating. More...
 
class  IterStateWrapper
 Another Lumiera Forward Iterator building block, based on incorporating a state type right into the iterator. More...
 
class  IterTool
 Standard functionality to build up any iterator tool. More...
 
struct  IterType
 Helper for type rewritings: get the element type for an iterator like entity. More...
 
struct  IterType< Iter< TY, CON > >
 
struct  IterType< RangeIter< IT > >
 
class  LinkedElements
 Intrusive single linked list, possibly taking ownership of node elements. More...
 
class  Literal
 inline string literal This is a marker type to handle literally given C-Strings. More...
 
class  Maybe
 A value, which might be unavailable. More...
 
class  NobugResourceHandleContext
 Disabled placeholder for the Diagnostic context, not used in release builds. More...
 
struct  NoInstantiationCount
 Policy: no additional instantiation accounting. More...
 
struct  NullValue
 Singleton holder for NIL or default value objects. More...
 
class  NumIter
 Enumerate all "numbers" within a range. More...
 
class  OpaqueHolder
 Inline buffer to hold and own an object while concealing the concrete type. More...
 
class  OptionalRef
 Optional or switchable link to an existing object. More...
 
class  OrientationIndicator
 
class  P
 Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relationships and ordering operators to the pointee objects. More...
 
class  PlantingHandle
 handle to allow for safe _»remote implantation«_ of an unknown subclass into a given opaque InPlaceBuffer, without having to disclose the concrete buffer type or size. More...
 
class  PolymorphicValue
 Template to build polymorphic value objects. More...
 
class  PtrDerefIter
 wrapper for an existing Iterator type, automatically dereferencing the output of the former. More...
 
class  QueryText
 Syntactical query representation. More...
 
class  RangeIter
 Accessing a STL element range through a Lumiera forward iterator, An instance of this iterator adapter is completely self-contained and allows to iterate once over the range of elements, until pos==end . More...
 
class  RefArray
 Abstraction: Array of const references. More...
 
class  RefArrayTable
 RefArray implementation based on a fixed size array, i.e. More...
 
class  RefArrayVector
 This variation of the wrapper actually is a vector, but can act as a RefArray. More...
 
class  RefArrayVectorWrapper
 Wrap a vector holding objects of a subtype and provide array-like access using the interface type. More...
 
class  Result
 Optional Result value or status of some operation. More...
 
class  Result< void >
 Specialisation for signalling success or failure, without returning any value result. More...
 
class  ScopedCollection
 A fixed collection of noncopyable polymorphic objects. More...
 
class  ScopedHolder
 Inline buffer holding and owning an object similar to unique_ptr. More...
 
class  ScopedPtrHolder
 Extension to std::unique_ptr, allowing copy operations on empty pointers (i.e. More...
 
class  ScopedPtrVect
 Simple vector based collection of pointers, managing lifecycle of the pointed-to objects. More...
 
class  SearchPathSplitter
 Helper: Access a path Specification as a sequence of filesystem Paths. More...
 
class  SimpleAllocator
 Frontend for explicit allocations, using a custom allocator. More...
 
struct  SingletonRef
 Helper template providing singleton access without managing object creation and lifecycle. More...
 
class  SkipRepetition
 Helper: predicate returning true whenever the argument value changes during a sequence of invocations. More...
 
class  SubId
 
class  SubID
 
class  Symbol
 Token or Atom with distinct identity. More...
 
class  SymbolTable
 Table for automatically interned strings. More...
 
class  Sync
 Facility for monitor object based locking. More...
 
class  ThreadLocalPtr
 Thread local pointer without ownership management. More...
 
class  TransformingCore
 Implementation of custom processing logic. More...
 
class  TransformIter
 Iterator tool treating pulled data by a custom transformation (function) More...
 
class  Tree
 A STL-like tree implementation class. More...
 
class  tree_node_
 A node in the tree, combining links to other nodes as well as the actual data. More...
 
class  TypedAllocationManager
 Foundation for a custom allocation manager, tracking the created objects by smart-ptrs. More...
 
class  TypedContext
 Provide type-IDs for a specific context. More...
 
class  TypedCounter
 Utility providing a set of counters, each tied to a specific type. More...
 
class  UniqueMallocOwner
 Ownership token for a piece of heap memory allocated in plain-C style. More...
 
struct  UseInstantiationCounting
 Policy: maintain explicit per type instance count. More...
 
class  Variant
 Typesafe union record. More...
 
class  VariantO
 A variant wrapper (typesafe union) capable of holding a value of any of a bounded collection of types. More...
 
singleton  VerbToken
 Action token implemented by double dispatch to a handler function, as defined in the "receiver" interface (parameter REC). More...
 
class  VerbToken< REC, RET(ARGS...)>
 
class  WrappedLumieraIterator
 Standard implementation of the IterSource interface: a wrapped "Lumiera Forward Iterator". More...
 

Functions

template<class IT , class CON >
void append_all (IT iter, CON &container)
 
template<class IT >
iter_explorer::BreadthFirst< IT > breadthFirst (IT const &srcSeq)
 
template<class TAR >
DependencyFactory::InstanceConstructor buildSingleton ()
 DSL-style marker function for client code to configure the usage of a specific subclass. More...
 
template<class T1 , class T2 >
void constructor (T1 *p, T2 &val)
 
template<class T1 >
void constructor (T1 *p)
 
template<class IT >
iter_explorer::DepthFirst< IT > depthFirst (IT const &srcSeq)
 
template<class T1 >
void destructor (T1 *p)
 
template<typename INT >
NumIter< INT > eachNum (INT start, INT end)
 convenience function to iterate "each number" More...
 
template<typename T >
IterQueue< T > elements (T const &elm)
 convenience free function to build an iterable sequence More...
 
template<typename T >
IterQueue< T > elements (T const &e0, T const &e1)
 
template<typename T >
IterQueue< T > elements (T const &e0, T const &e1, T const &e2)
 
template<typename T >
IterQueue< T > elements (T const &e0, T const &e1, T const &e2, T const &e3)
 
template<typename T >
IterQueue< T > elements (T const &e0, T const &e1, T const &e2, T const &e3, T const &e4)
 
template<class IT >
IterExplorer
< iter_explorer::WrappedSequence
< IT > > 
exploreIter (IT const &srcSeq)
 
template<class IT , typename PRED >
FilterIter< IT > filterIterator (IT const &src, PRED filterPredicate)
 Build a FilterIter: convenience free function shortcut, picking up the involved types automatically. More...
 
template<class IT >
FilterIter< IT > filterRepetitions (IT const &source)
 filters away repeated values emitted by source iterator More...
 
string findExePath ()
 retrieve the location of the executable More...
 
HashVal hash_value (QueryText const &entry)
 support using queries in hashtables. More...
 
size_t hash_value (SubID const &sID)
 
size_t hash_value (Literal literal)
 generate hash value based on the Literal's contents. More...
 
size_t hash_value (Symbol sym)
 hash value for Symbols is directly based on the symbol table entry More...
 
template<class IT >
iter_explorer::ChainedIters< IT > iterChain (IT const &seq)
 
template<class IT >
iter_explorer::ChainedIters< IT > iterChain (IT const &seq1, IT const &seq2)
 
template<class IT >
iter_explorer::ChainedIters< IT > iterChain (IT const &seq1, IT const &seq2, IT const &seq3)
 
template<class IT >
iter_explorer::ChainedIters< IT > iterChain (IT const &seq1, IT const &seq2, IT const &seq3, IT const &seq4)
 
template<class IT >
iter_explorer::ChainedIters< IT > iterChain (IT const &seq1, IT const &seq2, IT const &seq3, IT const &seq4, IT const &seq5)
 
 LUMIERA_ERROR_DECLARE (FILE_NOT_DIRECTORY)
 path element points at a file instead of a directory More...
 
 LUMIERA_ERROR_DEFINE (FILE_NOT_DIRECTORY,"path element points at a file instead of a directory")
 
template<typename X , typename... ARGS>
P< X > makeP (ARGS &&...ctorArgs)
 Helper to create and manage by lib::P. More...
 
template<typename TY1 , typename TY2 , class ALO >
bool operator!= (Allocator_TransferNoncopyable< TY1, ALO > const &, Allocator_TransferNoncopyable< TY2, ALO > const &)
 
bool operator!= (Literal const &s1, Literal const &s2)
 
bool operator!= (Symbol const &s1, Symbol const &s2)
 
bool operator!= (Literal s1, const char *s2)
 
bool operator!= (const char *s1, Literal s2)
 
bool operator!= (Symbol s1, const char *s2)
 
bool operator!= (const char *s1, Symbol s2)
 
bool operator!= (Literal s1, Symbol s2)
 
bool operator!= (Symbol s1, Literal s2)
 
bool operator!= (Literal s1, std::string s2)
 
bool operator!= (std::string s1, Literal s2)
 
bool operator!= (Symbol s1, std::string s2)
 
bool operator!= (std::string s1, Symbol s2)
 
template<class I1 , class I2 >
bool operator!= (PtrDerefIter< I1 > const &il, PtrDerefIter< I2 > const &ir)
 
template<class CX >
bool operator!= (IterTool< CX > const &ito1, IterTool< CX > const &ito2)
 
template<class P1 , class P2 , class CON >
bool operator!= (IterAdapter< P1, CON > const &il, IterAdapter< P2, CON > const &ir)
 
template<class I1 , class I2 >
bool operator!= (AddressExposingIter< I1 > const &il, AddressExposingIter< I2 > const &ir)
 
template<class T1 , class T2 , class ST >
bool operator!= (IterStateWrapper< T1, ST > const &il, IterStateWrapper< T2, ST > const &ir)
 
template<class I1 , class I2 >
bool operator!= (RangeIter< I1 > const &il, RangeIter< I2 > const &ir)
 
template<class I1 , class I2 >
bool operator!= (NumIter< I1 > const &il, NumIter< I2 > const &ir)
 
template<class I1 , class I2 >
bool operator!= (ConstIter< I1 > const &il, ConstIter< I2 > const &ir)
 
std::string operator+ (std::string str, Literal const &sym)
 string concatenation More...
 
std::string operator+ (Literal const &sym, std::string str)
 
bool operator== (SubID const &id1, SubID const &id2)
 
template<typename TY1 , typename TY2 , class ALO >
bool operator== (Allocator_TransferNoncopyable< TY1, ALO > const &, Allocator_TransferNoncopyable< TY2, ALO > const &)
 
bool operator== (Literal const &s1, Literal const &s2)
 
bool operator== (Symbol const &s1, Symbol const &s2)
 
bool operator== (const char *s1, Literal s2)
 
bool operator== (Symbol s1, const char *s2)
 
bool operator== (const char *s1, Symbol s2)
 
bool operator== (Literal s1, Symbol s2)
 
bool operator== (Symbol s1, Literal s2)
 
bool operator== (Literal s1, std::string s2)
 
bool operator== (std::string s1, Literal s2)
 
bool operator== (Symbol s1, std::string s2)
 
bool operator== (std::string s1, Symbol s2)
 
template<class I1 , class I2 >
bool operator== (PtrDerefIter< I1 > const &il, PtrDerefIter< I2 > const &ir)
 Supporting equality comparisons... More...
 
template<class CX >
bool operator== (IterTool< CX > const &it1, IterTool< CX > const &it2)
 
template<class P1 , class P2 , class CON >
bool operator== (IterAdapter< P1, CON > const &il, IterAdapter< P2, CON > const &ir)
 Supporting equality comparisons... More...
 
template<class I1 , class I2 >
bool operator== (AddressExposingIter< I1 > const &il, AddressExposingIter< I2 > const &ir)
 Supporting equality comparisons... More...
 
template<class T1 , class T2 , class ST >
bool operator== (IterStateWrapper< T1, ST > const &il, IterStateWrapper< T2, ST > const &ir)
 Supporting equality comparisons of equivalent iterators (same state type)... More...
 
template<class I1 , class I2 >
bool operator== (RangeIter< I1 > const &il, RangeIter< I2 > const &ir)
 Supporting equality comparisons... More...
 
template<class I1 , class I2 >
bool operator== (NumIter< I1 > const &il, NumIter< I2 > const &ir)
 Supporting equality comparisons... More...
 
template<class I1 , class I2 >
bool operator== (ConstIter< I1 > const &il, ConstIter< I2 > const &ir)
 Supporting equality comparisons... More...
 
template<typename T >
OptionalRef< T > optionalRefTo (T &target)
 
template<class IT >
IT::value_type pull_last (IT iter)
 
string replaceMagicLinkerTokens (string const &src)
 replace $ORIGIN tokens in the given string More...
 
string resolveModulePath (fsys::path moduleName, string searchPath="")
 helper to establish the location to search for loadable modules, configuration files, icons and further resources. More...
 
template<class IT , typename FUN >
auto transformIterator (IT const &src, FUN processingFunc)
 Build a TransformIter: convenience free function shortcut, picking up the involved types automatically. More...
 

Variables

const size_t STRING_MAX_RELEVANT
 safety guard: maximum number of chars to process. More...
 

Typedef Documentation

typedef vector<string> VectS

Definition at line 47 of file cmdline.hpp.

typedef size_t HashVal

a STL compatible hash value

Definition at line 56 of file hash-value.h.

typedef lumiera_uid* LUID

a Lumiera UID

Definition at line 59 of file hash-value.h.

typedef smatch::value_type const& SubMatch

Definition at line 52 of file searchpath.hpp.

typedef size_t IxID

Definition at line 72 of file typed-counter.hpp.


Class Documentation

struct lib::IterType
+ Inheritance diagram for IterType< TY >:
+ Collaboration diagram for IterType< TY >:
struct lib::IterType< Iter< TY, CON > >
Class Members
typedef CON Container
typedef TY ElemType
+ Collaboration diagram for IterType< Iter< TY, CON > >:
class lib::tree_node_
Class Members
tree_node_< T > * parent
tree_node_< T > * first_child
tree_node_< T > * last_child
tree_node_< T > * prev_sibling
tree_node_< T > * next_sibling
T data
+ Collaboration diagram for tree_node_< T >:
singleton lib::VerbToken
+ Collaboration diagram for VerbToken< REC, SIG >:

Function Documentation

DependencyFactory::InstanceConstructor lib::buildSingleton ( )
inline

DSL-style marker function for client code to configure the usage of a specific subclass.

Typically this function is used right within the Constructor call for lib::Depend; this allows to confine the actual service implementation class to a single compilation unit, without the need for clients of the respective service to know the actual concrete implementation class

Definition at line 214 of file dependency-factory.hpp.

bool lib::operator== ( PtrDerefIter< I1 > const &  il,
PtrDerefIter< I2 > const &  ir 
)

Supporting equality comparisons...

Definition at line 216 of file iter-adapter-ptr-deref.hpp.

References PtrDerefIter< IT >::getBase().

Referenced by TreeMutatorBinding_test::mutateCollection().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool lib::operator!= ( PtrDerefIter< I1 > const &  il,
PtrDerefIter< I2 > const &  ir 
)

Definition at line 219 of file iter-adapter-ptr-deref.hpp.

Referenced by TreeMutatorBinding_test::mutateCollection().

+ Here is the caller graph for this function:

bool lib::operator== ( AddressExposingIter< I1 > const &  il,
AddressExposingIter< I2 > const &  ir 
)

Supporting equality comparisons...

Definition at line 325 of file iter-adapter-ptr-deref.hpp.

References AddressExposingIter< IT >::getBase().

+ Here is the call graph for this function:

bool lib::operator!= ( AddressExposingIter< I1 > const &  il,
AddressExposingIter< I2 > const &  ir 
)

Definition at line 328 of file iter-adapter-ptr-deref.hpp.

bool lib::operator== ( IterAdapter< P1, CON > const &  il,
IterAdapter< P2, CON > const &  ir 
)
inline

Supporting equality comparisons...

Definition at line 267 of file iter-adapter.hpp.

References IterAdapter< POS, CON >::pos_.

bool lib::operator!= ( IterAdapter< P1, CON > const &  il,
IterAdapter< P2, CON > const &  ir 
)
inline

Definition at line 270 of file iter-adapter.hpp.

bool lib::operator== ( IterStateWrapper< T1, ST > const &  il,
IterStateWrapper< T2, ST > const &  ir 
)
inline

Supporting equality comparisons of equivalent iterators (same state type)...

Definition at line 397 of file iter-adapter.hpp.

References IterStateWrapper< T, ST >::core_, IterStateWrapper< T, ST >::empty(), and IterStateWrapper< T, ST >::isValid().

+ Here is the call graph for this function:

bool lib::operator!= ( IterStateWrapper< T1, ST > const &  il,
IterStateWrapper< T2, ST > const &  ir 
)
inline

Definition at line 405 of file iter-adapter.hpp.

bool lib::operator== ( RangeIter< I1 > const &  il,
RangeIter< I2 > const &  ir 
)
inline

Supporting equality comparisons...

Definition at line 519 of file iter-adapter.hpp.

References RangeIter< IT >::getPos().

+ Here is the call graph for this function:

bool lib::operator!= ( RangeIter< I1 > const &  il,
RangeIter< I2 > const &  ir 
)
inline

Definition at line 522 of file iter-adapter.hpp.

bool lib::operator== ( NumIter< I1 > const &  il,
NumIter< I2 > const &  ir 
)
inline

Supporting equality comparisons...

Definition at line 627 of file iter-adapter.hpp.

References NumIter< INT >::getPos().

+ Here is the call graph for this function:

bool lib::operator!= ( NumIter< I1 > const &  il,
NumIter< I2 > const &  ir 
)
inline

Definition at line 630 of file iter-adapter.hpp.

NumIter<INT> lib::eachNum ( INT  start,
INT  end 
)
inline

convenience function to iterate "each number"

Definition at line 637 of file iter-adapter.hpp.

Referenced by FormatHelper_test::checkStringify(), and IterAdapter_test::enumerate().

+ Here is the caller graph for this function:

bool lib::operator== ( ConstIter< I1 > const &  il,
ConstIter< I2 > const &  ir 
)
inline

Supporting equality comparisons...

Definition at line 747 of file iter-adapter.hpp.

References ConstIter< IT >::getBase().

+ Here is the call graph for this function:

bool lib::operator!= ( ConstIter< I1 > const &  il,
ConstIter< I2 > const &  ir 
)
inline

Definition at line 750 of file iter-adapter.hpp.

IterExplorer<iter_explorer::WrappedSequence<IT> > lib::exploreIter ( IT const &  srcSeq)
inline

Definition at line 944 of file iter-explorer.hpp.

Referenced by IterExplorer_test::verifyMonadOperator().

+ Here is the caller graph for this function:

iter_explorer::DepthFirst<IT> lib::depthFirst ( IT const &  srcSeq)
inline

Definition at line 952 of file iter-explorer.hpp.

Referenced by HierarchyOrientationIndicator_test::demonstrate_tree_rebuilding(), and IterExplorer_test::verifyDepthFirstExploration().

+ Here is the caller graph for this function:

iter_explorer::BreadthFirst<IT> lib::breadthFirst ( IT const &  srcSeq)
inline

Definition at line 960 of file iter-explorer.hpp.

Referenced by IterExplorer_test::verifyBreadthFirstExploration().

+ Here is the caller graph for this function:

iter_explorer::ChainedIters<IT> lib::iterChain ( IT const &  seq)
inline

Definition at line 969 of file iter-explorer.hpp.

Referenced by IterExplorer_test::verifyChainedIterators().

+ Here is the caller graph for this function:

iter_explorer::ChainedIters<IT> lib::iterChain ( IT const &  seq1,
IT const &  seq2 
)
inline

Definition at line 979 of file iter-explorer.hpp.

iter_explorer::ChainedIters<IT> lib::iterChain ( IT const &  seq1,
IT const &  seq2,
IT const &  seq3 
)
inline

Definition at line 990 of file iter-explorer.hpp.

iter_explorer::ChainedIters<IT> lib::iterChain ( IT const &  seq1,
IT const &  seq2,
IT const &  seq3,
IT const &  seq4 
)
inline

Definition at line 1002 of file iter-explorer.hpp.

iter_explorer::ChainedIters<IT> lib::iterChain ( IT const &  seq1,
IT const &  seq2,
IT const &  seq3,
IT const &  seq4,
IT const &  seq5 
)
inline

Definition at line 1015 of file iter-explorer.hpp.

IterQueue<T> lib::elements ( T const &  e0,
T const &  e1 
)
inline

Definition at line 302 of file iter-stack.hpp.

References IterQueue< TY >::feed().

+ Here is the call graph for this function:

IterQueue<T> lib::elements ( T const &  e0,
T const &  e1,
T const &  e2 
)
inline

Definition at line 309 of file iter-stack.hpp.

References IterQueue< TY >::feed().

+ Here is the call graph for this function:

IterQueue<T> lib::elements ( T const &  e0,
T const &  e1,
T const &  e2,
T const &  e3 
)
inline

Definition at line 316 of file iter-stack.hpp.

References IterQueue< TY >::feed().

+ Here is the call graph for this function:

IterQueue<T> lib::elements ( T const &  e0,
T const &  e1,
T const &  e2,
T const &  e3,
T const &  e4 
)
inline

Definition at line 323 of file iter-stack.hpp.

References IterQueue< TY >::feed().

+ Here is the call graph for this function:

bool lib::operator== ( IterTool< CX > const &  it1,
IterTool< CX > const &  it2 
)
inline

Definition at line 238 of file itertools.hpp.

bool lib::operator!= ( IterTool< CX > const &  ito1,
IterTool< CX > const &  ito2 
)
inline

Definition at line 247 of file itertools.hpp.

FilterIter<IT> lib::filterIterator ( IT const &  src,
PRED  filterPredicate 
)
inline

Build a FilterIter: convenience free function shortcut, picking up the involved types automatically.

Parameters
filterPredicateto be invoked for each source element
Returns
Iterator filtering contents of the source

Definition at line 348 of file itertools.hpp.

Referenced by IterTools_test::buildFilterIterator(), and filterRepetitions().

+ Here is the caller graph for this function:

auto lib::transformIterator ( IT const &  src,
FUN  processingFunc 
)
inline

Build a TransformIter: convenience free function shortcut, picking up the involved types automatically.

Parameters
processingFuncto be invoked for each source element
Returns
Iterator processing the source feed

Definition at line 642 of file itertools.hpp.

Referenced by IterTools_test::buildTransformingIterator(), FormatHelper_test::checkStringJoin(), Record< VAL >::keys(), Record< VAL >::operator std::string(), TestMutationTarget::showContent(), TestMutationTarget::showSrcBuffer(), util::stringify(), lib::iter_source::transform(), and Record< VAL >::vals().

+ Here is the caller graph for this function:

void lib::append_all ( IT  iter,
CON &  container 
)
inline

Definition at line 655 of file itertools.hpp.

Referenced by EngineService::calculate(), PlayProcess::initiate(), ScopePath::navigate(), DiffListGeneration_test::run(), and DispatcherInterface_test::verify_standardDispatcherUsage().

+ Here is the caller graph for this function:

IT::value_type lib::pull_last ( IT  iter)
inline

Definition at line 664 of file itertools.hpp.

Referenced by DispatcherInterface_test::check_ContinuationBuilder(), and IterTools_test::verifyPullLast().

+ Here is the caller graph for this function:

FilterIter<IT> lib::filterRepetitions ( IT const &  source)
inline

filters away repeated values emitted by source iterator

Definition at line 691 of file itertools.hpp.

References filterIterator().

Referenced by lib::iter_source::eachDistinctKey(), and IterTools_test::verify_filterRepetitions().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

OptionalRef<T> lib::optionalRefTo ( T &  target)

Definition at line 152 of file optional-ref.hpp.

P<X> lib::makeP ( ARGS &&...  ctorArgs)
inline

Helper to create and manage by lib::P.

Template Parameters
Xthe type of the new object to create on the heap
Parameters
ctorArgsarbitrary arguments to pass to ctor of X
Returns
managing smart-ptr of type P<X>, holding onto the object just created on the heap.

Definition at line 144 of file p.hpp.

HashVal lib::hash_value ( QueryText const &  entry)

support using queries in hashtables.

Warning
right now (2012) the dummy implementation of QueryText doesn't normalise the query in any way, which makes the generated hash value dependent on the actual textual form used to build the QueryText. This is not how it's intended to work, it should rely on a normalised form after parsing the query definition.

Definition at line 61 of file query-text.cpp.

References QueryText::definition_.

Referenced by SymbolHashtable_test::checkHashFunction(), Symbol_test::checkLiteral(), Symbol_test::checkSymbolCreation(), hash_value(), and QueryText_test::useHashValue().

+ Here is the caller graph for this function:

bool lib::operator== ( Allocator_TransferNoncopyable< TY1, ALO > const &  ,
Allocator_TransferNoncopyable< TY2, ALO > const &   
)
inline

Definition at line 133 of file scoped-holder-transfer.hpp.

bool lib::operator!= ( Allocator_TransferNoncopyable< TY1, ALO > const &  ,
Allocator_TransferNoncopyable< TY2, ALO > const &   
)
inline

Definition at line 138 of file scoped-holder-transfer.hpp.

lib::LUMIERA_ERROR_DEFINE ( FILE_NOT_DIRECTORY  ,
"path element points at a file instead of a directory"   
)
string findExePath ( )

retrieve the location of the executable

helper to figure out the installation directory, as given by the absolute path of the currently executing program

Warning
this is Linux specific code

Definition at line 54 of file searchpath.cpp.

References GET_PATH_TO_EXECUTABLE, and STRING_MAX_RELEVANT.

Referenced by replaceMagicLinkerTokens(), and SearchPathSplitter_test::resolveEmbeddedOriginToken().

+ Here is the caller graph for this function:

string replaceMagicLinkerTokens ( string const &  src)

replace $ORIGIN tokens in the given string

helper to replace all $ORIGIN prefixes in a given string by the directory holding the current executable

Note
also picks ORIGIN, $ORIGIN/, ORIGIN/
Returns
copy with expansions applied

Definition at line 75 of file searchpath.cpp.

References findExePath().

+ Here is the call graph for this function:

string resolveModulePath ( fsys::path  moduleName,
string  searchPath = "" 
)

helper to establish the location to search for loadable modules, configuration files, icons and further resources.

After first trying the moduleName directly, the given search path is walked using the SearchPathSplitter, until encountering an existing file with the given name.

Returns
the absolute pathname of the module file found
Exceptions
error::Configwhen the resolution fails

Definition at line 89 of file searchpath.cpp.

References BuilderDoxygen::exists(), SearchPathSplitter::isValid(), SearchPathSplitter::next(), and TRACE().

Referenced by StyleManager::setTheme().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

lib::LUMIERA_ERROR_DECLARE ( FILE_NOT_DIRECTORY  )

path element points at a file instead of a directory

size_t lib::hash_value ( SubID const &  sID)
inline

Definition at line 89 of file sub-id.hpp.

References hash_value().

+ Here is the call graph for this function:

bool lib::operator== ( SubID const &  id1,
SubID const &  id2 
)
inline

Definition at line 95 of file sub-id.hpp.

size_t hash_value ( Literal  literal)

generate hash value based on the Literal's contents.

This function is intended to be picked up by ADL, and should be usable both with std::hash and <boost/functional/hash.hpp>. It is implemented similar as the boost::hash specialisation for std::string

Definition at line 108 of file symbol-impl.cpp.

References hash, and STRING_MAX_RELEVANT.

size_t hash_value ( Symbol  sym)

hash value for Symbols is directly based on the symbol table entry

Definition at line 124 of file symbol-impl.cpp.

References Literal::c().

+ Here is the call graph for this function:

bool lib::operator== ( Literal const &  s1,
Literal const &  s2 
)
inline

Definition at line 149 of file symbol.hpp.

References Literal::c().

+ Here is the call graph for this function:

bool lib::operator== ( Symbol const &  s1,
Symbol const &  s2 
)
inline
Note
comparison of symbol table entries

Definition at line 150 of file symbol.hpp.

References Literal::c().

+ Here is the call graph for this function:

bool lib::operator== ( const char *  s1,
Literal  s2 
)
inline

Definition at line 154 of file symbol.hpp.

bool lib::operator== ( Symbol  s1,
const char *  s2 
)
inline

Definition at line 155 of file symbol.hpp.

bool lib::operator== ( const char *  s1,
Symbol  s2 
)
inline

Definition at line 156 of file symbol.hpp.

bool lib::operator== ( Literal  s1,
Symbol  s2 
)
inline

Definition at line 157 of file symbol.hpp.

References Literal::c().

+ Here is the call graph for this function:

bool lib::operator== ( Symbol  s1,
Literal  s2 
)
inline

Definition at line 158 of file symbol.hpp.

References Literal::c().

+ Here is the call graph for this function:

bool lib::operator== ( Literal  s1,
std::string  s2 
)
inline

Definition at line 159 of file symbol.hpp.

bool lib::operator== ( std::string  s1,
Literal  s2 
)
inline

Definition at line 160 of file symbol.hpp.

bool lib::operator== ( Symbol  s1,
std::string  s2 
)
inline

Definition at line 161 of file symbol.hpp.

bool lib::operator== ( std::string  s1,
Symbol  s2 
)
inline

Definition at line 162 of file symbol.hpp.

bool lib::operator!= ( Literal const &  s1,
Literal const &  s2 
)
inline

Definition at line 166 of file symbol.hpp.

References Literal::c().

+ Here is the call graph for this function:

bool lib::operator!= ( Symbol const &  s1,
Symbol const &  s2 
)
inline

Definition at line 167 of file symbol.hpp.

References Literal::c().

+ Here is the call graph for this function:

bool lib::operator!= ( Literal  s1,
const char *  s2 
)
inline

Definition at line 168 of file symbol.hpp.

bool lib::operator!= ( const char *  s1,
Literal  s2 
)
inline

Definition at line 169 of file symbol.hpp.

bool lib::operator!= ( Symbol  s1,
const char *  s2 
)
inline

Definition at line 170 of file symbol.hpp.

bool lib::operator!= ( const char *  s1,
Symbol  s2 
)
inline

Definition at line 171 of file symbol.hpp.

bool lib::operator!= ( Literal  s1,
Symbol  s2 
)
inline

Definition at line 172 of file symbol.hpp.

References Literal::c().

+ Here is the call graph for this function:

bool lib::operator!= ( Symbol  s1,
Literal  s2 
)
inline

Definition at line 173 of file symbol.hpp.

References Literal::c().

+ Here is the call graph for this function:

bool lib::operator!= ( Literal  s1,
std::string  s2 
)
inline

Definition at line 174 of file symbol.hpp.

bool lib::operator!= ( std::string  s1,
Literal  s2 
)
inline

Definition at line 175 of file symbol.hpp.

bool lib::operator!= ( Symbol  s1,
std::string  s2 
)
inline

Definition at line 176 of file symbol.hpp.

bool lib::operator!= ( std::string  s1,
Symbol  s2 
)
inline

Definition at line 177 of file symbol.hpp.

std::string lib::operator+ ( std::string  str,
Literal const &  sym 
)
inline

string concatenation

Definition at line 183 of file symbol.hpp.

std::string lib::operator+ ( Literal const &  sym,
std::string  str 
)
inline

Definition at line 190 of file symbol.hpp.

void lib::constructor ( T1 *  p,
T2 &  val 
)

Definition at line 67 of file tree.hpp.

Referenced by Tree< T, tree_node_allocator >::append_child(), Tree< T, tree_node_allocator >::insert(), Tree< T, tree_node_allocator >::insert_after(), Tree< T, tree_node_allocator >::prepend_child(), and Tree< T, tree_node_allocator >::replace().

+ Here is the caller graph for this function:

void lib::constructor ( T1 *  p)

Definition at line 73 of file tree.hpp.

void lib::destructor ( T1 *  p)

Definition at line 79 of file tree.hpp.

Referenced by Tree< T, tree_node_allocator >::erase(), Tree< T, tree_node_allocator >::erase_children(), and Tree< T, tree_node_allocator >::replace().

+ Here is the caller graph for this function:

Variable Documentation

const size_t STRING_MAX_RELEVANT

safety guard: maximum number of chars to process.

For comparisons, hash calculations etc., when dealing with raw char ptrs (typically literal values)

Definition at line 58 of file symbol-impl.cpp.

Referenced by SymbolHashtable_test::checkHashFunction(), findExePath(), and hash_value().