Data_deduplication_service
Service that will use hashes to deduplicate files
timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter > Class Template Reference

Clock array template class. More...

#include <clockArray.h>

Classes

struct  timeStore
 

Public Member Functions

void reset ()
 
void tik (const std::source_location &location=std::source_location::current())
 
void tak (const std::source_location &location=std::source_location::current())
 
locationType tikLoc (const std::source_location &location=std::source_location::current())
 
std::pair< std::source_location, locationTypetikPair (const std::source_location &location=std::source_location::current())
 
decltype(auto) begin () const
 
decltype(auto) end () const
 
auto cbegin () const
 
auto cend () const
 
auto & operator[] (const locationType &loc)
 
bool contains (const locationType &loc) const
 

Friends

std::ostream & operator<< (std::ostream &out, const clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter > &ts)
 

Detailed Description

template<typename OutType, typename inType, inType(*)() timeGetter, locationType(*)(std::source_location location) sourceTypeConverter, OutType(*)(inType curr, inType prev) timeConverter>
class timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >

Clock array template class.

Template Parameters
OutTypedouble type tha will be printed
inTypeType that timeGetter return
timeGetterfunction that return current time
sourceTypeConverterfunction that converts source location to inner representation of it
timeConvertera function that casts time difference to type

Member Function Documentation

◆ begin()

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location location) sourceTypeConverter, OutType(*)(inType curr, inType prev) timeConverter>
decltype(auto) timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >::begin ( ) const
inline

◆ cbegin()

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location location) sourceTypeConverter, OutType(*)(inType curr, inType prev) timeConverter>
auto timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >::cbegin ( ) const
inline

◆ cend()

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location location) sourceTypeConverter, OutType(*)(inType curr, inType prev) timeConverter>
auto timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >::cend ( ) const
inline

◆ contains()

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location location) sourceTypeConverter, OutType(*)(inType curr, inType prev) timeConverter>
bool timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >::contains ( const locationType loc) const
inline

◆ end()

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location location) sourceTypeConverter, OutType(*)(inType curr, inType prev) timeConverter>
decltype(auto) timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >::end ( ) const
inline

◆ operator[]()

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location location) sourceTypeConverter, OutType(*)(inType curr, inType prev) timeConverter>
auto& timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >::operator[] ( const locationType loc)
inline

◆ reset()

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location) sourceTypeConverter, OutType(*)(inType, inType) timeConverter>
requires std::is_floating_point_v< OutType > or std::is_integral_v< OutType > void timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >::reset

Resets timers and converted double values

◆ tak()

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location) sourceTypeConverter, OutType(*)(inType, inType) timeConverter>
requires std::is_floating_point_v< OutType > or std::is_integral_v< OutType > void timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >::tak ( const std::source_location &  location = std::source_location::current())

Finishes timing for specified section and calculation double value for time

Parameters
location
+ Here is the caller graph for this function:

◆ tik()

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location) sourceTypeConverter, OutType(*)(inType, inType) timeConverter>
requires std::is_floating_point_v< OutType > or std::is_integral_v< OutType > void timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >::tik ( const std::source_location &  location = std::source_location::current())

This function starts new calculation section

Parameters
locationsource location of calle
Attention
You must mirror every tik like call with tak()
+ Here is the caller graph for this function:

◆ tikLoc()

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location location) sourceTypeConverter, OutType(*)(inType curr, inType prev) timeConverter>
locationType timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >::tikLoc ( const std::source_location &  location = std::source_location::current())
inline

This function returns it's source location to chain several compute sections into one.

Example:

auto source =clk.tikLoc();

some_func();

clk.tak();

someOtherFunc();

clk.tik(source);

some_func();

clk.tak();

Parameters
location
Returns
source location

◆ tikPair()

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location location) sourceTypeConverter, OutType(*)(inType curr, inType prev) timeConverter>
std::pair<std::source_location, locationType> timing::clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter >::tikPair ( const std::source_location &  location = std::source_location::current())
inline
Parameters
location
Returns
pair of std::source_location, location_type

Friends And Related Function Documentation

◆ operator<<

template<typename OutType , typename inType , inType(*)() timeGetter, locationType(*)(std::source_location location) sourceTypeConverter, OutType(*)(inType curr, inType prev) timeConverter>
std::ostream& operator<< ( std::ostream &  out,
const clockArray< OutType, inType, timeGetter, sourceTypeConverter, timeConverter > &  ts 
)
friend

The documentation for this class was generated from the following file: