diff --git a/.github/workflows/test-serializer.yml b/.github/workflows/test-serializer.yml new file mode 100644 index 000000000..e4617d002 --- /dev/null +++ b/.github/workflows/test-serializer.yml @@ -0,0 +1,65 @@ +--- +name: Test Serializer + +# yamllint disable-line rule:truthy +on: + pull_request: + paths: + - 'Serializer/**' + - '.github/workflows/test-serializer.yml' + push: + paths: + - 'Serializer/**' + - '.github/workflows/test-serializer.yml' + +jobs: + + Compile: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Compile + uses: fx31337/mql-compile-action@master + with: + init-platform: true + path: 'serializer/tests' + verbose: true + - name: Print compiled files + run: '(Get-ChildItem -Recurse -Path . -Include *.ex[45]).fullname' + shell: powershell + - name: Upload artifacts (MQL4) + uses: actions/upload-artifact@v2 + with: + name: files-ex4 + path: '**/*.ex4' + - name: Upload artifacts (MQL5) + uses: actions/upload-artifact@v2 + with: + name: files-ex5 + path: '**/*.ex5' + + Serializer-Tests-MQL4: + defaults: + run: + shell: bash + working-directory: serializer/tests + needs: Compile + runs-on: ubuntu-latest + strategy: + matrix: + test: + - Serializer.test + steps: + - uses: actions/download-artifact@v2 + with: + name: files-ex4 + - name: Run ${{ matrix.test }} + uses: fx31337/mql-tester-action@master + with: + BtDays: 4-8 + BtMonths: 1 + BtYears: 2021 + MtVersion: 4.0.0.1359 + RunOnError: show_logs 200 + TestExpert: ${{ matrix.test }} + timeout-minutes: 10 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f4802e889..516d1a9b4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -110,7 +110,6 @@ jobs: - OrderQuery - ProfilerTest - RefsTest - - SerializerTest - TerminalTest - TimerTest - ValueStorageTest diff --git a/3D/Chart3D.h b/3D/Chart3D.h index 1fd4fbdb7..6dc5e3c42 100644 --- a/3D/Chart3D.h +++ b/3D/Chart3D.h @@ -30,8 +30,8 @@ #include "../Indicators/Indi_MA.mqh" #include "../Instances.h" #include "../Refs.mqh" -#include "../SerializerConverter.mqh" -#include "../SerializerJson.mqh" +#include "../Serializer/SerializerConverter.h" +#include "../Serializer/SerializerJson.h" #include "Chart3DCandles.h" #include "Chart3DType.h" #include "Cube.h" diff --git a/Account/Account.h b/Account/Account.h index 5e50510d5..bb435596c 100644 --- a/Account/Account.h +++ b/Account/Account.h @@ -26,7 +26,7 @@ // Includes. #include "../BufferStruct.mqh" -#include "../Serializer.mqh" +#include "../Serializer/Serializer.h" #include "AccountBase.h" /** diff --git a/Account/Account.struct.h b/Account/Account.struct.h index 1b2a97517..2ae613e55 100644 --- a/Account/Account.struct.h +++ b/Account/Account.struct.h @@ -35,7 +35,7 @@ class Serializer; // Includes. -#include "../Serializer.mqh" +#include "../Serializer/Serializer.h" #include "../Terminal.define.h" // Struct for account entries. diff --git a/Account/AccountBase.h b/Account/AccountBase.h index 9d3ae7253..d74fd72a3 100644 --- a/Account/AccountBase.h +++ b/Account/AccountBase.h @@ -25,7 +25,6 @@ #define ACCOUNTBASE_H // Includes. -//#include "../Serializer.mqh" #include "../Refs.mqh" #include "AccountBase.struct.h" diff --git a/Account/AccountBase.struct.h b/Account/AccountBase.struct.h index 0f808c590..ab237c6b7 100644 --- a/Account/AccountBase.struct.h +++ b/Account/AccountBase.struct.h @@ -35,7 +35,7 @@ class Serializer; // Includes. -#include "../Serializer.mqh" +#include "../Serializer/Serializer.h" #include "../Terminal.define.h" // Struct for account entries. diff --git a/Account/AccountForex.h b/Account/AccountForex.h index 3d73b7bb8..03b3be121 100644 --- a/Account/AccountForex.h +++ b/Account/AccountForex.h @@ -25,7 +25,7 @@ #define ACCOUNTFOREX_H // Includes. -#include "../Serializer.mqh" +#include "../Serializer/Serializer.h" #include "Account.h" #include "AccountForex.struct.h" diff --git a/Account/AccountForex.struct.h b/Account/AccountForex.struct.h index 64aacffa3..c40a4e79d 100644 --- a/Account/AccountForex.struct.h +++ b/Account/AccountForex.struct.h @@ -35,7 +35,7 @@ class Serializer; // Includes. -#include "../Serializer.mqh" +#include "../Serializer/Serializer.h" #include "../Terminal.define.h" // Struct for account entries. diff --git a/Account/AccountMt.h b/Account/AccountMt.h index 11cb4c654..9e1713692 100644 --- a/Account/AccountMt.h +++ b/Account/AccountMt.h @@ -35,7 +35,7 @@ class AccountMt; #include "../Indicator/Indicator.struct.h" #include "../Order.struct.h" #include "../Orders.mqh" -#include "../Serializer.mqh" +#include "../Serializer/Serializer.h" #include "../SymbolInfo.mqh" #include "../Trade.struct.h" #include "Account.define.h" diff --git a/Bar.struct.h b/Bar.struct.h index 800a5f939..dffae6ba2 100644 --- a/Bar.struct.h +++ b/Bar.struct.h @@ -36,15 +36,16 @@ class Serializer; // Includes. #include "Bar.enum.h" #include "Chart.enum.h" -#include "ISerializable.h" -#include "Serializer.enum.h" -#include "SerializerNode.enum.h" +#include "Serializer/Serializable.h" +#include "Serializer/Serializer.enum.h" +#include "Serializer/SerializerNode.enum.h" #include "Std.h" +#include "Serializer/Serializer.h" /* Struct for storing OHLC values. */ struct BarOHLC #ifndef __MQL__ - : public ISerializable + : public Serializable #endif { datetime time; @@ -230,8 +231,6 @@ struct BarOHLC string ToCSV() { return StringFormat("%d,%g,%g,%g,%g", time, open, high, low, close); } }; -#include "Serializer.mqh" - /* Method to serialize BarOHLC structure. */ SerializerNodeType BarOHLC::Serialize(Serializer &s) { // s.Pass(THIS_REF, "time", TimeToString(time)); diff --git a/BufferStruct.mqh b/BufferStruct.mqh index c02eba371..af8459874 100644 --- a/BufferStruct.mqh +++ b/BufferStruct.mqh @@ -27,7 +27,7 @@ // Includes. #include "DictBase.mqh" #include "DictStruct.mqh" -#include "Serializer.mqh" +#include "Serializer/Serializer.h" /** * Implements BufferStruct's Overflow Listener. diff --git a/Candle.struct.h b/Candle.struct.h index 7e351ff17..b776f4ac9 100644 --- a/Candle.struct.h +++ b/Candle.struct.h @@ -36,16 +36,17 @@ class Serializer; // Includes. #include "Bar.enum.h" #include "Chart.enum.h" -#include "ISerializable.h" -#include "Serializer.enum.h" -#include "SerializerNode.enum.h" +#include "Serializer/Serializable.h" +#include "Serializer/Serializer.enum.h" +#include "Serializer/SerializerNode.enum.h" #include "Std.h" +#include "Serializer/Serializer.h" /* Structure for storing OHLC values. */ template struct CandleOHLC #ifndef __MQL__ - : public ISerializable + : public Serializable #endif { T open, high, low, close; @@ -276,8 +277,6 @@ struct CandleTOHLC : CandleOHLC { string ToCSV() { return StringFormat("%d,%g,%g,%g,%g", time, open, high, low, close); } }; -#include "Serializer.mqh" - /* Method to serialize CandleEntry structure. */ template SerializerNodeType CandleOHLC::Serialize(Serializer &s) { diff --git a/Chart.mqh b/Chart.mqh index e751a6bb9..ef20cd5f8 100644 --- a/Chart.mqh +++ b/Chart.mqh @@ -40,7 +40,7 @@ #include "Chart.struct.serialize.h" #include "Convert.mqh" #include "Market.mqh" -#include "Serializer.mqh" +#include "Serializer/Serializer.h" #include "Task/TaskCondition.enum.h" // Forward class declaration. diff --git a/Chart.struct.h b/Chart.struct.h index 9d5b75266..a4100f935 100644 --- a/Chart.struct.h +++ b/Chart.struct.h @@ -41,8 +41,8 @@ struct ChartTf; #include "Chart.enum.h" #include "Chart.struct.static.h" #include "Chart.struct.tf.h" -#include "Serializer.mqh" -#include "SerializerNode.enum.h" +#include "Serializer/Serializer.h" +#include "Serializer/SerializerNode.enum.h" #include "Terminal.define.h" /* Defines struct to store bar entries. */ diff --git a/Chart.struct.serialize.h b/Chart.struct.serialize.h index b33092843..99c8ecfaa 100644 --- a/Chart.struct.serialize.h +++ b/Chart.struct.serialize.h @@ -29,8 +29,8 @@ class Serializer; // Includes. -#include "Serializer.mqh" -#include "SerializerNode.enum.h" +#include "Serializer/Serializer.h" +#include "Serializer/SerializerNode.enum.h" /* Method to serialize ChartEntry structure. */ SerializerNodeType ChartEntry::Serialize(Serializer& _s) { diff --git a/Chart.struct.tf.h b/Chart.struct.tf.h index 3a0dfed6e..4e2c2f037 100644 --- a/Chart.struct.tf.h +++ b/Chart.struct.tf.h @@ -35,8 +35,9 @@ class Serializer; // Includes. #include "Chart.enum.h" -#include "SerializerNode.enum.h" +#include "Serializer/SerializerNode.enum.h" #include "Terminal.define.h" +#include "Serializer/Serializer.h" /* Defines struct for chart timeframe. */ struct ChartTf { @@ -351,8 +352,6 @@ struct ChartTf { SerializerNodeType Serialize(Serializer& s); }; -#include "Serializer.mqh" - /* Method to serialize ChartTf structure. */ SerializerNodeType ChartTf::Serialize(Serializer& s) { s.PassEnum(THIS_REF, "tf", tf); diff --git a/Config.mqh b/Config.mqh index 331243fee..840e27495 100644 --- a/Config.mqh +++ b/Config.mqh @@ -33,7 +33,7 @@ #include "DictStruct.mqh" #include "File.mqh" #include "Object.mqh" -#include "Serializer.mqh" +#include "Serializer/Serializer.h" enum CONFIG_FORMAT { CONFIG_FORMAT_JSON, CONFIG_FORMAT_JSON_NO_WHITESPACES, CONFIG_FORMAT_INI }; diff --git a/Data.struct.h b/Data.struct.h index 9ee4ee34f..e174e6456 100644 --- a/Data.struct.h +++ b/Data.struct.h @@ -38,9 +38,10 @@ struct MqlRates; // Includes. #include "Data.enum.h" #include "DateTime.mqh" -#include "Serializer.enum.h" -#include "SerializerNode.enum.h" +#include "Serializer/Serializer.enum.h" +#include "Serializer/SerializerNode.enum.h" #include "Std.h" +#include "Serializer/Serializer.h" #ifndef __MQL__ /** @@ -330,8 +331,6 @@ struct DataParamEntry : public MqlParam { SerializerNodeType Serialize(Serializer &s); }; -#include "Serializer.mqh" - /* Method to serialize DataParamEntry struct. */ SerializerNodeType DataParamEntry::Serialize(Serializer &s) { s.PassEnum(THIS_REF, "type", type, SERIALIZER_FIELD_FLAG_HIDDEN); diff --git a/Dict.mqh b/Dict.mqh index 743cc92d1..69a6a275a 100644 --- a/Dict.mqh +++ b/Dict.mqh @@ -27,8 +27,8 @@ #include "Convert.mqh" #include "DictBase.mqh" #include "Matrix.mqh" -#include "Serializer.mqh" -#include "SerializerNodeIterator.mqh" +#include "Serializer/Serializer.h" +#include "Serializer/SerializerNodeIterator.h" template class DictIterator : public DictIteratorBase { diff --git a/DictIteratorBase.mqh b/DictIteratorBase.mqh index 5a529c0cf..a3c955558 100644 --- a/DictIteratorBase.mqh +++ b/DictIteratorBase.mqh @@ -31,7 +31,7 @@ class DictBase; #include "DictBase.mqh" #include "DictSlotsRef.h" -#include "SerializerConversions.h" +#include "Serializer/SerializerConversions.h" template class DictIteratorBase { diff --git a/DictObject.mqh b/DictObject.mqh index 6f7519766..755ee14fe 100644 --- a/DictObject.mqh +++ b/DictObject.mqh @@ -26,8 +26,8 @@ #include "Convert.mqh" #include "DictBase.mqh" -#include "Serializer.mqh" -#include "SerializerNodeIterator.mqh" +#include "Serializer/Serializer.h" +#include "Serializer/SerializerNodeIterator.h" template class DictObjectIterator : public DictIteratorBase { diff --git a/DictStruct.mqh b/DictStruct.mqh index 9b362c1a1..fd64ef91d 100644 --- a/DictStruct.mqh +++ b/DictStruct.mqh @@ -26,8 +26,8 @@ #include "DictBase.mqh" #include "DictIteratorBase.mqh" -#include "Serializer.mqh" -#include "SerializerNodeIterator.mqh" +#include "Serializer/Serializer.h" +#include "Serializer/SerializerNodeIterator.h" // DictIterator could be used as DictStruct iterator. #define DictStructIterator DictIteratorBase diff --git a/EA.mqh b/EA.mqh index e51cffb55..dbf04c0ff 100644 --- a/EA.mqh +++ b/EA.mqh @@ -39,10 +39,10 @@ #include "Market.mqh" #include "Platform.h" #include "Refs.struct.h" -#include "SerializerConverter.mqh" -#include "SerializerCsv.mqh" -#include "SerializerJson.mqh" -#include "SerializerSqlite.mqh" +#include "Serializer/SerializerConverter.h" +#include "Serializer/SerializerCsv.h" +#include "Serializer/SerializerJson.h" +#include "Serializer/SerializerSqlite.h" #include "Strategy.mqh" #include "SummaryReport.mqh" #include "Task/TaskManager.h" diff --git a/Indicator/Indicator.h b/Indicator/Indicator.h index f7aa36f4d..a7b1da4c4 100644 --- a/Indicator/Indicator.h +++ b/Indicator/Indicator.h @@ -42,9 +42,9 @@ struct IndicatorParams; #include "../Math.h" #include "../Object.mqh" #include "../Refs.mqh" -#include "../Serializer.mqh" -#include "../SerializerCsv.mqh" -#include "../SerializerJson.mqh" +#include "../Serializer/Serializer.h" +#include "../Serializer/SerializerCsv.h" +#include "../Serializer/SerializerJson.h" #include "../Storage/ValueStorage.h" #include "../Storage/ValueStorage.indicator.h" #include "../Storage/ValueStorage.native.h" diff --git a/Indicator/Indicator.struct.h b/Indicator/Indicator.struct.h index 4e1a220de..90d45fea2 100644 --- a/Indicator/Indicator.struct.h +++ b/Indicator/Indicator.struct.h @@ -40,7 +40,7 @@ struct ChartParams; #include "../Chart.struct.tf.h" #include "../Data.struct.h" #include "../DateTime.struct.h" -#include "../SerializerNode.enum.h" +#include "../Serializer/SerializerNode.enum.h" #include "Indicator.enum.h" #include "IndicatorData.struct.cache.h" //#include "Indicator.struct.serialize.h" diff --git a/Indicator/Indicator.struct.serialize.h b/Indicator/Indicator.struct.serialize.h index 512af9718..8855aa9f3 100644 --- a/Indicator/Indicator.struct.serialize.h +++ b/Indicator/Indicator.struct.serialize.h @@ -25,8 +25,8 @@ * Includes Indicator's struct serializers. */ -#include "../Serializer.mqh" -#include "../SerializerNode.enum.h" +#include "../Serializer/Serializer.h" +#include "../Serializer/SerializerNode.enum.h" #include "Indicator.struct.h" /* Method to serialize IndicatorParams structure. */ diff --git a/Indicator/IndicatorBase.h b/Indicator/IndicatorBase.h index f2738dcd4..ff1327cb2 100644 --- a/Indicator/IndicatorBase.h +++ b/Indicator/IndicatorBase.h @@ -40,9 +40,9 @@ #include "../Log.mqh" #include "../Object.mqh" #include "../Refs.mqh" -#include "../Serializer.mqh" -#include "../SerializerCsv.mqh" -#include "../SerializerJson.mqh" +#include "../Serializer/Serializer.h" +#include "../Serializer/SerializerCsv.h" +#include "../Serializer/SerializerJson.h" #include "../Util.h" /** diff --git a/Indicator/IndicatorData.struct.h b/Indicator/IndicatorData.struct.h index 27eaa124b..3e49d5902 100644 --- a/Indicator/IndicatorData.struct.h +++ b/Indicator/IndicatorData.struct.h @@ -30,7 +30,7 @@ #define STRUCT_ENUM_INDICATOR_STATE_PROP STRUCT_ENUM(IndicatorState, ENUM_INDICATOR_STATE_PROP) // Includes. -#include "../SerializerNode.enum.h" +#include "../Serializer/SerializerNode.enum.h" #include "IndicatorData.enum.h" // Type-less value for IndicatorDataEntryValue structure. diff --git a/Indicator/IndicatorData.struct.serialize.h b/Indicator/IndicatorData.struct.serialize.h index 7655450bd..c6b97399e 100644 --- a/Indicator/IndicatorData.struct.serialize.h +++ b/Indicator/IndicatorData.struct.serialize.h @@ -25,7 +25,7 @@ * Includes IndicatorData's struct serializers. */ -#include "../Serializer.mqh" +#include "../Serializer/Serializer.h" // Forward class declaration. class Serializer; diff --git a/Indicators/Bitwise/Indi_Candle.mqh b/Indicators/Bitwise/Indi_Candle.mqh index 61e7f3d56..b6397384a 100644 --- a/Indicators/Bitwise/Indi_Candle.mqh +++ b/Indicators/Bitwise/Indi_Candle.mqh @@ -25,7 +25,7 @@ #include "../../BufferStruct.mqh" #include "../../Indicator/Indicator.h" #include "../../Pattern.struct.h" -#include "../../Serializer.mqh" +#include "../../Serializer/Serializer.h" #include "../Price/Indi_Price.mqh" #include "../Special/Indi_Math.mqh" diff --git a/Indicators/Bitwise/Indi_Pattern.mqh b/Indicators/Bitwise/Indi_Pattern.mqh index 229faf261..6fb005d61 100644 --- a/Indicators/Bitwise/Indi_Pattern.mqh +++ b/Indicators/Bitwise/Indi_Pattern.mqh @@ -25,7 +25,7 @@ #include "../../BufferStruct.mqh" #include "../../Indicator/Indicator.h" #include "../../Pattern.struct.h" -#include "../../Serializer.mqh" +#include "../../Serializer/Serializer.h" #include "../Price/Indi_Price.mqh" #include "../Special/Indi_Math.mqh" diff --git a/Indicators/Indi_Drawer.struct.h b/Indicators/Indi_Drawer.struct.h index b1957e566..2014e8894 100644 --- a/Indicators/Indi_Drawer.struct.h +++ b/Indicators/Indi_Drawer.struct.h @@ -27,7 +27,7 @@ // Includes. #include "../Indicator/Indicator.struct.h" -#include "../SerializerNode.enum.h" +#include "../Serializer/SerializerNode.enum.h" // Structs. diff --git a/Indicators/Indi_Pivot.mqh b/Indicators/Indi_Pivot.mqh index bb90f9e96..986d07a62 100644 --- a/Indicators/Indi_Pivot.mqh +++ b/Indicators/Indi_Pivot.mqh @@ -23,7 +23,7 @@ // Includes. #include "../Bar.struct.h" #include "../Indicator/Indicator.struct.h" -#include "../Serializer.mqh" +#include "../Serializer/Serializer.h" #include "Special/Indi_Math.mqh" // Structs. diff --git a/Market.mqh b/Market.mqh index 157eb4c3d..996c83456 100644 --- a/Market.mqh +++ b/Market.mqh @@ -27,7 +27,7 @@ // Includes. #include "Market.struct.h" #include "Math.h" -#include "Serializer.mqh" +#include "Serializer/Serializer.h" #include "SymbolInfo.mqh" #include "SymbolInfo.struct.static.h" #include "Task/TaskCondition.enum.h" diff --git a/Market.struct.h b/Market.struct.h index 0937823ae..1283ce193 100644 --- a/Market.struct.h +++ b/Market.struct.h @@ -30,7 +30,7 @@ class Serializer; // Includes. #include "DateTime.struct.h" -#include "SerializerNode.enum.h" +#include "Serializer/SerializerNode.enum.h" #include "Std.h" // Market info. diff --git a/Order.mqh b/Order.mqh index d277a03c2..b0092bee5 100644 --- a/Order.mqh +++ b/Order.mqh @@ -41,10 +41,10 @@ class SymbolInfo; #include "Order.define.h" #include "Order.enum.h" #include "Order.struct.h" -#include "Serializer.define.h" -#include "Serializer.mqh" -#include "SerializerConverter.mqh" -#include "SerializerJson.mqh" +#include "Serializer/Serializer.define.h" +#include "Serializer/Serializer.h" +#include "Serializer/SerializerConverter.h" +#include "Serializer/SerializerJson.h" #include "Std.h" #include "String.mqh" #include "SymbolInfo.mqh" diff --git a/Order.struct.h b/Order.struct.h index bb1beb6b6..fff61929c 100644 --- a/Order.struct.h +++ b/Order.struct.h @@ -33,7 +33,7 @@ // Includes. #include "Data.struct.h" #include "Order.enum.h" -#include "Serializer.mqh" +#include "Serializer/Serializer.h" #include "SymbolInfo.struct.static.h" #include "Terminal.mqh" diff --git a/Redis.mqh b/Redis.mqh index 081f23a72..69be06ca8 100644 --- a/Redis.mqh +++ b/Redis.mqh @@ -27,9 +27,9 @@ #include "Dict.mqh" #include "Object.mqh" #include "Redis.struct.h" -#include "Serializer.mqh" -#include "SerializerConversions.h" -#include "SerializerJson.mqh" +#include "Serializer/Serializer.h" +#include "Serializer/SerializerConversions.h" +#include "Serializer/SerializerJson.h" #include "Socket.mqh" enum ENUM_REDIS_VALUE_SET { REDIS_VALUE_SET_ALWAYS, REDIS_VALUE_SET_IF_NOT_EXIST, REDIS_VALUE_SET_IF_ALREADY_EXIST }; diff --git a/Redis.struct.h b/Redis.struct.h index 2a68a8cb9..19d9d7663 100644 --- a/Redis.struct.h +++ b/Redis.struct.h @@ -31,7 +31,7 @@ #endif // Includes. -#include "SerializerConversions.h" +#include "Serializer/SerializerConversions.h" // Forward declaration. class Serializer; diff --git a/ISerializable.h b/Serializer/Serializable.h similarity index 98% rename from ISerializable.h rename to Serializer/Serializable.h index 8a66d50e1..b845f22c9 100644 --- a/ISerializable.h +++ b/Serializer/Serializable.h @@ -34,7 +34,7 @@ class Serializer; -class ISerializable { +class Serializable { public: virtual SerializerNodeType Serialize(Serializer &s) = 0; }; diff --git a/Serializer.define.h b/Serializer/Serializer.define.h similarity index 100% rename from Serializer.define.h rename to Serializer/Serializer.define.h diff --git a/Serializer.enum.h b/Serializer/Serializer.enum.h similarity index 100% rename from Serializer.enum.h rename to Serializer/Serializer.enum.h diff --git a/Serializer.mqh b/Serializer/Serializer.h similarity index 98% rename from Serializer.mqh rename to Serializer/Serializer.h index d76c001b2..ce544cf1a 100644 --- a/Serializer.mqh +++ b/Serializer/Serializer.h @@ -25,13 +25,13 @@ #define SERIALIZER_MQH // Includes. -#include "Convert.mqh" +#include "../Convert.mqh" +#include "../Terminal.define.h" #include "Serializer.define.h" #include "Serializer.enum.h" -#include "SerializerNode.mqh" -#include "SerializerNodeIterator.mqh" -#include "SerializerNodeParam.mqh" -#include "Terminal.define.h" +#include "SerializerNode.h" +#include "SerializerNodeIterator.h" +#include "SerializerNodeParam.h" #define SERIALIZER_DEFAULT_FP_PRECISION 8 diff --git a/SerializerBinary.mqh b/Serializer/SerializerBinary.h similarity index 97% rename from SerializerBinary.mqh rename to Serializer/SerializerBinary.h index 51995a411..a009dcc2e 100644 --- a/SerializerBinary.mqh +++ b/Serializer/SerializerBinary.h @@ -25,10 +25,10 @@ #define SERIALIZER_BINARY_MQH // Includes. -#include "DictBase.mqh" -#include "Object.mqh" -#include "Serializer.mqh" -#include "SerializerNode.mqh" +#include "../DictBase.mqh" +#include "../Object.mqh" +#include "Serializer.h" +#include "SerializerNode.h" class Log; diff --git a/SerializerConversions.h b/Serializer/SerializerConversions.h similarity index 97% rename from SerializerConversions.h rename to Serializer/SerializerConversions.h index 4f5454a5e..1a2cae9d8 100644 --- a/SerializerConversions.h +++ b/Serializer/SerializerConversions.h @@ -30,10 +30,10 @@ #pragma once #endif -#include "Convert.extern.h" -#include "DateTime.extern.h" -#include "Object.mqh" -#include "Refs.struct.h" +#include "../Convert.extern.h" +#include "../DateTime.extern.h" +#include "../Object.mqh" +#include "../Refs.struct.h" class SerializerConversions { public: diff --git a/SerializerConverter.mqh b/Serializer/SerializerConverter.h similarity index 98% rename from SerializerConverter.mqh rename to Serializer/SerializerConverter.h index 4ce3d5f28..7e9490239 100644 --- a/SerializerConverter.mqh +++ b/Serializer/SerializerConverter.h @@ -33,11 +33,11 @@ class SerializerNode; // Includes. -#include "File.mqh" +#include "../File.mqh" #include "Serializer.enum.h" -#include "Serializer.mqh" -#include "SerializerDict.mqh" -#include "SerializerNode.mqh" +#include "Serializer.h" +#include "SerializerDict.h" +#include "SerializerNode.h" class SerializerConverter { public: diff --git a/SerializerCsv.mqh b/Serializer/SerializerCsv.h similarity index 97% rename from SerializerCsv.mqh rename to Serializer/SerializerCsv.h index 7b219aaca..85992b779 100644 --- a/SerializerCsv.mqh +++ b/Serializer/SerializerCsv.h @@ -25,14 +25,14 @@ #define SERIALIZER_CSV_MQH // Includes. -#include "Dict.mqh" -#include "DictObject.mqh" -#include "DictStruct.mqh" -#include "Matrix.mqh" -#include "MiniMatrix.h" -#include "Object.mqh" -#include "SerializerConverter.mqh" -#include "SerializerNode.mqh" +#include "../Dict.mqh" +#include "../DictObject.mqh" +#include "../DictStruct.mqh" +#include "../Matrix.mqh" +#include "../MiniMatrix.h" +#include "../Object.mqh" +#include "SerializerConverter.h" +#include "SerializerNode.h" struct CsvTitle { int column_index; diff --git a/SerializerDict.mqh b/Serializer/SerializerDict.h similarity index 98% rename from SerializerDict.mqh rename to Serializer/SerializerDict.h index ddef3e957..098ade629 100644 --- a/SerializerDict.mqh +++ b/Serializer/SerializerDict.h @@ -25,7 +25,7 @@ #define SERIALIZER_DICT_MQH // Includes. -#include "SerializerNode.mqh" +#include "SerializerNode.h" enum ENUM_SERIALIZER_DICT_FLAGS {}; diff --git a/SerializerJson.mqh b/Serializer/SerializerJson.h similarity index 98% rename from SerializerJson.mqh rename to Serializer/SerializerJson.h index a0dc2f4c6..fd3ed5fed 100644 --- a/SerializerJson.mqh +++ b/Serializer/SerializerJson.h @@ -25,12 +25,12 @@ #define SERIALIZER_JSON_MQH // Includes. -#include "DictBase.mqh" -#include "Object.mqh" +#include "../DictBase.mqh" +#include "../Object.mqh" +#include "../String.extern.h" #include "Serializer.enum.h" -#include "Serializer.mqh" -#include "SerializerNode.mqh" -#include "String.extern.h" +#include "Serializer.h" +#include "SerializerNode.h" class Log; diff --git a/SerializerNode.enum.h b/Serializer/SerializerNode.enum.h similarity index 100% rename from SerializerNode.enum.h rename to Serializer/SerializerNode.enum.h diff --git a/SerializerNode.mqh b/Serializer/SerializerNode.h similarity index 98% rename from SerializerNode.mqh rename to Serializer/SerializerNode.h index c5143a9de..5f071e87b 100644 --- a/SerializerNode.mqh +++ b/Serializer/SerializerNode.h @@ -21,14 +21,14 @@ */ // Prevents processing this includes file for the second time. -#ifndef JSON_NODE_MQH -#define JSON_NODE_MQH +#ifndef SERIALIZER_NODE_H +#define SERIALIZER_NODE_H // Includes. -#include "Math.extern.h" +#include "../Math.extern.h" +#include "../Terminal.define.h" #include "SerializerNode.enum.h" -#include "SerializerNodeParam.mqh" -#include "Terminal.define.h" +#include "SerializerNodeParam.h" class SerializerNode { protected: @@ -368,4 +368,4 @@ class SerializerNode { } }; -#endif +#endif // SERIALIZER_NODE_H diff --git a/SerializerNodeIterator.mqh b/Serializer/SerializerNodeIterator.h similarity index 96% rename from SerializerNodeIterator.mqh rename to Serializer/SerializerNodeIterator.h index a821bacaf..2be711439 100644 --- a/SerializerNodeIterator.mqh +++ b/Serializer/SerializerNodeIterator.h @@ -21,11 +21,11 @@ */ // Prevents processing this includes file for the second time. -#ifndef JSON_ITERATOR_MQH -#define JSON_ITERATOR_MQH +#ifndef SERIALIZER_NODE_ITERATOR_H +#define SERIALIZER_NODE_ITERATOR_H -#include "Serializer.mqh" -#include "SerializerNode.mqh" +#include "Serializer.h" +#include "SerializerNode.h" class SerializerNode; class Serializer; diff --git a/SerializerNodeParam.mqh b/Serializer/SerializerNodeParam.h similarity index 99% rename from SerializerNodeParam.mqh rename to Serializer/SerializerNodeParam.h index 0ef237931..b37d68c63 100644 --- a/SerializerNodeParam.mqh +++ b/Serializer/SerializerNodeParam.h @@ -22,8 +22,9 @@ // Prevents processing this includes file for the second time. #include "SerializerConversions.h" -#ifndef JSON_PARAM_MQH -#define JSON_PARAM_MQH + +#ifndef SERIALIZER_NODE_PARAM_H +#define SERIALIZER_NODE_PARAM_H /** * Enumeration. @@ -333,6 +334,4 @@ SerializerNodeParam* SerializerNodeParam::FromString(string& value) { return param; } - - -#endif +#endif // SERIALIZER_NODE_PARAM_H diff --git a/SerializerObject.mqh b/Serializer/SerializerObject.h similarity index 90% rename from SerializerObject.mqh rename to Serializer/SerializerObject.h index fddd54ac0..c8894ae98 100644 --- a/SerializerObject.mqh +++ b/Serializer/SerializerObject.h @@ -25,11 +25,11 @@ #define SERIALIZER_OBJECT_MQH // Includes. -#include "DictBase.mqh" -#include "Object.mqh" -#include "Serializer.mqh" -#include "SerializerConverter.mqh" -#include "SerializerNode.mqh" +#include "../DictBase.mqh" +#include "../Object.mqh" +#include "Serializer.h" +#include "SerializerConverter.h" +#include "SerializerNode.h" class Log; diff --git a/SerializerSqlite.mqh b/Serializer/SerializerSqlite.h similarity index 97% rename from SerializerSqlite.mqh rename to Serializer/SerializerSqlite.h index df86d747e..ec2b18abc 100644 --- a/SerializerSqlite.mqh +++ b/Serializer/SerializerSqlite.h @@ -25,9 +25,9 @@ #define SERIALIZER_SQL_MQH // Includes. -#include "Database.mqh" -#include "SerializerConverter.mqh" -#include "SerializerCsv.mqh" +#include "../Database.mqh" +#include "SerializerConverter.h" +#include "SerializerCsv.h" class SerializerSqlite { public: diff --git a/tests/SerializerTest.mq4 b/Serializer/tests/Serializer.test.mq4 similarity index 97% rename from tests/SerializerTest.mq4 rename to Serializer/tests/Serializer.test.mq4 index 8411f0c76..1117647d4 100644 --- a/tests/SerializerTest.mq4 +++ b/Serializer/tests/Serializer.test.mq4 @@ -25,4 +25,4 @@ */ // Includes. -#include "SerializerTest.mq5" +#include "Serializer.test.mq5" diff --git a/tests/SerializerTest.mq5 b/Serializer/tests/Serializer.test.mq5 similarity index 96% rename from tests/SerializerTest.mq5 rename to Serializer/tests/Serializer.test.mq5 index 68ef491b4..dd895f13e 100644 --- a/tests/SerializerTest.mq5 +++ b/Serializer/tests/Serializer.test.mq5 @@ -27,20 +27,20 @@ */ // Includes. -#include "../BufferStruct.mqh" -#include "../Chart.mqh" -#include "../Config.mqh" -#include "../Data.define.h" -#include "../Data.struct.h" -#include "../DictStruct.mqh" -#include "../Serializer.mqh" -#include "../SerializerBinary.mqh" -#include "../SerializerCsv.mqh" -#include "../SerializerDict.mqh" -#include "../SerializerJson.mqh" -#include "../SerializerNode.mqh" -#include "../SerializerObject.mqh" -#include "../Test.mqh" +#include "../../BufferStruct.mqh" +#include "../../Chart.mqh" +#include "../../Config.mqh" +#include "../../Data.define.h" +#include "../../Data.struct.h" +#include "../../DictStruct.mqh" +#include "../../Test.mqh" +#include "../Serializer.h" +#include "../SerializerBinary.h" +#include "../SerializerCsv.h" +#include "../SerializerDict.h" +#include "../SerializerJson.h" +#include "../SerializerNode.h" +#include "../SerializerObject.h" struct SerializableSubEntry { public: diff --git a/Storage/ValueStorage.h b/Storage/ValueStorage.h index 6c7979ba0..bbe358b36 100644 --- a/Storage/ValueStorage.h +++ b/Storage/ValueStorage.h @@ -34,7 +34,7 @@ #define VALUE_STORAGE_H // Includes. -#include "../SerializerConversions.h" +#include "../Serializer/SerializerConversions.h" #include "../Util.h" #include "Objects.h" diff --git a/Strategy.struct.h b/Strategy.struct.h index 4f0d8fce8..cea4c81bb 100644 --- a/Strategy.struct.h +++ b/Strategy.struct.h @@ -31,7 +31,7 @@ #endif // Includes. -#include "Serializer.mqh" +#include "Serializer/Serializer.h" #include "Strategy.enum.h" #include "Strategy.struct.pricestop.h" #include "Task/Task.struct.h" diff --git a/SymbolInfo.mqh b/SymbolInfo.mqh index 1ee351e9a..50d21311e 100644 --- a/SymbolInfo.mqh +++ b/SymbolInfo.mqh @@ -38,8 +38,8 @@ class SymbolInfo; // Includes. #include "Log.mqh" -#include "Serializer.mqh" -#include "SerializerNode.enum.h" +#include "Serializer/Serializer.h" +#include "Serializer/SerializerNode.enum.h" /** * Class to provide symbol information. diff --git a/SymbolInfo.struct.h b/SymbolInfo.struct.h index 7b41c2bba..ea08ee9af 100644 --- a/SymbolInfo.struct.h +++ b/SymbolInfo.struct.h @@ -31,15 +31,16 @@ #endif // Includes. -#include "ISerializable.h" +#include "Serializer/Serializable.h" #include "Std.h" #include "SymbolInfo.struct.static.h" #include "Tick/Tick.struct.h" +#include "Serializer/Serializer.h" // Defines struct to store symbol data. struct SymbolInfoEntry #ifndef __MQL__ - : public ISerializable + : public Serializable #endif { double bid; // Current Bid price. @@ -152,8 +153,6 @@ struct SymbolInfoProp { SerializerNodeType Serialize(Serializer& _s); }; -#include "Serializer.mqh" - SerializerNodeType SymbolInfoEntry::Serialize(Serializer& _s) { _s.Pass(THIS_REF, "ask", ask); _s.Pass(THIS_REF, "bid", bid); diff --git a/Task/TaskManager.h b/Task/TaskManager.h index dfa28c10c..7cd985fde 100644 --- a/Task/TaskManager.h +++ b/Task/TaskManager.h @@ -36,8 +36,8 @@ // Includes. #include "../DictObject.mqh" -#include "../SerializerConverter.mqh" -#include "../SerializerJson.mqh" +#include "../Serializer/SerializerConverter.h" +#include "../Serializer/SerializerJson.h" #include "Task.struct.h" #include "TaskObject.h" diff --git a/Trade/TradeSignal.struct.h b/Trade/TradeSignal.struct.h index 5b8221cce..e3b63a535 100644 --- a/Trade/TradeSignal.struct.h +++ b/Trade/TradeSignal.struct.h @@ -27,8 +27,8 @@ // Includes. #include "../Chart.enum.h" -#include "../SerializerConverter.mqh" -#include "../SerializerJson.mqh" +#include "../Serializer/SerializerConverter.h" +#include "../Serializer/SerializerJson.h" // Defines. #define SIGNAL_CLOSE_BUY_FILTER STRUCT_ENUM(TradeSignalEntry, TRADE_SIGNAL_FLAG_CLOSE_BUY_FILTER) diff --git a/Util.h b/Util.h index 10ae2079c..143f0d11a 100644 --- a/Util.h +++ b/Util.h @@ -30,7 +30,7 @@ #endif // Includes. -#include "SerializerConversions.h" +#include "Serializer/SerializerConversions.h" /** * Utility methods. diff --git a/tests/3DTest.mq5 b/tests/3DTest.mq5 index 2c5e013e8..35b329fd5 100644 --- a/tests/3DTest.mq5 +++ b/tests/3DTest.mq5 @@ -43,7 +43,7 @@ #include "../BufferStruct.mqh" #include "../Chart.mqh" #include "../Platform.h" -#include "../Serializer.mqh" +#include "../Serializer/Serializer.h" #include "../Test.mqh" /** diff --git a/tests/BufferStructTest.mq5 b/tests/BufferStructTest.mq5 index f5881fb70..8e5b7cc6e 100644 --- a/tests/BufferStructTest.mq5 +++ b/tests/BufferStructTest.mq5 @@ -28,8 +28,8 @@ #include "../BufferStruct.mqh" #include "../Data.define.h" #include "../Data.struct.h" -#include "../SerializerConverter.mqh" -#include "../SerializerJSON.mqh" +#include "../Serializer/SerializerConverter.h" +#include "../Serializer/SerializerJSON.h" #include "../Std.h" #include "../Test.mqh" diff --git a/tests/CompileTest.mq5 b/tests/CompileTest.mq5 index fc9193df9..eac4ac6b9 100644 --- a/tests/CompileTest.mq5 +++ b/tests/CompileTest.mq5 @@ -62,7 +62,6 @@ struct IndicatorParams; #include "../DrawIndicator.mqh" #include "../EA.mqh" #include "../File.mqh" -#include "../ISerializable.h" // #include "../Inet.mqh" #include "../Log.mqh" #include "../MD5.mqh" @@ -89,18 +88,6 @@ struct IndicatorParams; #include "../Storage/Objects.h" #include "../Storage/ObjectsCache.h" // #include "../SVG.mqh" // @removeme -#include "../Serializer.mqh" -#include "../SerializerBinary.mqh" -#include "../SerializerConversions.h" -#include "../SerializerConverter.mqh" -#include "../SerializerCsv.mqh" -#include "../SerializerDict.mqh" -#include "../SerializerJson.mqh" -#include "../SerializerNode.mqh" -#include "../SerializerNodeIterator.mqh" -#include "../SerializerNodeParam.mqh" -#include "../SerializerObject.mqh" -#include "../SerializerSqlite.mqh" #include "../Session.mqh" #include "../SetFile.mqh" #include "../Socket.mqh" @@ -128,13 +115,28 @@ struct IndicatorParams; #include "../Util.h" #include "../Web.mqh" -// Includes indicator files. +// Includes Indicator files. #include "../Indicator/Indicator.define.h" #include "../Indicator/Indicator.h" #include "../Indicator/IndicatorBase.h" -//#include "../Indicator/IndicatorData.h" +#include "../Indicator/IndicatorData.h" #include "../Indicators/indicators.h" +// Includes Serializer files. +#include "../Serializer/Serializable.h" +#include "../Serializer/Serializer.h" +#include "../Serializer/SerializerBinary.h" +#include "../Serializer/SerializerConversions.h" +#include "../Serializer/SerializerConverter.h" +#include "../Serializer/SerializerCsv.h" +#include "../Serializer/SerializerDict.h" +#include "../Serializer/SerializerJson.h" +#include "../Serializer/SerializerNode.h" +#include "../Serializer/SerializerNodeIterator.h" +#include "../Serializer/SerializerNodeParam.h" +#include "../Serializer/SerializerObject.h" +#include "../Serializer/SerializerSqlite.h" + /** * Implements Init event handler. */ diff --git a/tests/ConfigTest.mq5 b/tests/ConfigTest.mq5 index 2477a62f6..bbed5cd13 100644 --- a/tests/ConfigTest.mq5 +++ b/tests/ConfigTest.mq5 @@ -29,9 +29,9 @@ #include "../Data.define.h" #include "../Dict.mqh" #include "../DictObject.mqh" -#include "../SerializerConverter.mqh" -#include "../SerializerCsv.mqh" -#include "../SerializerJson.mqh" +#include "../Serializer/SerializerConverter.h" +#include "../Serializer/SerializerCsv.h" +#include "../Serializer/SerializerJson.h" #include "../Test.mqh" class Test { diff --git a/tests/DictTest.mq5 b/tests/DictTest.mq5 index 619dcc90f..cda693a4c 100644 --- a/tests/DictTest.mq5 +++ b/tests/DictTest.mq5 @@ -29,9 +29,9 @@ #include "../DictObject.mqh" #include "../DictStruct.mqh" #include "../Object.mqh" -#include "../Serializer.mqh" -#include "../SerializerConverter.mqh" -#include "../SerializerJson.mqh" +#include "../Serializer/Serializer.h" +#include "../Serializer/SerializerConverter.h" +#include "../Serializer/SerializerJson.h" #include "../Test.mqh" class DictTestClass { diff --git a/tests/IndicatorsTest.mq5 b/tests/IndicatorsTest.mq5 index 6ef5efc18..37c82ad28 100644 --- a/tests/IndicatorsTest.mq5 +++ b/tests/IndicatorsTest.mq5 @@ -41,8 +41,8 @@ struct DataParamEntry; #include "../Indicators/Tick/Indi_TickMt.mqh" #include "../Indicators/indicators.h" #include "../Platform.h" -#include "../SerializerConverter.mqh" -#include "../SerializerJson.mqh" +#include "../Serializer/SerializerConverter.h" +#include "../Serializer/SerializerJson.h" #include "../Std.h" #include "../Test.mqh" diff --git a/tests/OrderTest.mq5 b/tests/OrderTest.mq5 index 2418b855e..343adc249 100644 --- a/tests/OrderTest.mq5 +++ b/tests/OrderTest.mq5 @@ -28,8 +28,8 @@ #include "../Chart.mqh" #include "../Order.mqh" #include "../Platform.h" -#include "../SerializerConverter.mqh" -#include "../SerializerJson.mqh" +#include "../Serializer/SerializerConverter.h" +#include "../Serializer/SerializerJson.h" #include "../Test.mqh" // Global defines. diff --git a/tests/ValueStorageTest.mq5 b/tests/ValueStorageTest.mq5 index f7ed555fa..ddc3b3c52 100644 --- a/tests/ValueStorageTest.mq5 +++ b/tests/ValueStorageTest.mq5 @@ -30,8 +30,8 @@ // Includes. #include "../Indicators/Indi_MA.mqh" #include "../Indicators/Price/Indi_Price.mqh" -#include "../SerializerConverter.mqh" -#include "../SerializerJson.mqh" +#include "../Serializer/SerializerConverter.h" +#include "../Serializer/SerializerJson.h" #include "../Storage/ValueStorage.h" #include "../Test.mqh"