From 07b474f82d0d4086f59d6cfcae2862690623a961 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Tue, 9 Jun 2015 17:44:28 +0200 Subject: [PATCH] optimize includes in primitives --- alib2data/src/XmlApi.cpp | 6 ++++++ alib2data/src/object/ObjectBase.h | 10 +--------- alib2data/src/primitive/Bool.h | 2 -- alib2data/src/primitive/Character.h | 3 --- alib2data/src/primitive/Integer.h | 2 -- alib2data/src/primitive/NextPrimitive.cpp | 2 +- alib2data/src/primitive/NextPrimitive.h | 5 ++--- alib2data/src/primitive/Primitive.h | 15 +++++++++++++-- alib2data/src/primitive/PrimitiveFeatures.h | 8 ++++++++ .../src/primitive/PrimitiveFromStringLexer.h | 2 +- .../src/primitive/PrimitiveFromStringParser.cpp | 2 +- .../src/primitive/PrimitiveFromStringParser.h | 4 +--- .../src/primitive/PrimitiveFromXMLParser.cpp | 10 +++++++--- alib2data/src/primitive/PrimitiveFromXMLParser.h | 6 ------ .../src/primitive/PrimitiveToXMLComposer.cpp | 8 +++++--- alib2data/src/primitive/PrimitiveToXMLComposer.h | 1 - alib2data/src/primitive/String.h | 2 -- alib2data/src/primitive/Unsigned.h | 2 -- 18 files changed, 46 insertions(+), 44 deletions(-) diff --git a/alib2data/src/XmlApi.cpp b/alib2data/src/XmlApi.cpp index a57d498705..633850c5cb 100644 --- a/alib2data/src/XmlApi.cpp +++ b/alib2data/src/XmlApi.cpp @@ -27,6 +27,12 @@ #include "label/LabelPairLabel.h" #include "label/UniqueLabel.h" +#include "primitive/Primitive.h" +#include "primitive/Bool.h" +#include "primitive/Integer.h" +#include "primitive/String.h" +#include "primitive/Character.h" + namespace alib { const label::LabelFromXMLParser FromXMLParsers::labelParser; diff --git a/alib2data/src/object/ObjectBase.h b/alib2data/src/object/ObjectBase.h index 6aa7f24739..0be8d812b4 100644 --- a/alib2data/src/object/ObjectBase.h +++ b/alib2data/src/object/ObjectBase.h @@ -102,15 +102,7 @@ class ObjectsMap; } -namespace primitive { - -class String; -class Integer; -class Character; -class Unsigned; -class Bool; - -} +#include "../primitive/PrimitiveFeatures.h" namespace tree { diff --git a/alib2data/src/primitive/Bool.h b/alib2data/src/primitive/Bool.h index 2aa5440bb7..071d1d4224 100644 --- a/alib2data/src/primitive/Bool.h +++ b/alib2data/src/primitive/Bool.h @@ -8,8 +8,6 @@ #ifndef PRIMITIVE_BOOL_H_ #define PRIMITIVE_BOOL_H_ -#include <ostream> - #include "PrimitiveBase.h" namespace primitive { diff --git a/alib2data/src/primitive/Character.h b/alib2data/src/primitive/Character.h index 80fb729afd..6a9d4d8149 100644 --- a/alib2data/src/primitive/Character.h +++ b/alib2data/src/primitive/Character.h @@ -8,9 +8,6 @@ #ifndef PRIMITIVE_CHARACTER_H_ #define PRIMITIVE_CHARACTER_H_ -#include <string> -#include <ostream> - #include "PrimitiveBase.h" namespace primitive { diff --git a/alib2data/src/primitive/Integer.h b/alib2data/src/primitive/Integer.h index f27b08c8d7..a9edd8f08d 100644 --- a/alib2data/src/primitive/Integer.h +++ b/alib2data/src/primitive/Integer.h @@ -8,8 +8,6 @@ #ifndef PRIMITIVE_INTEGER_H_ #define PRIMITIVE_INTEGER_H_ -#include <ostream> - #include "PrimitiveBase.h" namespace primitive { diff --git a/alib2data/src/primitive/NextPrimitive.cpp b/alib2data/src/primitive/NextPrimitive.cpp index ee065e7b01..dbaae49c6d 100644 --- a/alib2data/src/primitive/NextPrimitive.cpp +++ b/alib2data/src/primitive/NextPrimitive.cpp @@ -6,12 +6,12 @@ */ #include "NextPrimitive.h" +#include "Primitive.h" #include "Integer.h" #include "String.h" #include "Character.h" #include "Unsigned.h" #include "Bool.h" -#include <string> namespace primitive { diff --git a/alib2data/src/primitive/NextPrimitive.h b/alib2data/src/primitive/NextPrimitive.h index aa92bda252..e549dff658 100644 --- a/alib2data/src/primitive/NextPrimitive.h +++ b/alib2data/src/primitive/NextPrimitive.h @@ -8,9 +8,8 @@ #ifndef NEXT_PRIMITIVE_H_ #define NEXT_PRIMITIVE_H_ -#include <list> -#include "Primitive.h" -#include "../sax/Token.h" +#include "PrimitiveFeatures.h" +#include "PrimitiveBase.h" namespace primitive { diff --git a/alib2data/src/primitive/Primitive.h b/alib2data/src/primitive/Primitive.h index 4e11ba5f3d..2a9752f987 100644 --- a/alib2data/src/primitive/Primitive.h +++ b/alib2data/src/primitive/Primitive.h @@ -8,15 +8,26 @@ #ifndef PRIMITIVE_H_ #define PRIMITIVE_H_ -#include "../common/wrapper.hpp" #include "PrimitiveBase.h" +#include "../common/wrapper.hpp" namespace primitive { /** * Wrapper around primitive data types. */ -typedef alib::wrapper<PrimitiveBase> Primitive; +class Primitive : public alib::wrapper<PrimitiveBase> { +public: + explicit Primitive(PrimitiveBase* data) : alib::wrapper<PrimitiveBase>(data) { + } + + explicit Primitive(const PrimitiveBase& data) : alib::wrapper<PrimitiveBase>(data.clone()) { + } + + explicit Primitive(PrimitiveBase&& data) : alib::wrapper<PrimitiveBase>(std::move(data).plunder()) { + } + +}; Primitive primitiveFrom(int number); Primitive primitiveFrom(char character); diff --git a/alib2data/src/primitive/PrimitiveFeatures.h b/alib2data/src/primitive/PrimitiveFeatures.h index 2aec1a3b52..3fdbc4a8d3 100644 --- a/alib2data/src/primitive/PrimitiveFeatures.h +++ b/alib2data/src/primitive/PrimitiveFeatures.h @@ -18,6 +18,14 @@ enum class FEATURES { BOOL }; +class Primitive; + +class String; +class Integer; +class Character; +class Unsigned; +class Bool; + } /* namespace primitive */ #endif /* PRIMITIVE_FEATURES_H_ */ diff --git a/alib2data/src/primitive/PrimitiveFromStringLexer.h b/alib2data/src/primitive/PrimitiveFromStringLexer.h index 035cbed24d..5037551b47 100644 --- a/alib2data/src/primitive/PrimitiveFromStringLexer.h +++ b/alib2data/src/primitive/PrimitiveFromStringLexer.h @@ -9,7 +9,7 @@ #define PRIMITIVE_FROM_STRING_LEXER_H_ #include <string> -#include <sstream> +#include <istream> namespace primitive { diff --git a/alib2data/src/primitive/PrimitiveFromStringParser.cpp b/alib2data/src/primitive/PrimitiveFromStringParser.cpp index 5989529167..8e43db245c 100644 --- a/alib2data/src/primitive/PrimitiveFromStringParser.cpp +++ b/alib2data/src/primitive/PrimitiveFromStringParser.cpp @@ -7,10 +7,10 @@ #include "PrimitiveFromStringParser.h" #include "../exception/AlibException.h" +#include "Primitive.h" #include "String.h" #include "Integer.h" #include "Character.h" -#include <algorithm> namespace primitive { diff --git a/alib2data/src/primitive/PrimitiveFromStringParser.h b/alib2data/src/primitive/PrimitiveFromStringParser.h index 117d913970..b04e90589c 100644 --- a/alib2data/src/primitive/PrimitiveFromStringParser.h +++ b/alib2data/src/primitive/PrimitiveFromStringParser.h @@ -8,12 +8,10 @@ #ifndef PRIMITIVE_FROM_STRING_PARSER_H_ #define PRIMITIVE_FROM_STRING_PARSER_H_ -#include "Primitive.h" +#include "PrimitiveFromStringLexer.h" #include "PrimitiveFeatures.h" #include <set> -#include "PrimitiveFromStringLexer.h" - namespace alib { template<typename T> diff --git a/alib2data/src/primitive/PrimitiveFromXMLParser.cpp b/alib2data/src/primitive/PrimitiveFromXMLParser.cpp index a0e46cc877..68dff68c69 100644 --- a/alib2data/src/primitive/PrimitiveFromXMLParser.cpp +++ b/alib2data/src/primitive/PrimitiveFromXMLParser.cpp @@ -7,11 +7,15 @@ #include "PrimitiveFromXMLParser.h" #include "../sax/ParserException.h" -#include <algorithm> -#include <string> - #include "../XmlApi.hpp" +#include "Primitive.h" +#include "String.h" +#include "Integer.h" +#include "Character.h" +#include "Unsigned.h" +#include "Bool.h" + namespace primitive { Primitive PrimitiveFromXMLParser::parsePrimitive(std::deque<sax::Token>::iterator& input) const { diff --git a/alib2data/src/primitive/PrimitiveFromXMLParser.h b/alib2data/src/primitive/PrimitiveFromXMLParser.h index 6c06cca3d9..1de49e8132 100644 --- a/alib2data/src/primitive/PrimitiveFromXMLParser.h +++ b/alib2data/src/primitive/PrimitiveFromXMLParser.h @@ -10,13 +10,7 @@ #include "../sax/FromXMLParserHelper.h" #include <set> -#include "Primitive.h" #include "PrimitiveFeatures.h" -#include "String.h" -#include "Integer.h" -#include "Character.h" -#include "Unsigned.h" -#include "Bool.h" #include "../sax/Token.h" namespace alib { diff --git a/alib2data/src/primitive/PrimitiveToXMLComposer.cpp b/alib2data/src/primitive/PrimitiveToXMLComposer.cpp index 5991f919df..44532e60c3 100644 --- a/alib2data/src/primitive/PrimitiveToXMLComposer.cpp +++ b/alib2data/src/primitive/PrimitiveToXMLComposer.cpp @@ -6,12 +6,14 @@ */ #include "PrimitiveToXMLComposer.h" + +#include "../XmlApi.hpp" + +#include "Primitive.h" +#include "Bool.h" #include "Integer.h" #include "String.h" #include "Character.h" -#include <string> - -#include "../XmlApi.hpp" namespace primitive { diff --git a/alib2data/src/primitive/PrimitiveToXMLComposer.h b/alib2data/src/primitive/PrimitiveToXMLComposer.h index b7f28d8f78..fab4070830 100644 --- a/alib2data/src/primitive/PrimitiveToXMLComposer.h +++ b/alib2data/src/primitive/PrimitiveToXMLComposer.h @@ -9,7 +9,6 @@ #define PRIMITIVE_TO_XML_COMPOSER_H_ #include <deque> -#include <string> #include "Primitive.h" #include "../sax/Token.h" diff --git a/alib2data/src/primitive/String.h b/alib2data/src/primitive/String.h index 671134632c..f69d2e72b1 100644 --- a/alib2data/src/primitive/String.h +++ b/alib2data/src/primitive/String.h @@ -9,8 +9,6 @@ #define PRIMITIVE_STRING_H_ #include <string> -#include <ostream> - #include "PrimitiveBase.h" namespace primitive { diff --git a/alib2data/src/primitive/Unsigned.h b/alib2data/src/primitive/Unsigned.h index 6157ccd77e..54efd8d869 100644 --- a/alib2data/src/primitive/Unsigned.h +++ b/alib2data/src/primitive/Unsigned.h @@ -8,8 +8,6 @@ #ifndef PRIMITIVE_UNSIGNED_H_ #define PRIMITIVE_UNSIGNED_H_ -#include <ostream> - #include "PrimitiveBase.h" namespace primitive { -- GitLab