Fawkes API
Fawkes Development Version
|
The Fawkes Core Library includes core components that are required to write basic fawkes plugins. More...
![]() |
Classes | |
class | fawkes::LockPtr< T_CppObject > |
LockPtr<> is a reference-counting shared lockable smartpointer. More... | |
class | fawkes::RefPtr< T_CppObject > |
RefPtr<> is a reference-counting shared smartpointer. More... | |
class | fawkes::Exception |
Base class for exceptions in Fawkes. More... | |
class | fawkes::Plugin |
Plugin interface class. More... | |
class | fawkes::Mutex |
Mutex mutual exclusion lock. More... | |
class | fawkes::MutexLocker |
Mutex locking helper. More... | |
class | fawkes::ReadWriteLock |
Read/write lock to allow multiple readers but only a single writer on the resource at a time. More... | |
class | fawkes::RecursiveMutex |
Recursive mutex. More... | |
class | fawkes::RefCountRWLock |
Read/write lock with reference counting. More... | |
class | fawkes::ScopedRWLock |
Scoped read/write lock. More... | |
class | fawkes::Spinlock |
Spin lock. More... | |
class | fawkes::Thread |
Thread class encapsulation of pthreads. More... | |
class | fawkes::WaitCondition |
Wait until a given condition holds. More... | |
class | fawkes::CircularBuffer< Type > |
Circular buffer with a fixed size. More... | |
class | fawkes::LockHashMap< KeyType, ValueType, HashFunction, EqualKey > |
Hash map with a lock. More... | |
class | fawkes::LockHashSet< KeyType, HashFunction, EqualKey > |
Hash set with a lock. More... | |
class | fawkes::LockList< Type > |
List with a lock. More... | |
class | fawkes::LockMap< KeyType, ValueType, LessKey > |
Map with a lock. More... | |
class | fawkes::LockMultiMap< KeyType, ValueType, LessKey > |
Multi-Map with a lock. More... | |
class | fawkes::LockQueue< Type > |
Queue with a lock. More... | |
class | fawkes::LockSet< KeyType, LessKey > |
Set with a lock. More... | |
class | fawkes::LockVector< Type > |
Vector with a lock. More... | |
class | fawkes::RefCount |
Reference counting base class. More... | |
class | fawkes::RWLockList< Type > |
List with a read/write lock. More... | |
class | fawkes::RWLockMap< KeyType, ValueType, LessKey > |
Hash map with a lock. More... | |
class | fawkes::RWLockQueue< Type > |
Queue with a read/write lock. More... | |
class | fawkes::RWLockVector< Type > |
Vector with a lock. More... | |
The Fawkes Core Library includes core components that are required to write basic fawkes plugins.
This is the lowest level in the Fawkes library stack and must not depend on any other libraries besides glibc and system calls.
The Fawkes Core Library provides several basic features needed by the rest of the software like:
In most cases if you look for a place to put you code you are wrong here in the core library. You must really know what you are doing. If in doubt ask Tim Niemueller for decision making help for this. In general if you thought you should add something to core it is likely that the right place is somewhere in the Fawkes Utility Library.
You will note that here is also an utils directory which may make you think even more that you want to put your code here. But the utils is only meant to host utilities that are
The exceptions directory is not a general place to put your exceptions. It is only meant to serve as a repository of generic exceptions that are likely to be re-used all over the software. On the one hand these are system exceptions which are mainly applicable if the error was indicated or described via the usage of errno. On the other hand these are generic software construction exceptions like null pointer exceptions.
Rule of thumb: Use Fawkes Core Library, don't hack it.