Skip to content
Snippets Groups Projects
PrimitiveRegistrator.cpp 3.31 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*
     * PrimitiveRegistrator.cpp
     *
     *  Created on: 11. 7. 2017
     *	  Author: Jan Travnicek
     */
    
    
    #include <abstraction/CastRegistry.hpp>
    #include <abstraction/XmlFileWriterRegistry.hpp>
    
    #include <abstraction/XmlParserRegistry.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 <container/ObjectsVector.h>
    #include <container/ObjectsSet.h>
    
    namespace abstraction {
    
    
    class PrimitiveRegistrator {
    
    	PrimitiveRegistrator ( ) {
    
    		abstraction::CastRegistry::registerCast < double, int > ( false );
    		abstraction::CastRegistry::registerCast < int, double > ( false );
    
    		abstraction::CastRegistry::registerCastAlgorithm < std::string, int > ( ext::to_string, false );
    
    		abstraction::CastRegistry::registerCastAlgorithm < int, std::string > ( ( int ( * ) ( std::string ) ) ext::from_string < int >, false );
    
    		abstraction::CastRegistry::registerCast < bool, int > ( false );
    
    		abstraction::CastRegistry::registerCastAlgorithm < bool, std::string > ( ( bool ( * ) ( std::string ) ) ext::from_string < bool >, false );
    
    		abstraction::CastRegistry::registerCastAlgorithm < unsigned, std::string > ( "unsigned", ext::to_string < std::string > ( ), ( unsigned ( * ) ( std::string ) ) ext::from_string < unsigned >, false );
    
    		abstraction::CastRegistry::registerCast < size_t, int > ( "size_t", ext::to_string < int > ( ), false );
    		abstraction::CastRegistry::registerCast < size_t, int > ( false );
    		abstraction::CastRegistry::registerCast < int, size_t > ( false );
    
    		abstraction::CastRegistry::registerCast < int, primitive::Integer > ( false );
    
    
    		abstraction::ContainerRegistry::registerSet < int > ( );
    
    
    		abstraction::XmlParserRegistry::registerXmlParser < int > ( "int" );
    
    
    Jan Trávníček's avatar
    Jan Trávníček committed
    		abstraction::XmlFileWriterRegistry::registerXmlFileWriter < bool > ( );
    
    		abstraction::XmlFileWriterRegistry::registerXmlFileWriter < int > ( );
    		abstraction::XmlFileWriterRegistry::registerXmlFileWriter < double > ( );
    		abstraction::XmlFileWriterRegistry::registerXmlFileWriter < std::string > ( );
    
    
    		abstraction::XmlFileWriterRegistry::registerXmlFileWriter < ext::vector < size_t > > ( );
    		abstraction::XmlFileWriterRegistry::registerXmlFileWriter < ext::vector < unsigned > > ( );
    		abstraction::XmlFileWriterRegistry::registerXmlFileWriter < ext::vector < int > > ( );
    		abstraction::XmlFileWriterRegistry::registerXmlFileWriter < ext::set < size_t > > ( );
    		abstraction::XmlFileWriterRegistry::registerXmlFileWriter < ext::set < unsigned > > ( );
    		abstraction::XmlFileWriterRegistry::registerXmlFileWriter < ext::set < int > > ( );
    
    
    		abstraction::ValuePrinterRegistry::registerValuePrinter < int > ( );
    		abstraction::ValuePrinterRegistry::registerValuePrinter < double > ( );
    		abstraction::ValuePrinterRegistry::registerValuePrinter < std::string > ( );
    
    		abstraction::ValuePrinterRegistry::registerValuePrinter < void > ( );
    
    
    		abstraction::ImmediateRegistry::registerImmediate < int > ( );
    		abstraction::ImmediateRegistry::registerImmediate < std::string > ( );
    	}
    };
    
    
    auto primitiveRegistrator = PrimitiveRegistrator ( );
    
    
    } /* namespace abstraction */