-
Notifications
You must be signed in to change notification settings - Fork 1
Home
This library (a.k.a. CoreLibrary) is a collection of useful C++1x utility classes and functions to assist with multi-threading, logging, networking, custom exceptions, file utilities, INI files, serialization, sorting, string utilities and so on. In other words a collection of code for general purpose use that is very helpful in many different C++ coding projects.
The code makes use of modern C++1x features, as well as templates and traditional object orientated techniques.
Here is a list of the current sub-libraries within this project.
- ASIO: TCP clients and servers, UDP senders and recievers, multicast senders and recievers, variuos definitions, types and utilities.
- CSV Grid: Classes to load CSV files into memory in a grid like structure and manipulate their contents and save back to disk. Includes specialisations for CSV files containing purely numerical contents.
- Debug Log: Classes and macros to provide in-app debog log files using multi-threading, as well as a log as a singleton. Can also define custom formatter class to control look and feel of the log files.
- Exceptions: Base class from which to derive custom exceptions that interface with standard and Boost excpetions.
- File Utilities: Functions providing file and directory utilities, such as recursive searching, batch copying etc.
- INI Files: Utility classes to load INI files into memory, easily manipulate the contents and save back to disk.
- Serialisation: Utility functions and classes to simplify serialisation using either POD objects, Cereal serialisable objects or Google ptocol buffers.
- Sorting: Generic implementaions of several sorting algorithms, more for demonstrative purposes than actual use.
- String Utilities: Various string related convenience utility functions for string formatting and conversion.
- Threads: Useful threading utility classes providing threaded base class, message queue thread, event triggered thread, as well as thread group management, thread-safe queue and a bounded buffer.
If you find any of this code useful and use it in your software or take parts of it to base your own work on then please give credit and respect the licence.
All the code included in this project is licensed under the terms of LGPL 3.0 and the relevant documentation for this can be found at the top of each source file and in the LICENSE text file.
The code is the work of me (Duncan Crutchley) ([email protected]).
Copyright (C) 2014 onwards, Duncan Crutchley.