From 3bec28f8173e75198b9037a7fbaed01f3bb1fcbd Mon Sep 17 00:00:00 2001 From: DW Date: Fri, 22 Apr 2016 19:14:47 +0300 Subject: [PATCH] Added Request/Response mechanism into mtapi. Added structure MtOrder. Added functions GetOrder, GetOrders. --- MtApi/MtApi.csproj | 20 + MtApi/MtApiClient.cs | 48 ++ MtApi/MtCommandType.cs | 5 +- MtApi/MtConnectionException.cs | 23 + MtApi/MtExecutionException.cs | 15 + MtApi/MtOrder.cs | 30 + MtApi/Requests/GetOrderRequest.cs | 9 + MtApi/Requests/GetOrdersRequest.cs | 7 + MtApi/Requests/RequestBase.cs | 6 + MtApi/Requests/RequestContainer.cs | 33 + MtApi/Requests/RequestType.cs | 9 + MtApi/Responses/GetOrderResponse.cs | 7 + MtApi/Responses/GetOrdersResponse.cs | 9 + MtApi/Responses/ResponseBase.cs | 8 + MtApi/packages.config | 4 + TestApiClientUI/Form1.Designer.cs | 142 +++- TestApiClientUI/Form1.cs | 139 +++- TestApiClientUI/Form1.resx | 3 + mq4/MtApi.ex4 | Bin 106128 -> 174540 bytes mq4/MtApi.mq4 | 206 +++++- mq4/hash.mqh | 672 +++++++++++++++++ mq4/json.mqh | 1013 ++++++++++++++++++++++++++ 22 files changed, 2359 insertions(+), 49 deletions(-) create mode 100644 MtApi/MtConnectionException.cs create mode 100644 MtApi/MtExecutionException.cs create mode 100644 MtApi/MtOrder.cs create mode 100644 MtApi/Requests/GetOrderRequest.cs create mode 100644 MtApi/Requests/GetOrdersRequest.cs create mode 100644 MtApi/Requests/RequestBase.cs create mode 100644 MtApi/Requests/RequestContainer.cs create mode 100644 MtApi/Requests/RequestType.cs create mode 100644 MtApi/Responses/GetOrderResponse.cs create mode 100644 MtApi/Responses/GetOrdersResponse.cs create mode 100644 MtApi/Responses/ResponseBase.cs create mode 100644 MtApi/packages.config create mode 100644 mq4/hash.mqh create mode 100644 mq4/json.mqh diff --git a/MtApi/MtApi.csproj b/MtApi/MtApi.csproj index 6cad83ce..a68755fc 100755 --- a/MtApi/MtApi.csproj +++ b/MtApi/MtApi.csproj @@ -43,9 +43,14 @@ + + ..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll + True + + @@ -56,8 +61,11 @@ + + + @@ -67,6 +75,14 @@ + + + + + + + + @@ -78,6 +94,10 @@ MTApiService + + + + diff --git a/MtApi/MtApiClient.cs b/MtApi/MtApiClient.cs index 8e6eb504..27ee271f 100755 --- a/MtApi/MtApiClient.cs +++ b/MtApi/MtApiClient.cs @@ -6,6 +6,10 @@ using MTApiService; using System.Drawing; using System.Collections; using System.Net; +using System.ServiceModel; +using MtApi.Requests; +using MtApi.Responses; +using Newtonsoft.Json; namespace MtApi { @@ -345,6 +349,18 @@ namespace MtApi { return sendCommand(MtCommandType.OrderCloseAll, null); } + + public MtOrder GetOrder(int index, OrderSelectMode select, OrderSelectSource pool) + { + var response = SendRequest(new GetOrderRequest { Index = index, Select = (int) select, Pool = (int) pool}); + return response != null ? response.Order : null; + } + + public IEnumerable GetOrders(OrderSelectSource pool) + { + var response = SendRequest(new GetOrdersRequest { Pool = (int)pool }); + return response != null ? response.Orders : null; + } #endregion #region Check Status @@ -1310,6 +1326,38 @@ namespace MtApi return result; } + private T SendRequest(RequestBase request) where T : ResponseBase, new() + { + if (request == null) + return default(T); + + var serializer = RequestContainer.CreateNew(request).Serialize(); + var commandParameters = new ArrayList { serializer }; + + MtResponseString res; + try + { + res = (MtResponseString)mClient.SendCommand((int)MtCommandType.MtRequest, commandParameters); + } + catch (CommunicationException ex) + { + throw new MtConnectionException(ex.Message, ex); + } + + if (res == null) + { + throw new MtExecutionException(-1, "Response from MetaTrader is null"); + } + + var response = JsonConvert.DeserializeObject(res.Value); + if (response.ErrorCode != 0) + { + throw new MtExecutionException(response.ErrorCode, response.ErrorMessage); + } + + return response; + } + private void mClient_QuoteUpdated(MTApiService.MtQuote quote) { if (quote != null) diff --git a/MtApi/MtCommandType.cs b/MtApi/MtCommandType.cs index 5c24f404..ac23fb42 100755 --- a/MtApi/MtCommandType.cs +++ b/MtApi/MtCommandType.cs @@ -188,6 +188,9 @@ namespace MtApi RefreshRates = 150, // TerminalInfoString = 153, - SymbolInfoString = 154 + SymbolInfoString = 154, + + //Requests + MtRequest = 155 } } diff --git a/MtApi/MtConnectionException.cs b/MtApi/MtConnectionException.cs new file mode 100644 index 00000000..3f705707 --- /dev/null +++ b/MtApi/MtConnectionException.cs @@ -0,0 +1,23 @@ +using System; + +namespace MtApi +{ + public class MtConnectionException: Exception + { + public MtConnectionException() + : this(null, null) + { + } + + public MtConnectionException(string message) + : this(message, null) + { + } + + public MtConnectionException(string message, Exception exception) + : base(message, exception) + { + } + + } +} \ No newline at end of file diff --git a/MtApi/MtExecutionException.cs b/MtApi/MtExecutionException.cs new file mode 100644 index 00000000..ecec0107 --- /dev/null +++ b/MtApi/MtExecutionException.cs @@ -0,0 +1,15 @@ +using System; + +namespace MtApi +{ + public class MtExecutionException: Exception + { + public MtExecutionException(int errorCode, string message) + :base(message) + { + ErrorCode = errorCode; + } + + public int ErrorCode { get; private set; } + } +} \ No newline at end of file diff --git a/MtApi/MtOrder.cs b/MtApi/MtOrder.cs new file mode 100644 index 00000000..da9da72b --- /dev/null +++ b/MtApi/MtOrder.cs @@ -0,0 +1,30 @@ +using System; + +namespace MtApi +{ + public class MtOrder + { + public int Ticket { get; set; } + public string Symbol { get; set; } + public TradeOperation Operation { get; set; } + public double OpenPrice { get; set; } + public double ClosePrice { get; set; } + public double Lots { get; set; } + public int MtOpenTime { get; set; } + public int MtCloseTime { get; set; } + public double Profit { get; set; } + public string Comment { get; set; } + public double Commission { get; set; } + public int MagicNumber { get; set; } + + public DateTime OpenTime + { + get { return MtApiTimeConverter.ConvertFromMtTime(MtOpenTime); } + } + + public DateTime CloseTime + { + get { return MtApiTimeConverter.ConvertFromMtTime(MtCloseTime); } + } + } +} \ No newline at end of file diff --git a/MtApi/Requests/GetOrderRequest.cs b/MtApi/Requests/GetOrderRequest.cs new file mode 100644 index 00000000..cb9138f2 --- /dev/null +++ b/MtApi/Requests/GetOrderRequest.cs @@ -0,0 +1,9 @@ +namespace MtApi.Requests +{ + public class GetOrderRequest: RequestBase + { + public int Index { get; set; } + public int Select { get; set; } + public int Pool { get; set; } + } +} \ No newline at end of file diff --git a/MtApi/Requests/GetOrdersRequest.cs b/MtApi/Requests/GetOrdersRequest.cs new file mode 100644 index 00000000..cd3f1ffb --- /dev/null +++ b/MtApi/Requests/GetOrdersRequest.cs @@ -0,0 +1,7 @@ +namespace MtApi.Requests +{ + public class GetOrdersRequest: RequestBase + { + public int Pool { get; set; } + } +} \ No newline at end of file diff --git a/MtApi/Requests/RequestBase.cs b/MtApi/Requests/RequestBase.cs new file mode 100644 index 00000000..fac684c9 --- /dev/null +++ b/MtApi/Requests/RequestBase.cs @@ -0,0 +1,6 @@ +namespace MtApi.Requests +{ + public abstract class RequestBase + { + } +} diff --git a/MtApi/Requests/RequestContainer.cs b/MtApi/Requests/RequestContainer.cs new file mode 100644 index 00000000..9075086f --- /dev/null +++ b/MtApi/Requests/RequestContainer.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace MtApi.Requests +{ + public class RequestContainer + { + private static readonly Dictionary RequestTypes = new Dictionary(); + + static RequestContainer() + { + RequestTypes[typeof (GetOrderRequest)] = RequestType.GetOrder; + RequestTypes[typeof(GetOrdersRequest)] = RequestType.GetOrders; + } + + public RequestType RequestType { get; set; } + public RequestBase Request { get; set; } + + public virtual string Serialize() + { + return JsonConvert.SerializeObject(this); + } + + public static RequestContainer CreateNew(T request) where T: RequestBase + { + if (RequestTypes.ContainsKey(request.GetType()) == false) + throw new ArgumentException("Unknown request type"); + + return new RequestContainer { RequestType = RequestTypes[request.GetType()], Request = request }; + } + } +} \ No newline at end of file diff --git a/MtApi/Requests/RequestType.cs b/MtApi/Requests/RequestType.cs new file mode 100644 index 00000000..dca2cd9f --- /dev/null +++ b/MtApi/Requests/RequestType.cs @@ -0,0 +1,9 @@ +namespace MtApi.Requests +{ + public enum RequestType + { + Unknown = 0, + GetOrder = 1, + GetOrders = 2 + } +} \ No newline at end of file diff --git a/MtApi/Responses/GetOrderResponse.cs b/MtApi/Responses/GetOrderResponse.cs new file mode 100644 index 00000000..a99d3b68 --- /dev/null +++ b/MtApi/Responses/GetOrderResponse.cs @@ -0,0 +1,7 @@ +namespace MtApi.Responses +{ + public class GetOrderResponse: ResponseBase + { + public MtOrder Order { get; set; } + } +} \ No newline at end of file diff --git a/MtApi/Responses/GetOrdersResponse.cs b/MtApi/Responses/GetOrdersResponse.cs new file mode 100644 index 00000000..20e927a1 --- /dev/null +++ b/MtApi/Responses/GetOrdersResponse.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace MtApi.Responses +{ + public class GetOrdersResponse: ResponseBase + { + public List Orders { get; set; } + } +} \ No newline at end of file diff --git a/MtApi/Responses/ResponseBase.cs b/MtApi/Responses/ResponseBase.cs new file mode 100644 index 00000000..470f0b6a --- /dev/null +++ b/MtApi/Responses/ResponseBase.cs @@ -0,0 +1,8 @@ +namespace MtApi.Responses +{ + public class ResponseBase + { + public int ErrorCode { get; set; } + public string ErrorMessage { get; set; } + } +} \ No newline at end of file diff --git a/MtApi/packages.config b/MtApi/packages.config new file mode 100644 index 00000000..55658b8f --- /dev/null +++ b/MtApi/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/TestApiClientUI/Form1.Designer.cs b/TestApiClientUI/Form1.Designer.cs index 0fab002c..2eaa6e37 100755 --- a/TestApiClientUI/Form1.Designer.cs +++ b/TestApiClientUI/Form1.Designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); this.textBoxServerName = new System.Windows.Forms.TextBox(); this.textBoxPort = new System.Windows.Forms.TextBox(); this.buttonConnect = new System.Windows.Forms.Button(); @@ -46,6 +47,10 @@ this.listBoxEventLog = new System.Windows.Forms.ListBox(); this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabPage2 = new System.Windows.Forms.TabPage(); + this.button17 = new System.Windows.Forms.Button(); + this.comboBox2 = new System.Windows.Forms.ComboBox(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.button16 = new System.Windows.Forms.Button(); this.label21 = new System.Windows.Forms.Label(); this.textBoxIndexTicket = new System.Windows.Forms.TextBox(); this.comboBoxSelectedCommand = new System.Windows.Forms.ComboBox(); @@ -79,6 +84,7 @@ this.label9 = new System.Windows.Forms.Label(); this.listBoxSendedOrders = new System.Windows.Forms.ListBox(); this.tabPage1 = new System.Windows.Forms.TabPage(); + this.buttonRefreshRates = new System.Windows.Forms.Button(); this.label22 = new System.Windows.Forms.Label(); this.textBoxErrorCode = new System.Windows.Forms.TextBox(); this.button3 = new System.Windows.Forms.Button(); @@ -111,9 +117,10 @@ this.button6 = new System.Windows.Forms.Button(); this.listBoxProceHistory = new System.Windows.Forms.ListBox(); this.tabPage6 = new System.Windows.Forms.TabPage(); + this.button15 = new System.Windows.Forms.Button(); this.button14 = new System.Windows.Forms.Button(); this.button13 = new System.Windows.Forms.Button(); - this.buttonRefreshRates = new System.Windows.Forms.Button(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); this.groupBox1.SuspendLayout(); this.statusStrip1.SuspendLayout(); this.groupBox2.SuspendLayout(); @@ -202,7 +209,7 @@ this.toolStripStatusConnection}); this.statusStrip1.Location = new System.Drawing.Point(0, 637); this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(638, 22); + this.statusStrip1.Size = new System.Drawing.Size(713, 22); this.statusStrip1.TabIndex = 11; this.statusStrip1.Text = "statusStrip1"; // @@ -225,6 +232,9 @@ // // listViewQuotes // + this.listViewQuotes.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.listViewQuotes.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.colSymbol, this.colBid, @@ -256,14 +266,20 @@ // // listBoxEventLog // + this.listBoxEventLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listBoxEventLog.ContextMenuStrip = this.contextMenuStrip1; this.listBoxEventLog.FormattingEnabled = true; this.listBoxEventLog.Location = new System.Drawing.Point(12, 543); this.listBoxEventLog.Name = "listBoxEventLog"; - this.listBoxEventLog.Size = new System.Drawing.Size(611, 82); + this.listBoxEventLog.Size = new System.Drawing.Size(690, 82); this.listBoxEventLog.TabIndex = 14; // // tabControl1 // + this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.tabControl1.Controls.Add(this.tabPage2); this.tabControl1.Controls.Add(this.tabPage1); this.tabControl1.Controls.Add(this.tabPage3); @@ -273,11 +289,15 @@ this.tabControl1.Location = new System.Drawing.Point(12, 147); this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(615, 388); + this.tabControl1.Size = new System.Drawing.Size(690, 388); this.tabControl1.TabIndex = 15; // // tabPage2 // + this.tabPage2.Controls.Add(this.button17); + this.tabPage2.Controls.Add(this.comboBox2); + this.tabPage2.Controls.Add(this.comboBox1); + this.tabPage2.Controls.Add(this.button16); this.tabPage2.Controls.Add(this.label21); this.tabPage2.Controls.Add(this.textBoxIndexTicket); this.tabPage2.Controls.Add(this.comboBoxSelectedCommand); @@ -290,26 +310,71 @@ this.tabPage2.Location = new System.Drawing.Point(4, 22); this.tabPage2.Name = "tabPage2"; this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(607, 362); + this.tabPage2.Size = new System.Drawing.Size(682, 362); this.tabPage2.TabIndex = 1; this.tabPage2.Text = "Trade Operations"; this.tabPage2.UseVisualStyleBackColor = true; // + // button17 + // + this.button17.Location = new System.Drawing.Point(601, 290); + this.button17.Name = "button17"; + this.button17.Size = new System.Drawing.Size(75, 23); + this.button17.TabIndex = 12; + this.button17.Text = "GetOrders"; + this.button17.UseVisualStyleBackColor = true; + this.button17.Click += new System.EventHandler(this.button17_Click); + // + // comboBox2 + // + this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox2.FormattingEnabled = true; + this.comboBox2.Items.AddRange(new object[] { + "MODE_TRADES", + "MODE_HISTORY"}); + this.comboBox2.Location = new System.Drawing.Point(481, 261); + this.comboBox2.Name = "comboBox2"; + this.comboBox2.Size = new System.Drawing.Size(114, 21); + this.comboBox2.TabIndex = 11; + // + // comboBox1 + // + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "SELECT_BY_POS", + "SELECT_BY_TICKET"}); + this.comboBox1.Location = new System.Drawing.Point(356, 261); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(119, 21); + this.comboBox1.TabIndex = 10; + // + // button16 + // + this.button16.Location = new System.Drawing.Point(601, 261); + this.button16.Name = "button16"; + this.button16.Size = new System.Drawing.Size(75, 23); + this.button16.TabIndex = 9; + this.button16.Text = "GetOrder"; + this.button16.UseVisualStyleBackColor = true; + this.button16.Click += new System.EventHandler(this.button16_Click); + // // label21 // this.label21.AutoSize = true; this.label21.Location = new System.Drawing.Point(213, 264); this.label21.Name = "label21"; - this.label21.Size = new System.Drawing.Size(36, 13); + this.label21.Size = new System.Drawing.Size(71, 13); this.label21.TabIndex = 8; - this.label21.Text = "Index:"; + this.label21.Text = "Index/Ticket:"; // // textBoxIndexTicket // - this.textBoxIndexTicket.Location = new System.Drawing.Point(255, 261); + this.textBoxIndexTicket.Location = new System.Drawing.Point(290, 261); this.textBoxIndexTicket.Name = "textBoxIndexTicket"; this.textBoxIndexTicket.Size = new System.Drawing.Size(60, 20); this.textBoxIndexTicket.TabIndex = 7; + this.textBoxIndexTicket.Text = "0"; // // comboBoxSelectedCommand // @@ -364,10 +429,12 @@ // // listBoxClosedOrders // + this.listBoxClosedOrders.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.listBoxClosedOrders.FormattingEnabled = true; this.listBoxClosedOrders.Location = new System.Drawing.Point(213, 151); this.listBoxClosedOrders.Name = "listBoxClosedOrders"; - this.listBoxClosedOrders.Size = new System.Drawing.Size(388, 108); + this.listBoxClosedOrders.Size = new System.Drawing.Size(463, 108); this.listBoxClosedOrders.TabIndex = 5; // // button2 @@ -613,11 +680,14 @@ // // listBoxSendedOrders // + this.listBoxSendedOrders.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.listBoxSendedOrders.FormattingEnabled = true; this.listBoxSendedOrders.Location = new System.Drawing.Point(213, 23); this.listBoxSendedOrders.Name = "listBoxSendedOrders"; this.listBoxSendedOrders.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple; - this.listBoxSendedOrders.Size = new System.Drawing.Size(388, 108); + this.listBoxSendedOrders.Size = new System.Drawing.Size(463, 108); this.listBoxSendedOrders.TabIndex = 1; // // tabPage1 @@ -630,11 +700,21 @@ this.tabPage1.Location = new System.Drawing.Point(4, 22); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(607, 362); + this.tabPage1.Size = new System.Drawing.Size(682, 362); this.tabPage1.TabIndex = 2; this.tabPage1.Text = "Check Status"; this.tabPage1.UseVisualStyleBackColor = true; // + // buttonRefreshRates + // + this.buttonRefreshRates.Location = new System.Drawing.Point(10, 172); + this.buttonRefreshRates.Name = "buttonRefreshRates"; + this.buttonRefreshRates.Size = new System.Drawing.Size(128, 23); + this.buttonRefreshRates.TabIndex = 4; + this.buttonRefreshRates.Text = "RefreshRates"; + this.buttonRefreshRates.UseVisualStyleBackColor = true; + this.buttonRefreshRates.Click += new System.EventHandler(this.buttonRefreshRates_Click); + // // label22 // this.label22.AutoSize = true; @@ -698,7 +778,7 @@ this.tabPage3.Location = new System.Drawing.Point(4, 22); this.tabPage3.Name = "tabPage3"; this.tabPage3.Padding = new System.Windows.Forms.Padding(3); - this.tabPage3.Size = new System.Drawing.Size(607, 362); + this.tabPage3.Size = new System.Drawing.Size(682, 362); this.tabPage3.TabIndex = 3; this.tabPage3.Text = "Account Information"; this.tabPage3.UseVisualStyleBackColor = true; @@ -809,7 +889,7 @@ this.tabPage4.Location = new System.Drawing.Point(4, 22); this.tabPage4.Name = "tabPage4"; this.tabPage4.Padding = new System.Windows.Forms.Padding(3); - this.tabPage4.Size = new System.Drawing.Size(607, 362); + this.tabPage4.Size = new System.Drawing.Size(682, 362); this.tabPage4.TabIndex = 4; this.tabPage4.Text = "MarketInfo"; this.tabPage4.UseVisualStyleBackColor = true; @@ -891,7 +971,7 @@ this.tabPage5.Location = new System.Drawing.Point(4, 22); this.tabPage5.Name = "tabPage5"; this.tabPage5.Padding = new System.Windows.Forms.Padding(3); - this.tabPage5.Size = new System.Drawing.Size(607, 362); + this.tabPage5.Size = new System.Drawing.Size(682, 362); this.tabPage5.TabIndex = 5; this.tabPage5.Text = "Timeframes"; this.tabPage5.UseVisualStyleBackColor = true; @@ -1009,16 +1089,27 @@ // // tabPage6 // + this.tabPage6.Controls.Add(this.button15); this.tabPage6.Controls.Add(this.button14); this.tabPage6.Controls.Add(this.button13); this.tabPage6.Location = new System.Drawing.Point(4, 22); this.tabPage6.Name = "tabPage6"; this.tabPage6.Padding = new System.Windows.Forms.Padding(3); - this.tabPage6.Size = new System.Drawing.Size(607, 362); + this.tabPage6.Size = new System.Drawing.Size(682, 362); this.tabPage6.TabIndex = 6; this.tabPage6.Text = "Client Terminal"; this.tabPage6.UseVisualStyleBackColor = true; // + // button15 + // + this.button15.Location = new System.Drawing.Point(223, 184); + this.button15.Name = "button15"; + this.button15.Size = new System.Drawing.Size(75, 23); + this.button15.TabIndex = 2; + this.button15.Text = "button15"; + this.button15.UseVisualStyleBackColor = true; + this.button15.Click += new System.EventHandler(this.button15_Click); + // // button14 // this.button14.Location = new System.Drawing.Point(13, 45); @@ -1039,21 +1130,18 @@ this.button13.UseVisualStyleBackColor = true; this.button13.Click += new System.EventHandler(this.button13_Click); // - // buttonRefreshRates + // contextMenuStrip1 // - this.buttonRefreshRates.Location = new System.Drawing.Point(10, 172); - this.buttonRefreshRates.Name = "buttonRefreshRates"; - this.buttonRefreshRates.Size = new System.Drawing.Size(128, 23); - this.buttonRefreshRates.TabIndex = 4; - this.buttonRefreshRates.Text = "RefreshRates"; - this.buttonRefreshRates.UseVisualStyleBackColor = true; - this.buttonRefreshRates.Click += new System.EventHandler(this.buttonRefreshRates_Click); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(61, 4); + this.contextMenuStrip1.Text = "Clear"; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(638, 659); + this.ClientSize = new System.Drawing.Size(713, 659); + this.ContextMenuStrip = this.contextMenuStrip1; this.Controls.Add(this.listBoxEventLog); this.Controls.Add(this.tabControl1); this.Controls.Add(this.groupBox2); @@ -1175,6 +1263,12 @@ private System.Windows.Forms.Button button13; private System.Windows.Forms.Button button14; private System.Windows.Forms.Button buttonRefreshRates; + private System.Windows.Forms.Button button15; + private System.Windows.Forms.Button button16; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.ComboBox comboBox2; + private System.Windows.Forms.Button button17; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; } } diff --git a/TestApiClientUI/Form1.cs b/TestApiClientUI/Form1.cs index 1da7951d..5bb34d0d 100755 --- a/TestApiClientUI/Form1.cs +++ b/TestApiClientUI/Form1.cs @@ -11,6 +11,7 @@ using System.IO; using MtApi; using System.Net; using System.Diagnostics; +using System.Threading.Tasks; namespace TestApiClientUI { @@ -32,6 +33,9 @@ namespace TestApiClientUI apiClient.ConnectionStateChanged += apiClient_ConnectionStateChanged; initOrderCommandsGroup(); + + comboBox1.SelectedIndex = 0; + comboBox2.SelectedIndex = 0; } private void initOrderCommandsGroup() @@ -62,14 +66,14 @@ namespace TestApiClientUI GroupOrderCommands.Add(new PerformCommandHandler(orderType)); } - private void RunOnUIThread(Action action) + private void RunOnUiThread(Action action) { this.BeginInvoke(action); } private void apiClient_ConnectionStateChanged(object sender, MtConnectionEventArgs e) { - RunOnUIThread(() => + RunOnUiThread(() => { toolStripStatusConnection.Text = e.Status.ToString(); }); @@ -77,11 +81,11 @@ namespace TestApiClientUI switch (e.Status) { case MtConnectionState.Connected: - RunOnUIThread(onConnected); + RunOnUiThread(onConnected); break; case MtConnectionState.Disconnected: case MtConnectionState.Failed: - RunOnUIThread(onDisconnected); + RunOnUiThread(onDisconnected); break; } } @@ -90,7 +94,7 @@ namespace TestApiClientUI { string instrument = e.Quote.Instrument; - RunOnUIThread(() => + RunOnUiThread(() => { removeQuote(e.Quote); }); @@ -98,7 +102,7 @@ namespace TestApiClientUI private void apiClient_QuoteAdded(object sender, MtQuoteEventArgs e) { - RunOnUIThread(() => + RunOnUiThread(() => { addNewQuote(e.Quote); }); @@ -217,7 +221,7 @@ namespace TestApiClientUI { int orderId = apiClient.OrderSend(symbol, command, volume, price, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color); - RunOnUIThread(() => + RunOnUiThread(() => { if (orderId >= 0) { @@ -542,9 +546,12 @@ namespace TestApiClientUI private void addToLog(string msg) { - listBoxEventLog.Items.Add(msg); - listBoxEventLog.SetSelected(listBoxEventLog.Items.Count - 1, true); - listBoxEventLog.SetSelected(listBoxEventLog.Items.Count - 1, false); + RunOnUiThread(() => + { + listBoxEventLog.Items.Add(msg); + listBoxEventLog.SetSelected(listBoxEventLog.Items.Count - 1, true); + listBoxEventLog.SetSelected(listBoxEventLog.Items.Count - 1, false); + }); } private void button3_Click(object sender, EventArgs e) @@ -857,5 +864,117 @@ namespace TestApiClientUI var retVal = apiClient.RefreshRates(); addToLog(string.Format("RefreshRates result: {0}", retVal)); } + + private void button15_Click(object sender, EventArgs e) + { + for (var i = 0; i < 4; i++) + { + var ticket = i; + Task.Factory.StartNew(() => + { + MtOrder order = null; + try + { + order = apiClient.GetOrder(ticket, OrderSelectMode.SELECT_BY_POS, OrderSelectSource.MODE_TRADES); + } + catch (MtConnectionException ex) + { + addToLog("MtExecutionException: " + ex.Message); + } + catch (MtExecutionException ex) + { + addToLog("MtExecutionException: " + ex.Message); + } + + string result; + if (order != null) + { + result = + string.Format( + "Order: Ticket = {0}, Symbol = {1}, Operation = {2}, OpenPrice = {3}, ClosePrice = {4}, Lots = {5}, Profit = {6}, Comment = {7}, Commission = {8}, MagicNumber = {9}, OpenTime = {10}, CloseTime = {11}", + order.Ticket, order.Symbol, order.Operation, order.OpenPrice, order.ClosePrice, order.Lots, order.Profit, order.Comment, order.Commission, order.MagicNumber, order.OpenTime, order.CloseTime); + } + else + { + result = "Order is null"; + } + + addToLog(result); + }); + } + } + + private void button16_Click(object sender, EventArgs e) + { + var ticket = int.Parse(textBoxIndexTicket.Text); + var selectMode = (OrderSelectMode) comboBox1.SelectedIndex; + var selectSource = (OrderSelectSource) comboBox2.SelectedIndex; + + MtOrder order = null; + try + { + order = apiClient.GetOrder(ticket, selectMode, selectSource); + } + catch (MtConnectionException ex) + { + addToLog("MtExecutionException: " + ex.Message); + return; + } + catch (MtExecutionException ex) + { + addToLog("MtExecutionException: " + ex.Message + "; ErrorCode = " + ex.ErrorCode); + return; + } + + if (order == null) + { + addToLog("Order is null"); + return; + } + + var result = + string.Format( + "Order: Ticket = {0}, Symbol = {1}, Operation = {2}, OpenPrice = {3}, ClosePrice = {4}, Lots = {5}, Profit = {6}, Comment = {7}, Commission = {8}, MagicNumber = {9}, OpenTime = {10}, CloseTime = {11}", + order.Ticket, order.Symbol, order.Operation, order.OpenPrice, order.ClosePrice, order.Lots, order.Profit, order.Comment, order.Commission, order.MagicNumber, order.OpenTime, order.CloseTime); + addToLog(result); + } + + private void button17_Click(object sender, EventArgs e) + { + var selectSource = (OrderSelectSource)comboBox2.SelectedIndex; + + + IEnumerable orders = null; + try + { + orders = apiClient.GetOrders(selectSource); + } + catch (MtConnectionException ex) + { + addToLog("MtExecutionException: " + ex.Message); + return; + } + catch (MtExecutionException ex) + { + addToLog("MtExecutionException: " + ex.Message + "; ErrorCode = " + ex.ErrorCode); + return; + } + + if (orders == null) + { + addToLog("Orders is null"); + return; + + } + + foreach (var order in orders) + { + var result = + string.Format( + "Order: Ticket = {0}, Symbol = {1}, Operation = {2}, OpenPrice = {3}, ClosePrice = {4}, Lots = {5}, Profit = {6}, Comment = {7}, Commission = {8}, MagicNumber = {9}, OpenTime = {10}, CloseTime = {11}", + order.Ticket, order.Symbol, order.Operation, order.OpenPrice, order.ClosePrice, order.Lots, order.Profit, order.Comment, order.Commission, order.MagicNumber, order.OpenTime, order.CloseTime); + addToLog(result); + } + } } } diff --git a/TestApiClientUI/Form1.resx b/TestApiClientUI/Form1.resx index a97b9fce..47bb78b4 100755 --- a/TestApiClientUI/Form1.resx +++ b/TestApiClientUI/Form1.resx @@ -120,4 +120,7 @@ 17, 17 + + 133, 17 + \ No newline at end of file diff --git a/mq4/MtApi.ex4 b/mq4/MtApi.ex4 index bb54353da664bb5ee15aaa03768f2f8ebf8d33b4..838f11fdeffccfeef690ae22a311916c6c7f562b 100755 GIT binary patch literal 174540 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

g39k`c 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⁣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

;UmM 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⪻ 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 b?(BP$%N?$)DEM`BO4`iHa6(wRXx`Gr$9s=m diff --git a/mq4/MtApi.mq4 b/mq4/MtApi.mq4 index 26596ef8..aa7c0f6d 100755 --- a/mq4/MtApi.mq4 +++ b/mq4/MtApi.mq4 @@ -3,6 +3,7 @@ #include #include +#include #import "MTConnector.dll" bool initExpert(int expertHandle, int port, string symbol, double bid, double ask, string& err); @@ -40,6 +41,7 @@ string subjectValue; string some_textValue; string nameValue; string prefix_nameValue; +string requestValue; int barsCount; int priceCount; @@ -126,17 +128,18 @@ double myAsk; int preinit() { - message = "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" + ""; - symbolValue = "222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" + ""; - commentValue = "333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333" + ""; - msgValue = "444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444" + ""; - captionValue = "555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555" + ""; - filenameValue = "666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666" + ""; - ftp_pathValue = "777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777" + ""; - subjectValue = "888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888" + ""; - some_textValue = "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + ""; - nameValue = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ""; - prefix_nameValue = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + ""; + StringInit(message,200,0); + StringInit(symbolValue,200,0); + StringInit(commentValue,200,0); + StringInit(msgValue,200,0); + StringInit(captionValue,200,0); + StringInit(filenameValue,200,0); + StringInit(ftp_pathValue,200,0); + StringInit(subjectValue,200,0); + StringInit(some_textValue,200,0); + StringInit(nameValue,200,0); + StringInit(prefix_nameValue,200,0); + StringInit(requestValue, 500, "\0"); return (0); } @@ -232,7 +235,12 @@ int executeCommand() return (0); } - int commandType = pCommandType; + int commandType = pCommandType; + + if (commandType > 0) + { + Print("executeCommand: commnad type = ", commandType); + } switch (commandType) { @@ -240,6 +248,24 @@ int executeCommand() //NoCommand break; + case 155: //SignalServiceCommand + { + if (!getStringValue(ExpertHandle, 0, requestValue)) + { + PrintParamError("Signal"); + } + + string response = ""; + + if (requestValue != "") + { + Print("executeCommand: incoming signal = ", requestValue); + response = OnRequest(requestValue); + } + + sendStringResponse(ExpertHandle, response); + } + break; case 1: // OrderSend if (!getStringValue(ExpertHandle, 0, symbolValue)) { @@ -3502,7 +3528,7 @@ int executeCommand() Print("Unknown command type = ", commandType); sendVoidResponse(ExpertHandle); break; - } + } return (commandType); } @@ -3556,4 +3582,156 @@ bool OrderCloseAll() } return (true); -} \ No newline at end of file +} + +string CreateErrorResponse(int code, string message) +{ + JSONObject *joResponse = new JSONObject(); + joResponse.put("ErrorCode", new JSONNumber(code)); + joResponse.put("ErrorMessage", new JSONString(message)); + + string result = joResponse.toString(); + delete joResponse; + return result; +} + +string CreateSuccessResponse(string responseName, JSONValue* responseBody) +{ + JSONObject *joResponse = new JSONObject(); + joResponse.put("ErrorCode", new JSONNumber(ERR_NO_ERROR)); + + if (responseBody != NULL) + { + joResponse.put(responseName, responseBody); + } + + string result = joResponse.toString(); + delete joResponse; + return result; +} + +string OnRequest(string json) +{ + string response = ""; + + JSONParser *parser = new JSONParser(); + JSONValue *jv = parser.parse(json); + + if(jv == NULL) + { + Print("OnRequest [ERROR]:" + (string)parser.getErrorCode() + parser.getErrorMessage()); + } + else + { + if(jv.isObject()) + { + JSONObject *jo = jv; + int requestType = jo.getInt("RequestType"); + JSONObject *joRequest = jo.getObject("Request"); + + if (joRequest != NULL) + { + Print("OnRequest: RequestType = ", requestType); + + switch(requestType) + { + case 1: //GetOrder + response = ExecuteRequestGetOrder(joRequest); + break; + case 2: //GetOrders + response = ExecuteRequestGetOrders(joRequest); + break; + default: + Print("OnRequest [WARNING]: Unknown request type ", requestType); + response = CreateErrorResponse(-1, "Unknown request type"); + break; + } + } + else + { + Print("OnRequest [WARNING]: Request field is not defined"); + response = CreateErrorResponse(-1, "Request field is not defined"); + } + } + + delete jv; + } + + delete parser; + + Print("OnRequest: Response = ", response); + + return response; +} + +JSONObject* GetOrderJson(int index, int select, int pool) +{ + if (OrderSelect(index, select, pool) == false) + { + return NULL; + } + + int ticket = OrderTicket(); + string symbol = OrderSymbol(); + int operation = OrderType(); + double openPrice = OrderOpenPrice(); + double closePrice = OrderClosePrice(); + double lots = OrderLots(); + double profit = OrderProfit(); + string comment = OrderComment(); + double commission = OrderCommission(); + int magicNumber = OrderMagicNumber(); + datetime openTime = OrderOpenTime(); + datetime closeTime = OrderCloseTime(); + + JSONObject *joOrder = new JSONObject(); + joOrder.put("Ticket", new JSONNumber(ticket)); + joOrder.put("Symbol", new JSONString(symbol)); + joOrder.put("Operation", new JSONNumber(operation)); + joOrder.put("OpenPrice", new JSONNumber(openPrice)); + joOrder.put("ClosePrice", new JSONNumber(closePrice)); + joOrder.put("Lots", new JSONNumber(lots)); + joOrder.put("Profit", new JSONNumber(profit)); + joOrder.put("Comment", new JSONString(comment)); + joOrder.put("Commission", new JSONString(commission)); + joOrder.put("MagicNumber", new JSONNumber(magicNumber)); + joOrder.put("Commission", new JSONString(commission)); + joOrder.put("MagicNumber", new JSONNumber(magicNumber)); + joOrder.put("MtOpenTime", new JSONNumber(openTime)); + joOrder.put("MtCloseTime", new JSONNumber(closeTime)); + + return joOrder; +} + +string ExecuteRequestGetOrder(JSONObject *jo) +{ + int index = jo.getInt("Index"); + int select = jo.getInt("Select"); + int pool = jo.getInt("Pool"); + + Print("ExecuteRequestGetOrder: Index = ", index, "; Select = ", select, "; Pool = ", pool); + + JSONObject* joOrder = GetOrderJson(index, select, pool); + if (joOrder == NULL) + return CreateErrorResponse(GetLastError(), "GetOrder failed"); + return CreateSuccessResponse("Order", joOrder); +} + +string ExecuteRequestGetOrders(JSONObject *jo) +{ + int pool = jo.getInt("Pool"); + + Print("ExecuteRequestGetOrders: Pool = ", pool); + + int total=OrdersTotal(); + JSONArray* joOrders = new JSONArray(); + for(int pos = 0; pos < total; pos++) + { + JSONObject* joOrder = GetOrderJson(pos, SELECT_BY_POS, pool); + if (joOrder == NULL) + return CreateErrorResponse(GetLastError(), "GetOrders failed"); + joOrders.put(pos, joOrder); + } + + return CreateSuccessResponse("Orders", joOrders); +} diff --git a/mq4/hash.mqh b/mq4/hash.mqh new file mode 100644 index 00000000..a6f69c94 --- /dev/null +++ b/mq4/hash.mqh @@ -0,0 +1,672 @@ +// $Id: hash.mqh 125 2014-03-03 08:38:32Z ydrol $ +#ifndef YDROL_HASH_MQH +#define YDROL_HASH_MQH + +//#property strict + +/* + This is losely ported from a C version I have which was in turn modified from hashtable.c by Christopher Clark. + Copyright (C) 2014, Andrew Lord (NICKNAME=lordy) + Copyright (C) 2002, 2004 Christopher Clark + + 2014/02/21 - Readded PrimeNumber sizes and auto rehashing when load factor hit. +*/ + + + +/// Any value stored in a Hash must be a subclass of HashValue +class HashValue { +}; + +/// Linked list of values - there will be one list for each hash value +class HashEntry { + public: + string _key; + HashValue * _val; + HashEntry *_next; + + HashEntry() { + _key=NULL; + _val=NULL; + _next=NULL; + } + + HashEntry(string key,HashValue* val) { + _key=key; + _val=val; + _next=NULL; + } + + ~HashEntry() { + } +}; + +/// Convenience class for storing strings as hash values. +class HashString : public HashValue { + private: + string val; + public: + HashString(string v) { val=v;} + string getVal() { return val; } +}; + +/// Convenience class for storing doubles as hash values. +class HashDouble : public HashValue { + private: + double val; + public: + HashDouble(double v) { val=v;} + double getVal() { return val; } +}; + +/// Convenience class for storing ints as hash values. +class HashInt : public HashValue { + private: + int val; + public: + HashInt(int v) { val=v;} + int getVal() { return val; } +}; + +/// Convenience class for storing longs as hash values. +class HashLong : public HashValue { + private: + long val; + public: + HashLong(datetime v) { val=v;} + long getVal() { return val; } + +}; + +/// Convenience class for storing datetimes as hash values. +class HashDatetime : public HashValue { + private: + datetime val; + public: + HashDatetime(datetime v) { val=v;} + datetime getVal() { return val; } +}; + +/// +/// Hash class allows objects to be stored in a table index by strings. +/// the stored Objects must be a sub class of the HashValue class. +/// +/// There are some convenience classes to hold atomic types as values HashString,HashDouble,HashInt +/// +///EXAMPLE: +/// +///

+/// class myClass: public HashValue {
+///   public: int v;
+///   myClass(int a) { v = a;}
+/// };
+///
+/// // Create the objects as needed
+///
+///      myClass *a = new myClass(1);
+///      myClass *b = new myClass(2);
+///      myClass *c = new myClass(3);
+///
+/// // Then to insert into hash etc.
+///
+///      Hash* h = new Hash(193,true); 
+///      // 'true' means when the hash will adopt the values and delete them when they are removed from the hash or when the hash is deleted.
+///
+///      h.hPut("a",a);
+///      h.hPut("b",b);
+///      h.hPut("c",c);
+///
+///      myClass *d = h.hGet("b");
+///
+///      etc.
+///
+/// // Iterate over hash
+///    HashLoop *l
+///    for (l = new HashLoop(h) ; l.hasNext() ; l.next()  ) {
+///        string key = l.key();
+///        MyClass *c = l.val();
+///    }
+///    delete l;
+///
+///    // Delete from hash - This will also delete 'a' because we set the 'adopt' flag on the hash.
+///    h.hDel("a");
+///
+///    //Delete the hash - this will also delete 'b' and 'c' because of the adopt flag.
+///    delete h;
+/// 
+class Hash : public HashValue { + +private: + /// Number of slots in the hashtable. + /// this should be approx number of elements to store. Depending on hash algorithm + /// it may optimally be a prime or a power of two etc. but probably not important + /// for MQL4 performance. A future optimisation might be to move the hashcode function to a DLL?? + uint _hashSlots; + + /// Number of elements at which hash will get resized. + int _resizeThreshold; + + /// number of things in the hash + int _hashEntryCount; + + /// an array of linked lists (HashEntry). one for each hash value. + /// To store an object against a string(key) - get the string hashcode, then insert pair (key,val) into the linked list for that hashcode. + /// To fetch an object against a string(key) - get the string hashcode, get linked-list at that hashcode index, then search for the key and return the val. + HashEntry* _buckets[]; + + /// If true the hash will free(delete) values as they are removed, or at cleanup. + bool _adoptValues; + + int _errCode; + string _errText; + + void init(uint size,bool adoptValues) + { + _hashSlots = 0; + _hashEntryCount = 0; + clearError(); + setAdoptValues(adoptValues); + + rehash(size); + } + + // Hash table distribution is better when size is prime, eg if hash function procduces numbers + // that are multiples of x, then there may be grouping occuring around gcd(x,slots) gcd(2x,slots) etc + // using a prime size helps spread the distribution. + uint size2prime(uint size) { + int pmax=ArraySize(_primes); + for(int p=0 ; p= size) { + return _primes[p]; + } + } + return size; + } + + /// Primes that approx double in size, used for hash table sizes to avoid gcd causing bunching + static uint _primes[]; + + /// After reviewing quite a few hash functions I settled on the one below. + /// http://www.cse.yorku.ca/~oz/hash.html + /// this is the bottleneck function. Shame mql hash no default hash method for objects. + uint hash(string s) + { + + uchar c[]; + uint h = 0; + + if (s != NULL) { + h = 5381; + int n = StringToCharArray(s,c); + for(int i = 0 ; i < n ; i++ ) { + h = ((h << 5 ) + h ) + c[i]; + } + } + return h % _hashSlots; + } + void clearError() { + setError(0,""); + } + void setError(int e,string m) { + _errCode = e; + _errText = m; + //error((string)e,m); + } + +public: + + /// Constructor: Create a Hash Object + Hash() { + init(17,true); + } + + + /// Constructor: Create a Hash Object + /// @param adoptValues : If true the hash destructor will delete all dynamically allocated hash values. + Hash(bool adoptValues) { + init(17,adoptValues); + } + + /// Constructor: Create a Hash Object + /// @param size : Approximate size (actual size will be a larger prime number close to a power of 2) + /// @param adoptValues : If true the hash destructor will delete all dynamically allocated hash values. + Hash(int size,bool adoptValues) { + init(size,adoptValues); + } + + ~Hash() { + + // Free entries. + for(uint i = 0 ; i< _hashSlots ; i++) { + HashEntry *nextEntry = NULL; + for(HashEntry *entry = _buckets[i] ; entry!= NULL ; entry = nextEntry ) + { + nextEntry = entry._next; + + if (_adoptValues && entry._val != NULL && CheckPointer(entry._val) == POINTER_DYNAMIC ) { + delete entry._val; + } + delete entry; + } + _buckets[i] = NULL; + } + } + + /// Return any error that has occured. This should be used when + /// retriving values in a Hash that may contain NULLs. hGet() + /// methods can return NULL if not found, in which case getErrorCode + /// will be set. + int getErrCode() { + return _errCode; + } + /// Return text of the error message. + string getErrText() { + return _errText; + } + + /// If true the hash destructor will delete all dynamically allocated hash values. + void setAdoptValues(bool v) { + _adoptValues = v; + } + + /// True if the hash destructor will delete all dynamically allocated hash values. + bool getAdoptValues() { + return _adoptValues; + } + + private: + uint _foundIndex; // After find() is called is set to hashindex for name whether found or not. + HashEntry* _foundEntry; // After find() is called is set to the HashEntry that contains the key. + HashEntry* _foundPrev; // After find() is called is set to the HashEntry before the entry + // (could use double linked list but requires more memory). + + /// Look for the required entry for key 'name' true if found. + bool find(string keyName) { + + //Alert("finding"); + bool found = false; + + // Get the index using the hashcode of the string + _foundIndex = hash(keyName); + + + if (_foundIndex>_hashSlots ) { + + setError(1,"hGet: bad hashIndex="+(string)_foundIndex+" size "+(string)_hashSlots); + + } else { + + // Search the linked list determined by the index. + + for(HashEntry *e = _buckets[_foundIndex] ; e != NULL ; e = e._next ) { + if (e._key == keyName) { + _foundEntry = e; + found=true; + break; + } + // Track the item before the target item in case deleting from single linked list. + _foundPrev = e; + } + } + + return found; + } + + public: + + /// This is used by the HashLoop class to get start of LinkedList at bucket[i] + HashEntry*getEntry(int i) { + return _buckets[i]; + } + + /// Return the number of slots/buckets (not number of elements) + uint getSlots() { + return _hashSlots; + } + /// Return the number of elements in the Hash + int getCount() { + return _hashEntryCount; + } + + /// Change the hash size and re-allocate values to new buckets. + bool rehash(uint newSize) { + bool ret = false; + HashEntry* oldTable[]; + + uint oldSize = _hashSlots; + newSize = size2prime(newSize); + //info("rehashing from "+(string)_hashSlots+" to "+(string)newSize+" "+(string)GetTickCount()); + + if (newSize <= getSlots()) { + setError(2,"rehash "+(string)newSize+" <= "+(string)_hashSlots); + } else if (ArrayResize(_buckets,newSize) != newSize) { + setError(3,"unable to resize "); + } else if (ArrayResize(oldTable,oldSize) != oldSize) { + setError(4,"unable to resize old copy "); + } else { + //Copy old table. + uint i; + for(i = 0 ; i < oldSize ; i++ ) oldTable[i] = _buckets[i]; + // Init new entries - not sure if MQL does this anyway + for(i = 0 ; ikeyName key. This will overwrite any existing + /// value. It adoptValues is set, it will also free the value if applicable. + /// @param keyName : key name + /// @param obj : Value to store + /// @return the previous value of the key or NULL if there wasnt one + HashValue *hPut(string keyName,HashValue *obj) { + + HashValue *ret = NULL; + clearError(); + + if (find(keyName)) { + // Return revious value + ret = _foundEntry._val; + /* + // Replace entry contents + if (_adoptValues && _foundEntry._val != NULL && CheckPointer(_foundEntry._val) == POINTER_DYNAMIC ) { + delete _foundEntry._val; + } + */ + _foundEntry._val = obj; + + } else { + // Insert new entry at head of list + HashEntry* e = new HashEntry(keyName,obj); + HashEntry* first = _buckets[_foundIndex]; + e._next = first; + _buckets[_foundIndex] = e; + _hashEntryCount++; + + //info((string)_hashEntryCount+" vs. "+(string)_resizeThreshold); + // Auto Resize if number of entries hits _resizeThreshold + if (_hashEntryCount > _resizeThreshold ) { + rehash(_hashSlots/2*3); // this will snap to the next prime + } + } + return ret; + } + /// Store a string as hash value (HashString) + /// @return the previous value of the key or NULL if there wasnt one + HashValue* hPutString(string keyName,string s) { + HashString *v = new HashString(s); + return hPut(keyName,v); + } + /// Store a double as hash value (HashDouble) + /// @return the previous value of the key or NULL if there wasnt one + HashValue* hPutDouble(string keyName,double d) { + HashDouble *v = new HashDouble(d); + return hPut(keyName,v); + } + /// Store an int as hash value (HashInt) + /// @return the previous value of the key or NULL if there wasnt one + HashValue* hPutInt(string keyName,int i) { + HashInt *v = new HashInt(i); + return hPut(keyName,v); + } + + /// Store a datetime as hash value (HashLong) + /// @return the previous value of the key or NULL if there wasnt one + HashValue* hPutLong(string keyName,long i) { + HashLong *v = new HashLong(i); + return hPut(keyName,v); + } + + /// Store a datetime as hash value (HashDatetime) + /// @return the previous value of the key or NULL if there wasnt one + HashValue* hPutDatetime(string keyName,datetime i) { + HashDatetime *v = new HashDatetime(i); + return hPut(keyName,v); + } + + /// Delete an entry from the hash. + bool hDel(string keyName) { + + bool found = false; + clearError(); + + if (find(keyName)) { + HashEntry *next = _foundEntry._next; + if (_foundPrev != NULL) { + //Remove entry from the middle of the list. + _foundPrev._next = next; + } else { + // remove from head of list + _buckets[_foundIndex] = next; + } + + if (_adoptValues && _foundEntry._val != NULL&& CheckPointer(_foundEntry._val) == POINTER_DYNAMIC) { + delete _foundEntry._val; + } + delete _foundEntry; + _hashEntryCount--; + found=true; + + } + return found; + } +}; +uint Hash::_primes[] = { + 17, 53, 97, 193, 389, + 769, 1543, 3079, 6151, + 12289, 24593, 49157, 98317, + 196613, 393241, 786433, 1572869, + 3145739, 6291469, 12582917, 25165843, + 50331653, 100663319, 201326611, 402653189, + 805306457, 1610612741}; + +/// Class to iterate over a Hash using ... +///
+///   HashLoop *l
+///   for (l = new HashLoop(h) ; l.hasNext() ; l.next()  ) {
+///       string key = l.key();
+///       MyClass *c = l.val();
+///   }
+///   delete l;
+/// 
+class HashLoop { + private: + uint _index; + HashEntry *_currentEntry; + Hash *_hash; + + public: + /// Create iterator for a hash - move to first item + HashLoop(Hash *h) { + setHash(h); + } + ~HashLoop() {}; + + /// Clear current state and move to first item (if any). + void reset() { + _index=0; + _currentEntry = _hash.getEntry(_index); + + // Move to first item + if (_currentEntry == NULL) { + next(); + } + } + + /// Change the hash over which to iterate. + void setHash(Hash *h) { + _hash = h; + reset(); + } + + /// Check if more items. + bool hasNext() { + bool ret = ( _currentEntry != NULL); + //config("hasNext=",ret); + return ret; + } + + /// Move to next item. + void next() { + + //config("next : index = ",_index); + + // Advance + if (_currentEntry != NULL) { + _currentEntry = _currentEntry._next; + } + + // Keep advancing if _currentEntry is null + while (_currentEntry==NULL) { + _index++; + if (_index >= _hash.getSlots() ) return ; + _currentEntry = _hash.getEntry(_index); + } + } + + /// Return the key name of the current item. + string key() { + if (_currentEntry != NULL) { + return _currentEntry._key; + } else { + return NULL; + } + } + + /// Return the value. + HashValue *val() { + if (_currentEntry != NULL) { + return _currentEntry._val; + } else { + return NULL; + } + } + + /// Convenience functions for retriving int from a current HashInt entry + int valInt() { + return ((HashInt *)val()).getVal(); + } + + /// Convenience functions for retriving int from a current HashString entry + string valString() { + return ((HashString *)val()).getVal(); + } + + /// Convenience functions for retriving int from a current HashDouble entry + double valDouble() { + return ((HashDouble *)val()).getVal(); + } + + /// Convenience functions for retriving int from a current HashLong entry + long valLong() { + return ((HashLong *)val()).getVal(); + } + /// Convenience functions for retriving int from a current HashDatetime entry + datetime valDatetime() { + return ((HashDatetime *)val()).getVal(); + } +}; + + +#endif diff --git a/mq4/json.mqh b/mq4/json.mqh new file mode 100644 index 00000000..8c391c72 --- /dev/null +++ b/mq4/json.mqh @@ -0,0 +1,1013 @@ +// $Id: json.mqh 118 2014-02-28 23:50:37Z ydrol $ +#ifndef YDROL_JSON_MQH +#define YDROL_JSON_MQH + +#include + +// (C)2014 Andrew Lord forex@NICKNAME@lordy.org.uk +// Parse a JSON String - Adapted for mql4++ from my gawk implementation +// ( https://code.google.com/p/oversight/source/browse/trunk/bin/catalog/json.awk ) + +/* + TODO the constants true|false|null could be represented as fixed objects. + To do this the deleting of _hash and _array must skip these objects. + + TODO test null + + TODO Parse Unicode Escape +*/ + +/* + See json_demo for examples. + + This requires the hash.mqh ( http://codebase.mql4.com/9238 , http://lordy.co.nf/hash ) + + + + */ + +/// Different types of JSON Values +enum ENUM_JSON_TYPE { JSON_NULL,JSON_OBJECT,JSON_ARRAY,JSON_NUMBER,JSON_STRING,JSON_BOOL }; + +class JSONString; +/// +/// Generic class for all JSON types (Number, String, Bool, Array, Object ) +/// It is a subclass of HashValue so it can be stored in an JSONObject hash +/// +class JSONValue : public HashValue + { +private: + ENUM_JSON_TYPE _type; + +public: + JSONValue() {} + ~JSONValue() {} + ENUM_JSON_TYPE getType() { return _type; } + void setType(ENUM_JSON_TYPE t) { _type=t; } + + /// True if JSONValue is a instance of JSONString + bool isString() { return _type==JSON_STRING; } + + /// True if JSONValue is a instance of JSONNull + bool isNull() { return _type==JSON_NULL; } + + /// True if JSONValue is a instance of JSONObject + bool isObject() { return _type==JSON_OBJECT; } + + /// True if JSONValue is a instance of JSONArray + bool isArray() { return _type==JSON_ARRAY; } + + /// True if JSONValue is a instance of JSONNumber + bool isNumber() { return _type==JSON_NUMBER; } + + /// True if JSONValue is a instance of JSONBool + bool isBool() { return _type==JSON_BOOL; } + + // Override in child classes + virtual string toString() + { + return ""; + } + + // Some convenience getters to cast to the subtype. - this is bad OO design! + + /// If this JSONValue is an instance of JSONString return the string (or cast will fail) + string getString() { return((JSONString *)GetPointer(this)).getString(); } + + /// If this JSONValue is an instance of JSONNumber return the double (or cast will fail) + double getDouble() { return((JSONNumber *)GetPointer(this)).getDouble(); } + + /// If this JSONValue is an instance of JSONNumber return the long (or cast will fail) + long getLong() { return((JSONNumber *)GetPointer(this)).getLong(); } + + /// If this JSONValue is an instance of JSONNumber return the int (or cast will fail) + int getInt() { return((JSONNumber *)GetPointer(this)).getInt(); } + + /// If this JSONValue is an instance of JSONBool return the bool (or cast will fail) + bool getBool() { return((JSONBool *)GetPointer(this)).getBool(); } + + /// Get the string value of the JSONValue, without Program termination + /// @param val : String object from which value will be extracted. + /// @param out : The string than was extracted. + /// @return true if OK else false + static bool getString(JSONValue *val,string &out) + { + if(val!=NULL && val.isString()) + { + out = val.getString(); + return true; + } + return false; + } + /// Get the bool value of the JSONValue, without Program termination + /// @param val : String object from which value will be extracted. + /// @param out : The bool than was extracted. + /// @return true if OK else false + static bool getBool(JSONValue *val,bool &out) + { + if(val!=NULL && val.isBool()) + { + out = val.getBool(); + return true; + } + return false; + } + /// Get the double value of the JSONValue, without Program termination + /// @param val : String object from which value will be extracted. + /// @param out : The double than was extracted. + /// @return true if OK else false + static bool getDouble(JSONValue *val,double &out) + { + if(val!=NULL && val.isNumber()) + { + out = val.getDouble(); + return true; + } + return false; + } + /// Get the long value of the JSONValue, without Program termination + /// @param val : String object from which value will be extracted. + /// @param out : The long than was extracted. + /// @return true if OK else false + static bool getLong(JSONValue *val,long &out) + { + if(val!=NULL && val.isNumber()) + { + out = val.getLong(); + return true; + } + return false; + } + /// Get the int value of the JSONValue, without Program termination + /// @param val : String object from which value will be extracted. + /// @param out : The int than was extracted. + /// @return true if OK else false + static bool getInt(JSONValue *val,int &out) + { + if(val!=NULL && val.isNumber()) + { + out = val.getInt(); + return true; + } + return false; + } + }; +// ----------------------------------------- + +/// Class to represent a JSON String +class JSONString : public JSONValue + { +private: + string _string; +public: + JSONString(string s) + { + setString(s); + setType(JSON_STRING); + } + JSONString() + { + setType(JSON_STRING); + } + string getString() { return _string; } + void setString(string v) { _string=v; } + string toString() { return StringConcatenate("\"",_string,"\""); } + }; +// ----------------------------------------- + +/// Class to represent a JSON Bool +class JSONBool : public JSONValue + { +private: + bool _bool; +public: + JSONBool(bool b) + { + setBool(b); + setType(JSON_BOOL); + } + JSONBool() + { + setType(JSON_BOOL); + } + bool getBool() { return _bool; } + void setBool(bool v) { _bool=v; } + string toString() { return(string)_bool; } + + }; +// ----------------------------------------- + +/// A JSON number may be internall replresented as either an MQL4 double or a long depending on how it was parsed. +/// If one type is set the other is zeroed. +class JSONNumber : public JSONValue + { +private: + long _long; + double _dbl; +public: + JSONNumber(long l) + { + _long= l; + _dbl = 0; + } + JSONNumber(double d) + { + _long= 0; + _dbl = d; + } + /// Get the long value, (cast) from internal double if necessary. + long getLong() + { + if(_dbl!=0) + { + return (long)_dbl; + } else { + return _long; + } + } + /// Get the int value, (cast) from internal value. + int getInt() + { + if(_dbl!=0) + { + return (int)_dbl; + } else { + return (int)_long; + } + } + /// Get the double value, (cast) from internal long if necessary. + double getDouble() + { + if(_long!=0) + { + return (double)_long; + } else { + return _dbl; + } + } + string toString() + { + // Favour the long + if(_long!=0) + { + return (string)_long; + } else { + return (string)_dbl; + } + } + }; +// ----------------------------------------- + +/// This class should not be necessary, but null is genrally infrequent so +/// I havent bothered to code it away yet. +class JSONNull : public JSONValue + { +public: + JSONNull() + { + setType(JSON_NULL); + } + ~JSONNull() {} + string toString() + { + return "null"; + } + }; + +//forward declaration +class JSONArray; +/// This represents a JSONObject which is represented internally as a Hash +class JSONObject : public JSONValue + { +private: + Hash *_hash; +public: + JSONObject() + { + setType(JSON_OBJECT); + } + ~JSONObject() + { + if(_hash != NULL) delete _hash; + } + /// Lookup key and get associated string value - halt program if wrong type(cast error) or doesnt exist(null pointer) + string getString(string key) + { + return getValue(key).getString(); + } + /// Lookup key and get associated bool value - halt program if wrong type(cast error) or doesnt exist(null pointer) + bool getBool(string key) + { + return getValue(key).getBool(); + } + /// Lookup key and get associated double value - halt program if wrong type(cast error) or doesnt exist(null pointer) + double getDouble(string key) + { + return getValue(key).getDouble(); + } + /// Lookup key and get associated long value - halt program if wrong type(cast error) or doesnt exist(null pointer) + long getLong(string key) + { + return getValue(key).getLong(); + } + /// Lookup key and get associated int value - halt program if wrong type(cast error) or doesnt exist(null pointer) + int getInt(string key) + { + return getValue(key).getInt(); + } + + /// Lookup key and get associated string value, return false if failure. + bool getString(string key,string &out) + { + return getString(getValue(key),out); + } + /// Lookup key and get associated bool value, return false if failure. + bool getBool(string key,bool &out) + { + return getBool(getValue(key),out); + } + /// Lookup key and get associated double value, return false if failure. + bool getDouble(string key,double &out) + { + return getDouble(getValue(key),out); + } + /// Lookup key and get associated long value, return false if failure. + bool getLong(string key,long &out) + { + return getLong(getValue(key),out); + } + /// Lookup key and get associated int value, return false if failure. + bool getInt(string key,int &out) + { + return getInt(getValue(key),out); + } + + /// Lookup key and get associated array, NULL if not present. Cast failure if not an Array. + JSONArray *getArray(string key) + { + return getValue(key); + } + /// Lookup key and get associated Object, NULL if not present. Cast failure if not an Object. + JSONObject *getObject(string key) + { + return getValue(key); + } + /// Lookup key and get associated value - best for data whose structure might change as any type can safely be returned. + JSONValue *getValue(string key) + { + if(_hash==NULL) + { + return NULL; + } + return (JSONValue*)_hash.hGet(key); + } + + /// Store the value against the specified key string - Used by the parser. + void put(string key,JSONValue *v) + { + if(_hash==NULL) _hash=new Hash(); + _hash.hPut(key,v); + } + string toString() + { + string s="{"; + if(_hash!=NULL) + { + HashLoop *l; + int n=0; + + for(l=new HashLoop(_hash); l.hasNext(); l.next()) + { + JSONValue *v=(JSONValue *)(l.val()); + s=StringConcatenate(s,(++n==1?"":","), + "\"",l.key(),"\" : ",v.toString()); + } + delete l; + } + s=s+"}"; + return s; + } + + /// Return the internal Hash - Used by JSONIterator + Hash *getHash() + { + return _hash; + } + }; +/// This is a JSONArray which is represented internally as a MQL4 dynamic array of JSONValue * +class JSONArray : public JSONValue + { +private: + int _size; + JSONValue *_array[]; +public: + JSONArray() + { + setType(JSON_ARRAY); + } + ~JSONArray() + { + // clean up array + for(int i=ArrayRange(_array,0)-1; i>=0; i--) + { + if(CheckPointer(_array[i]) == POINTER_DYNAMIC ) delete _array[i]; + } + } + // Getters for Objects (key lookup ) -------------------------------------- + + /// Lookup string value by array index - halt program if wrong type(cast error) or doesnt exist(null pointer) + string getString(int index) + { + return getValue(index).getString(); + } + /// Lookup bool value by array index - halt program if wrong type(cast error) or doesnt exist(null pointer) + bool getBool(int index) + { + return getValue(index).getBool(); + } + /// Lookup double value by array index - halt program if wrong type(cast error) or doesnt exist(null pointer) + double getDouble(int index) + { + return getValue(index).getDouble(); + } + /// Lookup long value by array index - halt program if wrong type(cast error) or doesnt exist(null pointer) + long getLong(int index) + { + return getValue(index).getLong(); + } + /// Lookup int value by array index - halt program if wrong type(cast error) or doesnt exist(null pointer) + int getInt(int index) + { + return getValue(index).getInt(); + } + + /// Lookup JSONString by array index. NULL if not present. Cast failure if not an Object. + bool getString(int index,string &out) + { + return getString(getValue(index),out); + } + /// Lookup JSONBool by array index. NULL if not present. Cast failure if not an Object. + bool getBool(int index,bool &out) + { + return getBool(getValue(index),out); + } + /// Lookup JSONNumber by array index. NULL if not present. Cast failure if not an Object. + bool getDouble(int index,double &out) + { + return getDouble(getValue(index),out); + } + /// Lookup JSONNumber by array index. NULL if not present. Cast failure if not an Object. + bool getLong(int index,long &out) + { + return getLong(getValue(index),out); + } + /// Lookup JSONNumber by array index. NULL if not present. Cast failure if not an Object. + bool getInt(int index,int &out) + { + return getInt(getValue(index),out); + } + + /// Lookup array child by index, NULL if not present. Cast failure if not an Array. + JSONArray *getArray(int index) + { + return getValue(index); + } + + /// Lookup object child by index, NULL if not present. Cast failure if not an Array. + JSONObject *getObject(int index) + { + return getValue(index); + } + /// The following method allows any type to be returned. Use this when parsing unpredictable data + JSONValue *getValue(int index) + { + return _array[index]; + } + + /// Used by the Parser when building the array + bool put(int index,JSONValue *v) + { + if(index>=_size) + { + int oldSize = _size; + int newSize = ArrayResize(_array,index+1,30); + if(newSize <= index) return false; + _size=newSize; + + // initialise + for(int i=oldSize; i0) + { + s=StringConcatenate(s,_array[0].toString()); + for(int i=1; i<_size; i++) + { + s=StringConcatenate(s,",",_array[i].toString()); + } + } + s=s+"]"; + return s; + } + + int size() + { + return _size; + } + }; +/// Parse JSON text using a simple recursive descent parser +/// Exmaple +/// +///
+///    string s = "{ \"firstName\": \"John\","+
+///       " \"lastName\": \"Smith\","+
+///       " \"age\": 25,"+
+///       " \"address\": { \"streetAddress\": \"21 2nd Street\", \"city\": \"New York\", \"state\": \"NY\", \"postalCode\": \"10021\" },"+
+///       " \"phoneNumber\": [ { \"type\": \"home\", \"number\": \"212 555-1234\" }, { \"type\": \"fax\", \"number\": \"646 555-4567\" } ],"+
+///       " \"gender\":{ \"type\":\"male\" }  }";
+///
+///    JSONParser *parser = new JSONParser();
+///
+///    JSONValue *jv = parser.parse(s);
+///
+///    if (jv == NULL) {
+///
+///        Print("error:"+(string)parser.getErrorCode()+parser.getErrorMessage());
+///
+///    } else {
+///
+///        Print("PARSED:"+jv.toString());
+///
+///        if (jv.isObject()) {
+///
+///            JSONObject *jo = jv;
+///
+///            // Direct access - will throw null pointer if wrong getter used.
+///
+///            Print("firstName:" + jo.getString("firstName"));
+///            Print("city:" + jo.getObject("address").getString("city"));
+///            Print("phone:" + jo.getArray("phoneNumber").getObject(0).getString("number"));
+///
+///            // Safe access in case JSON data is missing or different.
+///
+///            if (jo.getString("firstName",s) ) Print("firstName = "+s);
+///
+///            // Loop over object returning JSONValue
+///
+///            JSONIterator *it = new JSONIterator(jo);
+///            for( ; it.hasNext() ; it.next()) {
+///                Print("loop:"+it.key()+" = "+it.val().toString());
+///            }
+///            delete it;
+///        }
+///        delete jv;
+///    }
+///    delete parser;
+/// 
+ +class JSONParser + { +private: + /// Current parse position + int _pos; + /// The input string is expanded into an array of ushort (wchar) + ushort _in[]; + /// Length of string + int _len; + /// The original input string + string _instr; + + int _errCode; + string _errMsg; + + void setError(int code=1,string msg="unknown error") + { + _errCode|=code; + if(_errMsg=="") + { + _errMsg="JSONParser::Error "+msg; + } else { + _errMsg=StringConcatenate(_errMsg,"\n",msg); + } + } + + /// Parse a JSON Object + JSONObject *parseObject() + { + JSONObject *o=new JSONObject(); + skipSpace(); + if(expect('{')) + { + while(_errCode==0) + { + skipSpace(); + if(_in[_pos]!='"') break; + + // Read the key + string key=parseString(); + + if(_errCode!=0 || key==NULL) break; + + skipSpace(); + + if(!expect(':')) break; + + // read the value + JSONValue *v = parseValue(); + if(_errCode != 0 ) break; + + o.put(key,v); + + skipSpace(); + + if(!expectOptional(',')) break; + } + if(!expect('}')) + { + setError(2,"expected \" or } "); + } + } + if(_errCode!=0) + { + delete o; + o=NULL; + } + return o; + } + + bool isDigit(ushort c) + { + return (c >= '0' && c <= '9' ) || c == '+' || c == '-'; + } + + bool isDoubleDigit(ushort c) + { + return (c >= '0' && c <= '9' ) || c == '+' || c == '-' || c == '.' || c == 'e' || c == 'E'; + } + + void skipSpace() + { + while(_in[_pos]==' ' || _in[_pos]=='\t' || _in[_pos]=='\r' || _in[_pos]=='\n') + { + if(_pos>=_len) break; + _pos++; + } + } + + bool expect(ushort c) + { + bool ret=false; + if(c==_in[_pos]) + { + _pos++; + ret=true; + } else { + setError(1,StringConcatenate("expected ", + ShortToString(c),"(",c,")", + " got ",ShortToString(_in[_pos]),"(",_in[_pos],")")); + } + return ret; + } + + bool expectOptional(ushort c) + { + bool ret=false; + if(c==_in[_pos]) + { + _pos++; + ret=true; + } + return ret; + } + + string parseString() + { + string ret=""; + if(expect('"')) + { + while(true) + { + int end=_pos; + while(end<_len && _in[end]!='"' && _in[end]!='\\') + { + end++; + } + + if(end>=_len) + { + setError(2,"missing quote: end"+(string)end+":len"+(string)_len+":"+ShortToString(_in[_pos])+":"+StringSubstr(_instr,_pos,10)+"..."); + break; + } + // Check if character was escaped. + // TODO \" \\ \/ \b \f \n \r \t \u0000 + if(_in[end]=='\\') + { + // Add partial string and get more + ret=ret+StringSubstr(_instr,_pos,end-_pos); + end++; + if(end>=_len) + { + setError(4,"parse error after escape"); + } else { + ushort c=0; + switch(_in[end]) + { + case '"': + case '\\': + case '/': + c=_in[end]; + break; + case 'b': c=8; break; // backspace - 8 + case 'f': c=12; break; // form feed 12 + case 'n': c = '\n'; break; + case 'r': c = '\r'; break; + case 't': c = '\t'; break; + default: + setError(3,"unknown escape"); + } + if(c== 0) break; + ret = ret+ShortToString(c); + _pos= end+1; + } + } else if(_in[end]=='"') { + // End of string + ret=ret+StringSubstr(_instr,_pos,end-_pos); + _pos=end+1; + break; + } + } + } + if(_errCode!=0) + { + ret=NULL; + } + return ret; + } + + JSONValue *parseValue() + { + JSONValue *ret=NULL; + skipSpace(); + string s; + + if(_in[_pos]=='[') + { + + ret=(JSONValue*)parseArray(); + + } else if(_in[_pos]=='{') { + + ret=(JSONValue*)parseObject(); + + } else if(_in[_pos]=='"') { + + s=parseString(); + ret=(JSONValue*)new JSONString(s); + + } else if(isDoubleDigit(_in[_pos])) { + bool isDoubleOnly=false; + long l=0; + long sign; + // number + int i=_pos; + + if(_in[_pos]=='-') + { + sign=-1; + _pos++; + } else if(_in[_pos]=='+') { + sign=1; + _pos++; + } else { + sign=1; + } + + while(i<_len && isDigit(_in[i])) + { + l=l*10+(_in[i]-'0'); + i++; + } + if(isDoubleDigit(_in[i])) + { + // Looks like a real number; + while(i<_len && isDoubleDigit(_in[i])) + { + i++; + } + s=StringSubstr(_instr,_pos,i-_pos); + double d=sign*StringToDouble(s); + ret=(JSONValue*)new JSONNumber(d); // Create a Number as double only + } else { + l=sign*l; + ret=(JSONValue*)new JSONNumber(l); // Create a Number as a long + } + _pos=i; + + } else if(_in[_pos]=='t' && StringSubstr(_instr,_pos,4)=="true") { + + ret=(JSONValue*)new JSONBool(true); + _pos+=4; + + } else if(_in[_pos]=='f' && StringSubstr(_instr,_pos,5)=="false") { + + ret=(JSONValue*)new JSONBool(false); + _pos+=5; + + } else if(_in[_pos]=='n' && StringSubstr(_instr,_pos,4)=="null") { + + ret=(JSONValue*)new JSONNull(); + _pos+=4; + + } else { + + setError(3,"error parsing value at position "+(string)_pos); + + } + + if(_errCode!=0 && ret!=NULL) + { + delete ret; + ret=NULL; + } + return ret; + } + + JSONArray *parseArray() + { + JSONArray *ret=new JSONArray(); + + int index=0; + skipSpace(); + if(expect('[')) + { + while(_errCode==0) + { + skipSpace(); + + // read the value + JSONValue *v = parseValue(); + if(_errCode != 0) break; + + if(!ret.put(index++,v)) + { + setError(3,"memory error adding "+(string)index); + break; + } + + skipSpace(); + + if(!expectOptional(',')) break; + } + if(!expect(']')) + { + setError(2,"list: expected , or ] "); + } + } + + if(_errCode!=0) + { + delete ret; + ret=NULL; + } + return ret; + } +public: + int getErrorCode() + { + return _errCode; + } + string getErrorMessage() + { + return _errMsg; + } + /// Parse a sequnce of characters and return a JSONValue. + JSONValue *parse( + string s ///< Serialized JSON text + ) + { + int inLen; + JSONValue *ret=NULL; + StringTrimLeft(s); + StringTrimRight(s); + + _instr=s; + _len=StringToShortArray(_instr,_in); // nul '0' is added to length + _pos= 0; + _errCode= 0; + _errMsg = ""; + inLen=StringLen(_instr); + if(_len!=inLen+1 /* nul */) + { + setError(1,StringConcatenate("unable to create array ",inLen," got ",_len)); + } else { + _len --; + ret=parseValue(); + if(_errCode!=0) + { + _errMsg=StringConcatenate(_errMsg," at ",_pos," [",StringSubstr(_instr,_pos,10),"...]"); + } + } + return ret; + } + + }; +/// Class to iterate over a JSONObject (not a JSONArray) +class JSONIterator + { +private: + HashLoop*_l; + +public: + // Create iterator and move to first item + JSONIterator(JSONObject *jo) + { + _l=new HashLoop(jo.getHash()); + } + ~JSONIterator() + { + delete _l; + } + // Check if more items + bool hasNext() + { + return _l.hasNext(); + } + + // Move to next item + void next() + { + _l.next(); + } + + // Return item + JSONValue *val() + { + return (JSONValue *) (_l.val()); + } + + // Return key + string key() + { + return _l.key(); + } + + }; +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +void json_demo() + { + string s="{ \"firstName\": \"John\","+ + " \"lastName\": \"Smith\","+ + " \"age\": 25,"+ + " \"address\": { \"streetAddress\": \"21 2nd Street\", \"city\": \"New York\", \"state\": \"NY\", \"postalCode\": \"10021\" },"+ + " \"phoneNumber\": [ { \"type\": \"home\", \"number\": \"212 555-1234\" }, { \"type\": \"fax\", \"number\": \"646 555-4567\" } ],"+ + " \"gender\":{ \"type\":\"male\" } }"; + + JSONParser *parser=new JSONParser(); + JSONValue *jv=parser.parse(s); + Print("json:"); + if(jv==NULL) + { + Print("error:"+(string)parser.getErrorCode()+parser.getErrorMessage()); + } else { + Print("PARSED:"+jv.toString()); + if(jv.isObject()) + { + JSONObject *jo=jv; + + // Direct access - will throw null pointer if wrong getter used. + Print("firstName:"+jo.getString("firstName")); + Print("city:"+jo.getObject("address").getString("city")); + Print("phone:"+jo.getArray("phoneNumber").getObject(0).getString("number")); + + // Safe access in case JSON data is missing or different. + if(jo.getString("firstName",s)) Print("firstName = "+s); + + // Loop over object returning JSONValue + JSONIterator *it=new JSONIterator(jo); + for(; it.hasNext(); it.next()) + { + Print("loop:"+it.key()+" = "+it.val().toString()); + } + delete it; + } + delete jv; + } + delete parser; + } + + +#endif +//+------------------------------------------------------------------+