2013-03-10 Kirit Saelensminde Added the ability to set the log message module when using the logging DSL through a new `.module()` member on the log message builder. `fostlib::absorbException` has been deprecated in favour of `fostlib::absorb_exception`. `fostlib::replaceAll` has been deprecated in favour of `fostlib::replace_all`. 2013-03-03 Kirit Saelensminde Changed a couple of exceptions to put extended data into the JSON data rather than the free form text. 2013-03-03 Kirit Saelensminde Changed the `what()` implementation of `fostlib::exceptions::exception` to no longer write out more than one line (unless the info member of the exception does so). Also removed the settings for controlling the format of the `what()` string. 2013-02-23 Kirit Saelensminde Implemented better error detail for when a JSON array is accessed out of bounds. 2013-02-23 Kirit Saelensminde Refactored `FSL_CHECK_NEQ` so that it only evaluates it's arguments once. 2013-02-22 Kirit Saelensminde Moved the file specific functions into their own header. Now include `fost/file` rather than `fost/unicode` if you only need file handling APIs. Also added a `unique_filename` function suitable for generating temporary file names. 2013-02-08 Kirit Saelensminde Add a `directory_iterator` typedef which allows us to iterate over wpath based directory names across all supported versions of Boost. 2013-02-05 Kirit Saelensminde Initial simple progress meters allow progress from remote threads to be measured in a control thread. 2013-01-13 Kirit Saelensminde Implemented the file input operator for the `digester` so it is now possible to hash files on the file system. 2012-11-23 Kirit Saelensminde Added Boost Chrono to builds on Windows for Boost 1.47 and later. 2012-11-16 Kirit Saelensminde Removed the `workerqueue` as it doesn't do anything useful that a work pool doesn't already do. 2012-08-17 Kirit Saelensminde Removed a dead constructor that does nothing in `worker`. No longer pass on log messages captured during tests. This stops expected errors from being displayed and confusing the test results. Added a basic parser for the RFC1123 formatted dates used in protocols like SMTP and HTTP. Only the format produced by the Fost libraries is currently supported. 2012-08-08 Kirit Saelensminde The parser lock is now recursive. This means that we can be more aggressive about using it without causing deadlocks. Also removed the parser wrapper that doesn't take a lock so all uses are explicitly forced to acquire the lock at the right time. 2012-08-04 Kirit Saelensminde Deliberately leak the thread counter so that it can't be destructed before threads that are terminating in a global destructor get run. 2012-08-03 Kirit Saelensminde Added instrumentation for the number of worker threads in use. Also added decrement to the counter implementation. Fixed a bug on Windows where the pre-increment would return the old value rather than the new one. Dynamic loading of a library now tries with platform specific prefixes and suffixes before trying the name provided. 2012-08-02 Kirit Saelensminde Implement JSON casts for json::array_t and json::object_t. Allow the use of constant workers (and in_proc) which makes certain thread wrappers more obvious to implement. Implement futures with void type for worker and in_proc. We can still wait on them. Added startswith and endswith members to the string class. 2012-07-22 Kirit Saelensminde Allow time stamps and time differences to be added and subtracted. 2012-07-21 Kirit Saelensminde Made time stamps comparable and also added in a new timediff implementation based on the Boost library version. 2012-07-02 Kirit Saelensminde Silenced a clang warning that turns up under some circumstances. 2012-06-30 Kirit Saelensminde Added configuration for the log level for the stdout global logger. 2012-05-26 Kirit Saelensminde Changed the logging DSL for logging JSON objects thanks to suggestions from jeroen Vermeulen. 2012-04-16 Kirit Saelensminde Finally implemented the decode portion of base 64 support. Implemented a new logging DSL that makes it much simpler to create JSON objects in the log. Look at fost-base/Cpp/fost-core/log-tests.cpp for an example. 2012-04-08 Kirit Saelensminde Fixed up a problem where the crypto++ library wasn't installing properly on Windows. 2012-04-07 Kirit Saelensminde Renamed the fostlib::logging namespace to fostlib::log to make it shorter. 2012-03-03 Kirit Saelensminde Added coercions from fostlib::utf8_string.to std::vector. Fixed up the JSON and string representations of the timestamps so they are more ISO like and have an explicit UTC time zone. 2012-03-02 Kirit Saelensminde Added coercions between fostlib::json and fostlib::jcursor. 2012-02-12 Kirit Saelensminde Made some minor changes suggested by clang, including some dead code elimination. 2012-01-30 Kirit Saelensminde MSVC 10 supports stdint.h so changed the configuration to use that. 2012-01-28 Kirit Saelensminde Fixed up the fost-exe build target type so the fost-cli library is properly installed. 2012-01-25 Kirit Saelensminde Explicitly initialise some variables that were set before being returned in order to silence a compiler warning. 2012-01-24 Kirit Saelensminde The parser lock can now be acquired before the parse is called so that it can be used to cover the building of the parser. 2012-01-15 Kirit Saelensminde Allow the logging functions to take up to four arguments. Allow string concatenation expressions with a narrow character literal to the left. 2012-01-09 Kirit Saelensminde Altered the internal cryptographic wrappers to use crypto++ instead of OpenSSL. 2011-10-27 Kirit Saelensminde Changed the unit testing so that it doesn't build a library any more. Refactored some build parameters to remove repetition. 2011-10-27 Kirit Saelensminde Changed the unit test runner so that it displays the output of the test run as we need to see this in order to verify that the tests do actually run. 2011-10-22 Kirit Saelensminde Clear out the jobs that have been taken from the queue when a major problem occurs. This should help to stop threads waiting on futures from waiting forever. 2011-10-21 Kirit Saelensminde Added fostlib::bytes for calculating the size of a memory block in bytes. 2011-10-09 Kirit Saelensminde Updated the readme files for later versions of Ubuntu. 2011-08-16 Kirit Saelensminde Changed some test logging messages so they don't look like real errors any more. 2011-07-28 Kirit Saelensminde Added support for Boost 1.46. 2011-04-10 Kirit Saelensminde Added a time logging function that logs any individual test that takes more than ten seconds to run. Added a timer to the datetime library which allows us to time how long parts of a program execution take. 2011-04-09 Kirit Saelensminde The insert functions for JSON values now use a coerce rather than a JSON constructor so the API will work with more data types. 2011-03-11 Kirit Saelensminde Updated the build system so that there is a new fost-integration-test target that will create a test executable that can be run at any later stage as well as run the tests during the build process. 2011-03-04 Kirit Saelensminde The jcursor constructor can now take up to four arguments and build a cursor path from them. 2011-02-10 Kirit Saelensminde JSON to JSON coercions are now supported and logging now accepts any parameter type which is coercable to JSON. 2010-11-16 Kirit Saelensminde Added a new basic logging library. 2010-11-09 Kirit Saelensminde The build system now supports installation based on the location set in the PREFIX envrionment variable. If the path is relative then it is relative to the location of the Jamroot file that is being built. 2010-11-05 Kirit Saelensminde Added a wrapper function for boost::spirit::parse which grabs a mutex forcing serialisation of the use of the parser to get around a threading bug in Spirit. 2010-11-02 Kirit Saelensminde Catching of incorrect exceptions in tests now shows the full text of the caught exception. 2010-10-01 Kirit Saelensminde Improved the display of exceptions by forcing them to use printOn. 2010-09-26 Kirit Saelensminde fostlib::string instances are now constructible from a wider range of iterators, including fostlib::string::const_iterator. 2010-09-19 Kirit Saelensminde Fixed a bug in coercion when going between nullable types. 2010-09-17 Kirit Saelensminde Data handling - Started to add in insert for JSON containers 2010-08-15 Kirit Saelensminde Data handling - Started adding a push_back function that allows consistent pushing back of data across a wide range of types. Currently supports std::list, std::vector and fostlib::json. 2010-04-28 Kirit Saelensminde Threading - Added accessors to future so that we can see if there is an exception or a if future (result) is available. 2010-04-28 Kirit Saelensminde Basic library handling - Added fost/relops.hpp and started to use it to remove a lot of duplicated code. 2010-04-28 Kirit Saelensminde Logging - Added a YAML record class for outputting YAML log records. 2010-04-06 Kirit Saelensminde Parsers - Removed the parser instances because they're not thread safe. 2010-04-01 Kirit Saelensminde Exception handling - Allow us to throw not implemented exceptions based on Boost system errors. 2010-03-29 Kirit Saelensminde String handling - Added coercion from string::hex_string to std::size_t 2010-03-22 Kirit Saelensminde ChangeLog - Added ChangeLog