mirror of
https://github.com/vdemydiuk/mtapi.git
synced 2026-08-13 18:58:09 +00:00
Refactored MTApiService and connectors projects
This commit is contained in:
@@ -1,9 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace MTApiService
|
||||
namespace MTApiService
|
||||
{
|
||||
public interface IMetaTraderHandler
|
||||
{
|
||||
|
||||
+47
-13
@@ -36,12 +36,48 @@ namespace MTApiService
|
||||
|
||||
|
||||
#region Public Methods
|
||||
public void InitExpert(int expertHandle, int port, string symbol, double bid, double ask, IMetaTraderHandler mtHandler)
|
||||
{
|
||||
if (mtHandler == null)
|
||||
throw new ArgumentNullException(nameof(mtHandler));
|
||||
//public void InitExpert(int expertHandle, int port, string symbol, double bid, double ask, IMetaTraderHandler mtHandler)
|
||||
//{
|
||||
// if (mtHandler == null)
|
||||
// throw new ArgumentNullException(nameof(mtHandler));
|
||||
|
||||
Log.InfoFormat("InitExpert: begin. symbol = {0}, expertHandle = {1}, port = {2}", symbol, expertHandle, port);
|
||||
// Log.InfoFormat("InitExpert: begin. symbol = {0}, expertHandle = {1}, port = {2}", symbol, expertHandle, port);
|
||||
|
||||
// MtServer server;
|
||||
// lock (_servers)
|
||||
// {
|
||||
// if (_servers.ContainsKey(port))
|
||||
// {
|
||||
// server = _servers[port];
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// server = new MtServer(port);
|
||||
// server.Stopped += server_Stopped;
|
||||
// _servers[port] = server;
|
||||
|
||||
// server.Start();
|
||||
// }
|
||||
// }
|
||||
|
||||
// var expert = new MtExpert(expertHandle, new MtQuote { Instrument = symbol, Bid = bid, Ask = ask, ExpertHandle = expertHandle }, mtHandler);
|
||||
|
||||
// lock (_experts)
|
||||
// {
|
||||
// _experts[expert.Handle] = expert;
|
||||
// }
|
||||
|
||||
// server.AddExpert(expert);
|
||||
|
||||
// Log.Info("InitExpert: end");
|
||||
//}
|
||||
|
||||
public void AddExpert(int port, MtExpert expert)
|
||||
{
|
||||
if (expert == null)
|
||||
throw new ArgumentNullException(nameof(expert));
|
||||
|
||||
Log.InfoFormat("AddExpert: begin. expert = {0}", expert);
|
||||
|
||||
MtServer server;
|
||||
lock (_servers)
|
||||
@@ -60,8 +96,6 @@ namespace MTApiService
|
||||
}
|
||||
}
|
||||
|
||||
var expert = new MtExpert(expertHandle, new MtQuote { Instrument = symbol, Bid = bid, Ask = ask, ExpertHandle = expertHandle }, mtHandler);
|
||||
|
||||
lock (_experts)
|
||||
{
|
||||
_experts[expert.Handle] = expert;
|
||||
@@ -69,12 +103,12 @@ namespace MTApiService
|
||||
|
||||
server.AddExpert(expert);
|
||||
|
||||
Log.Info("InitExpert: end");
|
||||
Log.Info("AddExpert: end");
|
||||
}
|
||||
|
||||
public void DeinitExpert(int expertHandle)
|
||||
public void RemoveExpert(int expertHandle)
|
||||
{
|
||||
Log.InfoFormat("DeinitExpert: begin. expertHandle = {0}", expertHandle);
|
||||
Log.InfoFormat("RemoveExpert: begin. expertHandle = {0}", expertHandle);
|
||||
|
||||
MtExpert expert = null;
|
||||
|
||||
@@ -93,10 +127,10 @@ namespace MTApiService
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.WarnFormat("DeinitExpert: expert with id {0} has not been found.", expertHandle);
|
||||
Log.WarnFormat("RemoveExpert: expert with id {0} has not been found.", expertHandle);
|
||||
}
|
||||
|
||||
Log.Info("DeinitExpert: end");
|
||||
Log.Info("RemoveExpert: end");
|
||||
}
|
||||
|
||||
public void SendQuote(int expertHandle, string symbol, double bid, double ask)
|
||||
@@ -111,7 +145,7 @@ namespace MTApiService
|
||||
|
||||
if (expert != null)
|
||||
{
|
||||
expert.Quote = new MtQuote { Instrument = symbol, Bid = bid, Ask = ask, ExpertHandle = expertHandle };
|
||||
expert.SendQuote(new MtQuote { Instrument = symbol, Bid = bid, Ask = ask, ExpertHandle = expertHandle });
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace MTApiService
|
||||
Command = command;
|
||||
}
|
||||
|
||||
public MtCommand Command { get; private set; }
|
||||
public MtCommand Command { get; }
|
||||
|
||||
public MtResponse WaitResult(int time)
|
||||
{
|
||||
|
||||
+10
-26
@@ -4,7 +4,7 @@ using System.Collections.Generic;
|
||||
|
||||
namespace MTApiService
|
||||
{
|
||||
internal class MtExpert: ITaskExecutor
|
||||
public class MtExpert: ITaskExecutor
|
||||
{
|
||||
public delegate void MtQuoteHandler(MtExpert expert, MtQuote quote);
|
||||
public delegate void MtEventHandler(MtExpert expert, MtEvent e);
|
||||
@@ -19,12 +19,12 @@ namespace MTApiService
|
||||
#endregion
|
||||
|
||||
#region Public Methods
|
||||
public MtExpert(int handle, MtQuote quote, IMetaTraderHandler mtHandler)
|
||||
public MtExpert(int handle, string symbol, double bid, double ask, IMetaTraderHandler mtHandler)
|
||||
{
|
||||
if (mtHandler == null)
|
||||
throw new ArgumentNullException(nameof(mtHandler));
|
||||
|
||||
Quote = quote;
|
||||
_quote = new MtQuote { ExpertHandle = handle, Instrument = symbol, Bid = bid, Ask = ask};
|
||||
Handle = handle;
|
||||
_mtHadler = mtHandler;
|
||||
}
|
||||
@@ -33,7 +33,6 @@ namespace MTApiService
|
||||
{
|
||||
Log.Debug("Deinit: begin.");
|
||||
|
||||
IsEnable = false;
|
||||
FireOnDeinited();
|
||||
|
||||
Log.Debug("Deinit: end.");
|
||||
@@ -120,9 +119,14 @@ namespace MTApiService
|
||||
Log.Debug("SendEvent: end.");
|
||||
}
|
||||
|
||||
public virtual void SendQuote(MtQuote quote)
|
||||
{
|
||||
Quote = quote;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"ExpertHandle = {Handle}";
|
||||
return $"ExpertHandle = {Handle}, Quote = {Quote}";
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -153,7 +157,7 @@ namespace MTApiService
|
||||
return _quote;
|
||||
}
|
||||
}
|
||||
set
|
||||
private set
|
||||
{
|
||||
lock (_locker)
|
||||
{
|
||||
@@ -165,26 +169,6 @@ namespace MTApiService
|
||||
}
|
||||
|
||||
public int Handle { get; }
|
||||
|
||||
private bool _isEnable = true;
|
||||
public bool IsEnable
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (_locker)
|
||||
{
|
||||
return _isEnable;
|
||||
}
|
||||
}
|
||||
private set
|
||||
{
|
||||
lock (_locker)
|
||||
{
|
||||
_isEnable = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private Methods
|
||||
|
||||
@@ -80,11 +80,6 @@ namespace MTApiService
|
||||
//init network hosts
|
||||
var dnsHostName = Dns.GetHostName();
|
||||
var ips = Dns.GetHostEntry(dnsHostName);
|
||||
if (ips == null)
|
||||
{
|
||||
Log.WarnFormat("InitHosts: end. Dns.GetHostEntry has returned null for DNS Host Name {0}", dnsHostName);
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach (var ipAddress in ips.AddressList)
|
||||
{
|
||||
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.27.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.27.0")]
|
||||
[assembly: AssemblyVersion("1.0.28.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.28.0")]
|
||||
Reference in New Issue
Block a user