@ -3,6 +3,10 @@
# ifdef __cplusplus
# include <cstdint>
# include <cstddef>
# include <string_view>
# include <string>
# include <functional>
# include <any>
# else
# include <stdint.h>
# include <stddef.h>
@ -11,18 +15,147 @@
# include "sl/strategies.h"
/**
* @ brief represents a buffer strategy , generally as an obscure pointer
*/
struct sl_buffer_strategy ;
/**
* @ brief represents a sink strategy , generally as an obscure pointer
*/
struct sl_sink_strategy ;
/**
* @ brief represents an overflow strategy , generally as an obscure pointer
*/
struct sl_overflow_strategy ;
/**
* @ brief represents an output strategy , generally as an obscure pointer
*/
struct sl_output_strategy ;
# ifdef __cplusplus
namespace sl {
/**
* @ brief represents a c - style buffer strategy
*/
using buffer_strategy = sl_buffer_strategy ;
/**
* @ brief represents a c - style sink strategy
*/
using sink_strategy = sl_sink_strategy ;
/**
* @ brief represents a c - style overflow strategy
*/
using overflow_strategy = sl_overflow_strategy ;
/**
* @ brief represents a c - style output strategy
*/
using output_strategy = sl_output_strategy ;
}
template < BufferStrategy b_strategy_t , SinkStrategy s_strategy_t , OverflowStrategy over_strategy_t , OutputStrategy out_strategy_t >
void register_log ( std : : string_view buffer_filename , uint64_t buffer_size , uint64_t out_strategy_parameter , std : : string_view output_directory ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyDirect , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyDirect , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyDirect , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyDirect , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyDirect , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyDirect , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyFastest , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyFastest , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyFastest , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyFastest , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyFastest , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyFastest , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyMmaped , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyMmaped , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyMmaped , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyMmaped , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyMmaped , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyMmaped , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyExternal , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyExternal , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyExternal , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyExternal , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyExternal , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyInternal , SinkStrategyExternal , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyDirect , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyDirect , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyDirect , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyDirect , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyDirect , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyDirect , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyFastest , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyFastest , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyFastest , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyFastest , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyFastest , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyFastest , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyMmaped , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyMmaped , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyMmaped , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyMmaped , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyMmaped , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyMmaped , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyExternal , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyExternal , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyExternal , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyExternal , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyExternal , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyShared , SinkStrategyExternal , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyDirect , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyDirect , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyDirect , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyDirect , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyDirect , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyDirect , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyFastest , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyFastest , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyFastest , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyFastest , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyFastest , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyFastest , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyMmaped , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyMmaped , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyMmaped , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyMmaped , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyMmaped , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyMmaped , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyExternal , OverflowStrategyWait , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyExternal , OverflowStrategyWait , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyExternal , OverflowStrategyWait , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyExternal , OverflowStrategyContinue , OutputStrategyTimed > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyExternal , OverflowStrategyContinue , OutputStrategySized > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
template < > void register_log < BufferStrategyExternal , SinkStrategyExternal , OverflowStrategyContinue , OutputStrategySimple > ( std : : string_view , uint64_t , uint64_t , std : : string_view ) ;
# else
typedef struct sl_buffer_strategy sl_buffer_strategy ;
typedef struct sl_sink_strategy sl_sink_strategy ;