rainlabs / cpp-everyday

c++ active record, logging, configuration classes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

C++ classes for use everyday

init active record classes

README in progress...

common classes

Include all: #include "common.hpp"

  • Configuration #include "common/include/configuration.hpp"
  • HashConfiguration #include "common/include/hash_configuration.hpp"
  • Logger #include "common/include/logger.hpp"
  • DaemonLogger #include "common/include/daemon_logger.hpp"
  • Singleton #include "common/include/singleton.hpp"

*Don't forget add .cpp files to your Makefile

  • common/src/logger.cpp
  • common/src/daemon_logger.cpp

Configuration

Common class for configuration files. Load string lines from file and get formatted values.

HashConfiguration

Class for load hash values from configuration file (extend Configuration).

Logger

Common class for logging messages with 4 log levels: INFO, WARNING, ERROR, DEBUG. Write process run in other thread.

DaemonLogger

Class for logging long time (extend Logger). Created path for every day, when program running and place in this path target log file.

Singleton

Simple template of Singleton.

Simple example

#include <iostream>
#include "common.hpp"

int main(int argc, char** argv)
{
    rainlabs::DaemonLogger log("data");
    //log.enableDebug(true);
    rainlabs::HashConfiguration<int, atoi> simple_config("data/config.txt", &log);
    simple_config.load();
    log.info("test message");
    log.warning("warn text");
    printf("bla: %i\n", simple_config["bla"]);
    getchar();
    return 0;
}

Using template "Singleton"

#include "cpp-everyday/common.hpp"

class SomeClass : public rainlabs::Singleton<SomeClass>
{
public:

    /**
     * ...
     * some code
     */

protected:

    /**
     * ...
     * some code
     */

    friend class rainlabs::Singleton <SomeClass>;
private:
    SomeClass();
    ~SomeClass();
};


int main(int* argc, char** argv)
{
    SomeClass::getInstance()->someMethod();
    return 0;
}

About

c++ active record, logging, configuration classes

License:GNU General Public License v2.0


Languages

Language:C++ 100.0%