#ifndef TRLOG_H
#define TRLOG_H

#include <trng_core.h>

enum TRLogEnum
{
    pFILE,
    aFILE,
    FILE_NUMBER_OF_LOGS
};

class TRLog
{
public:
    void start(LPCSTR file_name, TRLogEnum type);
    void end(TRLogEnum type);

    void                      basic(LPCSTR text, TRLogEnum type);
    void                      basic(LPCSTR text);
    template<class C>    void for_class(LPCSTR text, C value, TRLogEnum type);
    template<class C>    void for_class(LPCSTR text, C value);
    template<typename N> void for_value(LPCSTR text, N value, TRLogEnum type);
    template<typename N> void for_value(LPCSTR text, N value);
};

template<class C>
inline void TRLog::for_class(LPCSTR text, C value, TRLogEnum type)
{

}

template<class C>
inline void TRLog::for_class(LPCSTR text, C value)
{

}

template<typename N>
inline void TRLog::for_value(LPCSTR text, N value, TRLogEnum type)
{

}

template<typename N>
inline void TRLog::for_value(LPCSTR text, N value)
{

}

extern TRLog logger;

#endif
