Skip to content
Snippets Groups Projects
PrimitiveRegistrator.cpp 2.7 KiB
Newer Older
/*
 * PrimitiveRegistrator.cpp
 *
 *  Created on: 11. 7. 2017
 *	  Author: Jan Travnicek
 */

#include <abstraction/CastRegistry.hpp>
#include <abstraction/NormalizeRegistry.hpp>
#include <abstraction/ValuePrinterRegistry.hpp>
#include <abstraction/ImmediateRegistry.hpp>
#include <abstraction/ContainerRegistry.hpp>

#include <primitive/Double.h>
#include <primitive/Integer.h>
#include <primitive/Unsigned.h>
#include <primitive/Bool.h>
#include <primitive/UnsignedLong.h>
#include <primitive/String.h>

#include <object/Object.h>

class PrimitiveRegistrator {
	PrimitiveRegistrator ( ) {
		abstraction::CastRegistry::registerCast < double, int > ( );
		abstraction::CastRegistry::registerCast < int, double > ( );
		abstraction::CastRegistry::registerCastAlgorithm < std::string, int > ( ext::to_string );
		abstraction::CastRegistry::registerCastAlgorithm < int, std::string > ( ( int ( * ) ( std::string ) ) ext::from_string < int > );
		abstraction::CastRegistry::registerCast < bool, int > ( );
		abstraction::CastRegistry::registerCastAlgorithm < bool, std::string > ( ( bool ( * ) ( std::string ) ) ext::from_string < bool > );
		abstraction::CastRegistry::registerCastAlgorithm < unsigned, std::string > ( "unsigned", ext::to_string < std::string > ( ), ( unsigned ( * ) ( std::string ) ) ext::from_string < unsigned > );
		abstraction::CastRegistry::registerCastAlgorithm < double, std::string > ( ( double ( * ) ( std::string ) ) ext::from_string < double > );
		abstraction::CastRegistry::registerCast < size_t, int > ( "size_t", ext::to_string < int > ( ) );
		abstraction::CastRegistry::registerCast < size_t, int > ( );
		abstraction::CastRegistry::registerCast < int, size_t > ( );
		abstraction::CastRegistry::registerCast < int, primitive::Integer > ( );

		abstraction::ContainerRegistry::registerSet < int > ( );

		abstraction::ValuePrinterRegistry::registerValuePrinter < int > ( );
Jan Trávníček's avatar
Jan Trávníček committed
		abstraction::ValuePrinterRegistry::registerValuePrinter < unsigned > ( );
		abstraction::ValuePrinterRegistry::registerValuePrinter < double > ( );
		abstraction::ValuePrinterRegistry::registerValuePrinter < std::string > ( );
		abstraction::ValuePrinterRegistry::registerValuePrinter < void > ( );
		abstraction::ValuePrinterRegistry::registerValuePrinter < bool > ( );

		abstraction::ImmediateRegistry::registerImmediate < int > ( );
		abstraction::ImmediateRegistry::registerImmediate < std::string > ( );

		abstraction::ValuePrinterRegistry::registerValuePrinter < alib::Object > ( );
		abstraction::ValuePrinterRegistry::registerValuePrinter < ext::set < alib::Object > > ( );
		abstraction::ContainerRegistry::registerSet < alib::Object > ( );
auto primitiveRegistrator = PrimitiveRegistrator ( );