The clanCore library is the base library used by all other ClanLib libraries. It provides a basic framework with common functionality needed by almost all types of applications.
Platform abstraction
-
clan::System - General system helper functions
-
clan::Thread, clan::Runnable - Threading support
-
clan::Mutex, clan::MutexSection - Simple mutex support
-
clan::InterlockedVariable - Atomic integer operations
-
clan::Event - OS level waitable event
-
clan::RegistryKey - C++ class for accessing the Windows registry
-
clan::ComPtr - Smart pointer template for Component Object Model (COM) objects
General utility classes
Thread run-loop
-
clan::KeepAlive - Application loop helper
-
clan::KeepAliveObject - Interface for objects participating in the thread keep-alive processing loop
-
clan::Timer - Timer class that invokes a callback on a specified interval
Signals
Math
-
clan::VecXx (clan::Vec4i, clan::Vec3f, clan::Vec2ub, etc) - Vector templates for 2D, 3D and 4D
-
clan::HalfFloat, clan::VecXhf - Half-float converters
-
clan::MatXx (clan::Mat4f, clan::Mat3f, etc) - Matrix templates
-
clan::Quaternionf, clan::Quaterniond - Quaternion rotation/orientation classes
-
clan::Rect, clan::Rectf, clan::Rectd - 2D (left,top,right,bottom) rectangle structure
-
clan::Point, clan::Pointf, clan::Pointd - 2D (x,y) point structure
-
clan::Size, clan::Sizef, clan::Sized - 2D (width,height) size structure
Text
All strings are assumed to be UTF-8, unless otherwise specified. std::string is used as the main string class.
XML
JSON
The clan::JsonValue class allows you to parse or generate JSON strings.
I/O devices
-
clan::IODevice - Input/Output stream abstraction
-
clan::File - Class for opening files
-
clan::IODevice_Memory - IODevice for memory buffers
-
clan::PipeConnection - IODevice for pipes
-
clan::PipeListen - Accepts incoming pipe connections
File systems
Zip files
Resource management
Crypto
Error reporting