Fawkes API  Fawkes Development Version
Fawkes Core Library

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. More...

Collaboration diagram for Fawkes Core Library:

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
 
class  fawkes::Plugin
 
class  fawkes::Mutex
 
class  fawkes::MutexLocker
 
class  fawkes::ReadWriteLock
 
class  fawkes::RecursiveMutex
 
class  fawkes::RefCountRWLock
 
class  fawkes::ScopedRWLock
 
class  fawkes::Spinlock
 
class  fawkes::Thread
 
class  fawkes::WaitCondition
 
class  fawkes::CircularBuffer< Type >
 
class  fawkes::LockHashMap< KeyType, ValueType, HashFunction, EqualKey >
 
class  fawkes::LockHashSet< KeyType, HashFunction, EqualKey >
 
class  fawkes::LockList
 
class  fawkes::LockMap< KeyType, ValueType, LessKey >
 
class  fawkes::LockMultiMap< KeyType, ValueType, LessKey >
 
class  fawkes::LockQueue< Type >
 
class  fawkes::LockSet< KeyType, LessKey >
 
class  fawkes::LockVector< Type >
 
class  fawkes::RefCount
 
class  fawkes::RWLockList< Type >
 
class  fawkes::RWLockMap< KeyType, ValueType, LessKey >
 
class  fawkes::RWLockQueue< Type >
 
class  fawkes::RWLockVector< Type >
 

Detailed Description

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.