From fa57cc3b9dee15e2303e770d902bd5e5d75ae15e Mon Sep 17 00:00:00 2001 From: Tom Wiesing <tkw01536@gmail.com> Date: Sun, 2 Aug 2015 14:45:28 +0200 Subject: [PATCH] Clean rewrite --- SallyConnect/DotNetSallyClient.cs | 148 +++++--- SallyConnect/SallyDocument.cs | 485 ++++++++++++++---------- SallyConnect/TestUnit.cs | 14 +- SallyConnect/bin/Debug/SallyConnect.exe | Bin 13312 -> 13824 bytes SallyConnect/bin/Debug/SallyConnect.pdb | Bin 30208 -> 32256 bytes SallyConnect/obj/Debug/SallyConnect.exe | Bin 13312 -> 13824 bytes SallyConnect/obj/Debug/SallyConnect.pdb | Bin 30208 -> 32256 bytes 7 files changed, 380 insertions(+), 267 deletions(-) diff --git a/SallyConnect/DotNetSallyClient.cs b/SallyConnect/DotNetSallyClient.cs index cec0cb9..bd12983 100644 --- a/SallyConnect/DotNetSallyClient.cs +++ b/SallyConnect/DotNetSallyClient.cs @@ -15,42 +15,86 @@ namespace ConnectToSally /// </summary> class DotNetSallyClient { - protected static TimeSpan receiveTimeout = TimeSpan.FromSeconds(10); + + #region Class Variables + /* + * Connection Properties + */ /// <summary> - /// A logger so that we can write things to the console. + /// Address this DotNetSallyClient connects to. /// </summary> - private static readonly ILog logger = LogManager.GetLogger(typeof(DotNetSallyClient)); + public string address { get; private set; } /// <summary> - /// Username for the connection. + /// Username used to connect to Sally. /// </summary> public string user { get; private set; } /// <summary> - /// Password for the connection. + /// Password used to connect to Sally. /// </summary> public string password { get; private set; } - /// <summary> - /// Address for the connection. - /// </summary> - public string address { get; private set; } + /* + * Connection State + */ /// <summary> /// Connection session variable /// </summary> - public ISession session { get; private set; } + private ISession session { get; set; } /// <summary> /// Connection variable /// </summary> - public IConnection connection { get; private set; } + private IConnection connection { get; set; } + + /* + * Logger + */ + + /// <summary> + /// A logger so that we can write things to the console. + /// </summary> + private static readonly ILog logger = LogManager.GetLogger(typeof(DotNetSallyClient)); + + + + #endregion + + #region Connection Start + /// <summary> + /// Constructs a new DotNetSallyClient and establishes a connection. + /// </summary> + /// <param name="address">Adress to connect to. </param> + /// <param name="user">Username to connect with. </param> + /// <param name="password">Password to connect with. </param> + public DotNetSallyClient(string address= "activemq:tcp://localhost:61616", string user="karaf", string password="karaf") + { + + // store connection params + this.address = address; + this.user = user; + this.password = password; + + BasicConfigurator.Configure(); // ??? + + // try to connect + if (!connect()) + { + logFatal("Could not start connection"); + return; + } + + logInfo("Started connection"); + } /// <summary> /// Starts the connection to Sally. /// </summary> - protected bool startConnection() + /// <returns>If the connection was a success</returns> + protected bool connect() { // set up a URI and get ready for connecting Uri connecturi = new Uri(this.address); @@ -62,13 +106,13 @@ namespace ConnectToSally this.connection = connectFactory.CreateConnection(this.user, this.password); //create a session - this.session = this.connection.CreateSession(); + this.session = this.connection.CreateSession(); //and get everything running this.connection.Start(); // we have started the connection. - return this.connection.IsStarted; + return this.connection.IsStarted; } // catch exceptions so that we do not crash @@ -84,60 +128,64 @@ namespace ConnectToSally //nope something went wrong. return false; } + #endregion + #region Connection Getters /// <summary> - /// Starts a DotNetSallyClient object with a session and connection with Sally. + /// returns the session of this SallyClient. /// </summary> - /// <param name="address">Adress to connect to. </param> - /// <param name="user">Username to connect with. </param> - /// <param name="password">Password to connect with. </param> - public DotNetSallyClient(string address= "activemq:tcp://localhost:61616", string user="karaf", string password="karaf") - { - - // store connection params - this.address = address; - this.user = user; - this.password = password; + /// <returns></returns> + public ISession getSallySession(){ - //set up the logger. - BasicConfigurator.Configure(); - if (!startConnection()) - { - // if we could not start the connection, we should complain. - Console.WriteLine("DotNetSallyClient <" + address + ">: Could not start connection"); - logger.Fatal("DotNetSallyClient <" + address + ">: Could not start connection"); - return; + // if there is no connection, we can not return a session + if (this.connection == null || !this.connection.IsStarted) { + throw new Exception(logFatal("No connection started yet. Start a connection and try again.")); } - - // we're done for now. - Console.WriteLine("DotNetSallyClient <"+ address + ">: Started connection"); - } + // we can now return it. + return this.session; + } + #endregion + #region Logging /// <summary> - /// returns the session of this SallyClient. + /// Generates a log message /// </summary> + /// <param name="message">Message content</param> /// <returns></returns> - public ISession getSallySession(){ + private string logMessage(string message) + { + return "DotNetSallyClient <" + address + ">: " + message; + } - // if there is no connection, we can not return it. - if (!this.connection.IsStarted) { - throw new Exception("DotNetSallyClient <" + address + ">: No connection started yet. Start a connection and try again."); - } + /// <summary> + /// Logs an info message to console and to the log. + /// </summary> + /// <param name="message"></param> + private string logInfo(string message) + { + string msg = logMessage(message); - //and return it. - return this.session; + logger.Info(msg); + + return msg; } /// <summary> - /// Registers a document with this Sally Client. + /// Logs a fatal message to console and to the log. /// </summary> - /// <param name="doc"></param> - public void registerDocument(SallyDocument doc) + /// <param name="message"></param> + private string logFatal(string message) { - //just call the document method to do this. - doc.registerWith(this); + string msg = logMessage(message); + + logger.Fatal(msg); + + return msg; } + #endregion + + } } diff --git a/SallyConnect/SallyDocument.cs b/SallyConnect/SallyDocument.cs index e29e245..dcdc9bc 100644 --- a/SallyConnect/SallyDocument.cs +++ b/SallyConnect/SallyDocument.cs @@ -1,328 +1,403 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using SallySchemas; -using Apache.NMS; -using Apache.NMS.Util; +using ConnectToSally; using System.Xml; using System.Xml.Serialization; using System.IO; -using ConnectToSally; + using log4net; +using Apache.NMS; +using Apache.NMS.Util; +using SallySchemas; + namespace SallyConnect { + + /// <summary> + /// Delegate to handle SallyMessages + /// </summary> + /// <param name="msg"></param> + /// <param name="decoded"></param> + public delegate void SallyResponseHandler(IMessage msg, Object decoded); + class SallyDocument { - /// <summary> - /// The name of the sally queue we want to subscribe to - /// </summary> - public string sallyQueue { get; private set; } + + #region Constructor /// <summary> - /// A boolean stating if we are subscribed to the given SallyQueue + /// the SallyClient associated to this document. /// </summary> - public bool subscribedToQueue { get; private set; } + public DotNetSallyClient client { get; private set; } /// <summary> - /// The system environment ID used by Sally. + /// The environmentID of this Document /// </summary> - public string environmentID { get; private set; } + public string environmentID { get; private set; } /// <summary> - /// Interfaces implemented by this client. + /// The interfaces supported by this Document /// </summary> public string[] interfaces { get; private set; } - /// <summary> - /// Messaging session - /// </summary> - private ISession session { get; set; } + public SallyDocument(DotNetSallyClient client, string environmentID, string[] interfaces) + { + // connect to the client + this.client = client; + + // set up environment Id and interfaces + this.environmentID = environmentID; + this.interfaces = interfaces; + } + + #endregion + #region Handlers /// <summary> - /// Messaging producer + /// Contains all doc Queue handlers /// </summary> - private IMessageProducer sender { get; set; } + private Dictionary<int, Tuple<Type, SallyResponseHandler>> handlers = new Dictionary<int, Tuple<Type, SallyResponseHandler>>(); /// <summary> - /// A logger for this document. + /// contains the number of handlers (for id purposes) /// </summary> - private static readonly ILog logger = LogManager.GetLogger(typeof(SallyDocument)); + private int handler_count = 0; /// <summary> - /// Represents a Sally Client. + /// registers a handler for a specific type of message. /// </summary> - /// <param name="environmentID">Environment ID to use when registering with Sally. </param> - /// <param name="interfaces">A list of interfaces this client should implement. </param> - public SallyDocument(string environmentID, string[] interfaces) + /// <param name="T"></param> + /// <param name="handler"></param> + /// <returns></returns> + public int handleType(Type T, SallyResponseHandler handler) { + int new_handler_id = handler_count++; - // set up basic variables. - this.environmentID = environmentID; - this.interfaces = interfaces; - this.subscribedToQueue = false; + handlers.Add(new_handler_id, new Tuple<Type, SallyResponseHandler>(T, handler)); - // generate a new unique client name. - this.sallyQueue = "dotnet_client_" + Guid.NewGuid().ToString(); + return new_handler_id; } - #region Initial register With Sally /// <summary> - /// Registers this document with a SallyClient + /// removes a certain handler. /// </summary> - /// <param name="dns">SallyClient to register with</param> - public void registerWith(DotNetSallyClient dns) + /// <param name="id"></param> + /// <returns></returns> + public bool removeHandler(int id) { - //load the session. - this.session = dns.getSallySession(); - - // build the message to send - string xmlMessage = Apache.NMS.Util.XmlUtil.Serialize(getCoreRegisterDocument()); - ITextMessage regRequest = session.CreateTextMessage(xmlMessage); - - //be ready to respond on the document queue - registerDocQueueListener(); - - // send the sally registration - sendReceive(SessionUtil.GetDestination(this.session, "queue://sally_register"), regRequest); + if(handlers.ContainsKey(id)) + { + return handlers.Remove(id); + } else + { + return false; + } } /// <summary> - /// Registers to the response Queue so that we can send messages. + /// calls all handlers. /// </summary> - /// <param name="responseQueue">Name of the response queue</param> - protected void registerToResponseQueue(String responseQueue) + /// <param name="msg"></param> + private void handleMessage(IMessage msg) { - // create the destination - IDestination responseQDestination = SessionUtil.GetDestination(this.session, responseQueue); - // and store the sender - this.sender = session.CreateProducer(responseQDestination); + // turn the message into a string. + System.Byte[] content = (msg as IBytesMessage).Content; + String xmlMsg = System.Text.Encoding.Default.GetString(content); - // we are now ready to send messages. - this.subscribedToQueue = true; + // the object we want to decode. + object decoded; - Console.WriteLine("SallyDocument <" + environmentID + ">: Registered to document queue"); - } + // iterate over all the handlers + foreach (KeyValuePair<int, Tuple<Type, SallyResponseHandler>> entry in handlers) + { + // get the handler + Tuple<Type, SallyResponseHandler> handler = entry.Value; - /// <summary> - /// Builds a request to register this document with Sally - /// </summary> - /// <returns>the request</returns> - protected SallySchemas.RegisterClientRequest getCoreRegisterDocument() - { + // try building a reader + XmlSerializer serializer = new XmlSerializer(handler.Item1); + XmlReader reader = XmlReader.Create(new StringReader(xmlMsg)); - //create the request - SallySchemas.RegisterClientRequest reg = new RegisterClientRequest(); + // try to decode the object + try + { + decoded = serializer.Deserialize(reader); + } catch (InvalidOperationException) { continue; + } catch (XmlException) { continue; } - // and set up the parameters. - reg.EnvironmentID = this.environmentID; - reg.ListenQueue = this.sallyQueue; - reg.Schemas = this.interfaces; + // if it is null, continue + if (decoded == null){ continue; } + // and try to handle it. + handler.Item2(msg, decoded); + } - // and return it. - return reg; } + #endregion - #endregion - - - #region Heartbeat Responding + #region Send & Receive Helpers /// <summary> - /// Registers a listener for the document queue + /// responds to a certain message. /// </summary> - /// <param name="docName"></param> - /// <param name="interfaces"></param> - protected void registerDocQueueListener() + /// <param name="msg"></param> + /// <param name="response"></param> + /// <param name="onResponse"></param> + public void respondToMessage(IMessage msg, IMessage response, MessageListener onResponse = null) { - //the queue - IDestination docQueue = SessionUtil.GetDestination(this.session, "queue://" + this.sallyQueue); + // create a temporary queue and consumer + ITemporaryQueue tempQueue = this.client.getSallySession().CreateTemporaryQueue(); + IMessageConsumer tempQueueConsumer = this.client.getSallySession().CreateConsumer(tempQueue); - // build and register a listener - IMessageConsumer regConsumer = this.session.CreateConsumer(docQueue); - regConsumer.Listener += new MessageListener(OnDocQueueMessage); + // handle responses if needed + if(onResponse != null) + { + tempQueueConsumer.Listener += onResponse; + } - Console.WriteLine("SallyDocument <" + environmentID + ">: Registered document queue listener"); + // set the reply to and ids for the message + response.NMSReplyTo = tempQueue; + response.NMSCorrelationID = msg.NMSCorrelationID; + + // finally make a consumer and send the message. + IMessageProducer producer = this.client.getSallySession().CreateProducer(msg.NMSReplyTo); + producer.Send(response); } /// <summary> - /// Handler for messages received on the document queue + /// Sends a message. /// </summary> - /// <param name="receivedMsg">message received</param> - protected void OnDocQueueMessage(IMessage receivedMsg) + /// <param name="msg"></param> + /// <param name="to"></param> + /// <param name="onResponse"></param> + public void sendMessage(IMessage msg, IDestination to, MessageListener onResponse = null) { - if (receivedMsg == null) + // create a temporary queue and consumer + ITemporaryQueue tempQueue = this.client.getSallySession().CreateTemporaryQueue(); + IMessageConsumer tempQueueConsumer = this.client.getSallySession().CreateConsumer(tempQueue); + + // handle responses if needed + if (onResponse != null) { - // nothing to do ... - logger.Warn("No ITextMessage..."); + tempQueueConsumer.Listener += onResponse; + msg.NMSReplyTo = tempQueue; } - else - { - string res_xml = Utilities.getMessageContent(receivedMsg, "HeartbeatRequest"); - // check if we have indeed received a message. - if (res_xml == null) - { - logger.Warn("Unknown message type.."); - Console.WriteLine("Unknown message type.."); - return; - } else - { - Console.WriteLine("SallyDocument <" + environmentID + ">: Received HeartbeatRequest"); - HeartbeatRequest res = Utilities.deserialize<HeartbeatRequest>(res_xml); - heartBeartResponder(receivedMsg); - } - } + // set the reply to and ids for the message + msg.NMSDestination = to; + + // finally make a consumer and send the message. + IMessageProducer producer = this.client.getSallySession().CreateProducer(to); + producer.Send(msg); + } + public void sendMessage(IMessage msg, MessageListener onResponse = null) + { + // send the message to the send Queue + sendMessage(msg, createDestination(sendQueueId), onResponse); } + /// <summary> - /// Responds to a heart beat request + /// creates a message to be sent with Sally /// </summary> - /// <param name="receivedHeartBeat"></param> - protected void heartBeartResponder(IMessage receivedHeartBeat) + /// <param name="obj"></param> + /// <returns></returns> + public IMessage createMessage(object obj) { - // create the heartbeatreponse - SallySchemas.HeartbeatResponse hbResponseContent = new HeartbeatResponse(); - - // and serialise it. - ITextMessage hbResponse = this.session.CreateTextMessage(Utilities.serialize<HeartbeatResponse>(hbResponseContent)); + return this.client.getSallySession().CreateTextMessage( + Apache.NMS.Util.XmlUtil.Serialize(obj) + ); + } - // and respond to it. - replyAndReceive(receivedHeartBeat, hbResponse); - Console.WriteLine("SallyDocument <" + environmentID + ">: Send HeartbeatResponse"); + /// <summary> + /// Returns a destination + /// </summary> + /// <param name="queue"></param> + /// <returns></returns> + public IDestination createDestination(string queue) + { + return SessionUtil.GetDestination(this.client.getSallySession(), "queue://" + queue); } /// <summary> - /// Replies to a message and handles the response. + /// Creates a listener for a message. /// </summary> - /// <param name="destination">Destination to send message to. </param> - protected void replyAndReceive(IMessage inResponseTo, IMessage message) + /// <param name="T"></param> + /// <param name="handler"></param> + /// <returns></returns> + public MessageListener createListener(Type T, SallyResponseHandler handler) { - // create a temporary queue and consumer - ITemporaryQueue tempQueue = this.session.CreateTemporaryQueue(); - IMessageConsumer tempQueueConsumer = this.session.CreateConsumer(tempQueue); + return new MessageListener(msg => + { + logInfo("hello!!!"); + //read the message text + System.Byte[] content = (msg as IBytesMessage).Content; + String xmlMsg = System.Text.Encoding.Default.GetString(content); + + // deserialse the message + XmlSerializer serializer = new XmlSerializer(T); + XmlReader reader = XmlReader.Create(new StringReader(xmlMsg)); + + // and call the handler + handler(msg, serializer.Deserialize(reader)); + }); + } - // handle the response with the onResponseQueueMessage - tempQueueConsumer.Listener += new MessageListener(OnResponseQueueMessage); + #endregion - // set the reply to and ids for the message - message.NMSReplyTo = tempQueue; - message.NMSCorrelationID = inResponseTo.NMSCorrelationID; + #region Registration - // finally make a consumer and send the message. - IMessageProducer producer = this.session.CreateProducer(inResponseTo.NMSReplyTo); - producer.Send(message); + /// <summary> + /// Contains the ID of the send Queue + /// </summary> + private string sendQueueId; - Console.WriteLine("SallyDocument <" + environmentID + ">: Replying with CorrelationID " + inResponseTo.NMSCorrelationID.ToString()); - } + /// <summary> + /// Registers this document with Sally and starts listening to Heartbeats and messages. + /// </summary> + /// <param name="queueID"></param> + public void register(String queueID = null) + { + // if we do not have a queueId, then we generate one. + if(queueID == null) + { + queueID = "dotnet_client_" + Guid.NewGuid().ToString(); + } - #endregion + //register to the Queue# + IDestination docQueue = SessionUtil.GetDestination(this.client.getSallySession(), "queue://" + queueID); - #region Message Send & Receive + // build and register a listener + IMessageConsumer regConsumer = this.client.getSallySession().CreateConsumer(docQueue); + regConsumer.Listener += new MessageListener(handleMessage); + + // register as a listener + logInfo("Registered document queue listener. "); + + //create a request to send + RegisterClientRequest regRequest = new RegisterClientRequest(); + regRequest.ListenQueue = queueID; + regRequest.Schemas = interfaces; + regRequest.EnvironmentID = environmentID; + + // prepare to send and receive nmessage + IMessage message = createMessage(regRequest); + IDestination dest = createDestination("sally_register"); + MessageListener handler = createListener( + typeof(RegisterClientResponse), + new SallyResponseHandler(_handleSallyRegister) + ); + + // send it. + sendMessage(message, dest, handler); + logInfo("Sent registration message"); + } /// <summary> - /// Sends a message to a destionation and handles the response. + /// Handles the registration /// </summary> - /// <param name="destination">Destination to send message to. </param> - /// <param name="message">Message to send. </param> - protected void sendReceive(IDestination destination, IMessage message) + /// <param name="msg"></param> + /// <param name="decoded"></param> + private void _handleSallyRegister(IMessage msg, object decoded) { - // create a temporary queue and consumer - ITemporaryQueue tempQueue = this.session.CreateTemporaryQueue(); - IMessageConsumer tempQueueConsumer = this.session.CreateConsumer(tempQueue); + // get the response + RegisterClientResponse response = (RegisterClientResponse)decoded; + logInfo("Got registration response"); - // handle the response with the onResponseQueueMessage - tempQueueConsumer.Listener += new MessageListener(OnResponseQueueMessage); + // listen to heart beats + logInfo("Registering heartbeat responder..."); + handleType(typeof(HeartbeatRequest), new SallyResponseHandler(_handleHeartBeat)); - // set the reply to and ids for the message - message.NMSReplyTo = tempQueue; - message.NMSCorrelationID = Guid.NewGuid().ToString(); - - // finally make a consumer and send the message. - IMessageProducer producer = this.session.CreateProducer(destination); - producer.Send(message); - - Console.WriteLine("SallyDocument <" + environmentID + ">: Sending message to "+destination.ToString()); + // store the send Queue + sendQueueId = response.SendQueue; } + #endregion + + #region Heartbeats /// <summary> - /// The temporary one where sally gives back a queue in response for a document register request. Also used for other trivial sendReceives + /// Handles Heart Beats /// </summary> - /// <param name="receivedMsg"></param> - protected void OnResponseQueueMessage(IMessage receivedMsg) + /// <param name="msg"></param> + /// <param name="decoded"></param> + private void _handleHeartBeat(IMessage msg, object decoded) { + logInfo("Responding to heartbeat request"); - Console.WriteLine("SallyDocument <" + environmentID + ">: Received response Queue message"); + // i take your request + HeartbeatRequest request = (HeartbeatRequest)decoded; - if (receivedMsg == null) - { - // if there is no message, we have nothing to do - logger.Warn("No ITextMessage..."); - } - else - { - // read the message content - string res_xml = Utilities.getMessageContent(receivedMsg, "RegisterClientResponse"); - - // and register to the response queue if possible. - if(res_xml == null) { - logger.Warn("SallyDocument <" + environmentID + ">: Unrecognised response Queue message"); - Console.WriteLine("SallyDocument < " + environmentID + " >: Unrecognised response Queue message"); - } else { - RegisterClientResponse res = Utilities.deserialize<RegisterClientResponse>(res_xml); - registerToResponseQueue(res.SendQueue); - } - } + // and raise you a response + HeartbeatResponse response = new HeartbeatResponse(); + + // we send it + respondToMessage(msg, createMessage(response)); } #endregion - public bool isRegistered() { - return this.subscribedToQueue; + #region Logging + + /// <summary> + /// A logger for this document. + /// </summary> + private static readonly ILog logger = LogManager.GetLogger(typeof(SallyDocument)); + + /// <summary> + /// Generates a log message + /// </summary> + /// <param name="message">Message content</param> + /// <returns></returns> + private string logMessage(string message) + { + return "SallyDocument <" + environmentID + ">: " + message; } /// <summary> - /// Sends a message to sally. The wait parameter is used for debugging. + /// Logs an info message to console and to the log. /// </summary> - /// <param name="xmlMessage"></param> - /// <param name="wait"></param> - public void sendToSally(String xmlMessage, bool wait = false) + /// <param name="message"></param> + private string logInfo(string message) { - if (!this.subscribedToQueue) - {// we are not subscribed to a quenue yet, so we can not send anything. + string msg = logMessage(message); - // in the debug case, we should wait for a second - // and try again. - if (wait) { - System.Threading.Thread.Sleep(1000); - sendToSally(xmlMessage, false); - return; - } + logger.Info(msg); - // otherwise die with a fatal message - logger.Fatal("Register to the queue from sally's response first..."); - Console.WriteLine("Register to the queue from sally's response first..."); + return msg; + } - } - else - {// we are subscribed => send the message. + /// <summary> + /// Logs a warning message to console and to the log. + /// </summary> + /// <param name="message"></param> + private string logWarn(string message) + { + string msg = logMessage(message); - this.sender.Send(xmlMessage); - Console.WriteLine("Sent a message on response queue.."); - } + logger.Warn(msg); + return msg; } + /// <summary> + /// Logs a fatal message to console and to the log. + /// </summary> + /// <param name="message"></param> + private string logFatal(string message) + { + string msg = logMessage(message); + logger.Fatal(msg); + + return msg; + } + #endregion } } diff --git a/SallyConnect/TestUnit.cs b/SallyConnect/TestUnit.cs index 750dea6..57e9a0d 100644 --- a/SallyConnect/TestUnit.cs +++ b/SallyConnect/TestUnit.cs @@ -16,20 +16,10 @@ namespace SallyConnect // we first create the sally client. DotNetSallyClient dns = new DotNetSallyClient("activemq:tcp://localhost:61616");//neptune.eecs.jacobs-university.de:61616 + SallyDocument doc = new SallyDocument(dns, docName, interfaces); - //and then register a document to it. - SallyDocument sD = new SallyDocument(docName, interfaces); - dns.registerDocument(sD); // register the document. - - //now just wait - Console.Read(); - /* - System.Threading.Thread.Sleep(1000); - if (sD.isRegistered()){ - sD.sendToSally("some message"); - } + doc.register(); Console.Read(); - */ } } } diff --git a/SallyConnect/bin/Debug/SallyConnect.exe b/SallyConnect/bin/Debug/SallyConnect.exe index 1c92bba4f62c567e51a3be106a985b72f599a84a..26b47960a945e96dfdd5e6a329a7c1099b117cd9 100644 GIT binary patch delta 7674 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 YFiK$D%%}5<mC40wv!Ky?#)$^(0GVqv-T(jq delta 7476 zcmZq3X~>w+p;WhOPbdQvJYY~_;AS*nV9;V<VBmlVF7lkXDvZ&0G9#lp>lqIQ2ARo< zOgfVz8P&N~XfiM`C@?TEXie^7)MnI~yp2(v(P;8LMkR$tPl#p@1_lNu237_JO$LTD z@(c{j3``&<+vGqUgULlq#`SVc)oct5ELuuT%(Y;K98)zrOaRPaU|^6oU}5NDU|?Wm zU=U<r(qLs^U@I16VBq3n6YCXVU|=j3VqoCnW?*7x(qLp@U}Mr?W?*2;7iM7K(%@oX zU}Ion(%=M%h=4>mz#<R<QGEsmE(WNq7y|<r&pi!Z2F`qOkU|NN9K$_fVHO5K7O2qV zUS{cfDX>eV7~BdOgryl67=;a380x?tWe{Z2kOXUEV%A^-Tg0Nl1g2RvSU|Lf6axd7 z8j}V$0|T4bKSnM#9TSEkMh1og<|0i7h5`*~xXpD;3=AyjQu#6r4E0<L+G0?NR8&1$ z3=F~s%nVixppXWK71-Y(pFu2>fmj9!!=i~W-NmvD3|v)A8te=VY~0!m>{?n3%uM;R zAO~wLQiepOii3t60|QqBqX+{7%LOI|1||)8kYg1<f=rWVv8aI}lM5DiV1^u1H8)HE z%#dTM=79--8FEb3yf6VU1LS^J1_lNe29&@Q1-XTZMME4+i)jdh=^{Z!h5`*mP*M<L z_*X9`%fP@0i76$J(*!|^KuH;7s5=7#C?N_mFfr%zGBB`#B8m;-2{sL7kP%E85)2G% zZ22mn)WoEr0Mg9_5iHUNS)|Iqz{Rei0ut8(2Q<i`Y>-4L!N5?@#;gHS!UfgDmahhK zg)~S#lQ_i5MX`(w1xy+u3=C{VwIDMQ5e{)E6N3o@0|PtA&|-CvtJol_^EE)}ij7G_ z0F;t7p&T&~M+?m1)~;t@*8=%85|ViZ8K7?83$_xZPXin*5H~_Ss}1rjJJUZlMNqEN zVPN3O*9Dn}?9lVr9Lfw%^PC`uGK+vya=i#c9UmysN;5GO<m-V<VbD%sU@mfGVkpqi z2Bj@_k$;Rl96EAPg~@P*MIa`~Nn8xtx(vvcPXuX3gc3U_i)-^TF@yZV1}c0YY2J>3 zp`L*Y<eFkorsjh9oeh-xw4pJ|%npiYHWbrOqnZxRKr9T+3=9n1AhRH*<Qsq@0>Wm? zhliLdYKXDav*jCtJk7$KZv+ZQV-N?Ti#gu}BmzngJRB_frXU$)PyT0OD1hn$mpx{n zgaa;sKnab7p^brofrpTT>e<j;1alBLi|`6D|3l=Ed=%H=beKIe$YB_6VgQwSOBfg! zctMVW`lKG5s&ko9iZN)~z?L+!8JLSUgH$6Y4SQ(PK*}c%L25uL0FtJP^jY9pD3Aro zvU)BC25m70c2M!J&CA4@Zw?AYIZ*avV9*jaU<3sr0~5%_Od3KA3~XH53~b;WlfuBj zz=sfrl$F*DEZpom;tUEem>C!}EI?7l#4M(v4l+;M0+P}fvM>~Y%49BvqJ=E=3<Z!B z%%CmBzyvDk*_bsfLHdfgS>bY8VHcQD3r|p<fhIgB1_lOxkVC|K^%xi!RmF+|Ss4lz zaTP_gG8AwZ&1YpOD7p(Hig_3q*m&64ie(rW*myZO>+|_QZqu*=RWVvh(5gs_LE3<c zp_GAvK>%bhQ>i(qkhBJ+Xbl?%1}?UITW}EoaXNdk9VpQ3L3JU6wh9ABz5@dTm$)$> zN4_Hi0~fP~69WU6Hlr9Xrw$tfyD-Z=1qP0MX9fl?VOBvNR^1B>_qaK9*g5iDCO_cP z2oMC>c!80DK^k0F6uW|KWkOiN&BmVZ#=yX}6r_Yln}Guy42%qd3=9lHAiYdIAQ@1$ z<pM?4<OAFq^#xoE49ay340pH~7)-bs7?guciZb)ki$T?tfEWYA8&(De<<MY;Khj_? zGbp=<db)t}j|>CD0cHjUWv86{B#>fAmCYC~yNHvMhk=3N7o#zQ7`Sd{uz^$-phUr- z$H2g#$iTqh2C0?m!PTn}L^G(A0O<iWO~4pbA~8X#Uj_z-MXZcqi`W>PSmHR@7}kTy zXl5o(eug?w)yy!DS(=@VL6rqWvVqBIU@{3zR)fi{U^QLL_MB`CzRdL?>Lpm{0`oss zHimzkZES1|y=-l4TnyT5LR@SNM$90~q?wsG*%<PfnK=0vX0w$r@G)4jmoNx1c(S#z z@iF}4Dq&z_XkiEG?O_LroM8uv>|g+~&6z;zZ?Tmyh%s#9`pUt_5W)cxdBa#z&mhLI zkn1al7{g;GkVG^qNYPiOuN+bgKiSLKq!{*aFtPJ72y%loWHEsZoyi1p+$oN$tZWRr z?7KMG7*yCm7GGfkk)>c+3l1SJK89qrU^YI6Y%tl#0n$5};R!1r!vao_X_`zW4E1ab zUs<nnu`#@1&thO>VCKkTkYYH<RL;i65XaO83V(1!fZ`Dp_yP<jT<^IY85qH$0u1?F ztXz%^9H7j=Aiy9G=JA8tqznQKy__I9eg<s@5rz|7(oBX7z8vyQj0{bT%1n$5cNjqA zmU=M9lu?a|k-?8qi;0mz5-jqKL63=%VJ}$G3`RpHMh1wQEJjnPK>?t)GD923Dh?M0 zMurG5uaRRjhX4a3Ln4^h#&L<!g@K776U=MmxX&oSz{F4l=CyI0<#b_SW~i?Ma~nBs zatbgoGc<#FZ5)T#tQlAsy1~3gj&p35Oe_pjz`Qn&G<JI?R)#rXUL!{-y9*O5!wN93 zg&~aHfq{)729&@V+9d99crmdtynyf+HnCYVa5CsAfzogrLmXEi6DNaZJ(xRD;t@wU z6Bk1gnAgT(%j&|w#gGN&HFEf{3NUan6oYwf9D=M44BQOWU|u7KI;$uHH$w}U*T&(- z;KIPe&;#Z*azro)Fz_%;1@qcC6gi`rcp2t`d5s(fockDf8I~#4gIv=H_Aej9I;bSb zzkCeap*%j01SWol{ZO7HM=BFP!wE1C<il(x0R|axqqdE~hOLN6h@k+?Yhk#}BETTb za0JS8<Emg1VPH`K+1J7_k%Nsvgds<T0c3v*!&gQrMiGV|P)QXIDMnES7gdPTHr6^O zF@`Hp-Za(@CJBZNHHaKLlN6&AgM>PW*Tyi5!GS@V!2rs8%r%ionqdK$2MJ$Uh8++d z!!)+(OtK7Y8lYAVIG)%T<QN1rK*mgC=;WHqB*(A>$~(!rlu3c%0hD)|bq$juSR(^e zA1ELg85&qYIRqOiAi&6Qms3E1iD5g3fB-YYV@8llNdK#Wm7$&ipJtHK7;xEW!U<x} z0h6CuKx_jx5cviyGMgRLF$`k@iF{*2upw&Xm_XJ`ae-u~gVlq?nHbJ8F)-9KGBkk= z3S;7AxWfUeEbefyF-S7p;oxG>WVpj2z+ea_Ey1KCnDhjbfnYKcOeQki;SgoW1hWgl zWF?rK$pA8KCBq#KDTae!5l_ZD96Agq8C=;-7<Mu&sb{lh2xOei#l{fGxSYX(p^-s? z&4nS7aTSvXLnByoBI8Y_K!!rbr<~yo6B&Hj;uvm%4eDeN<;-NLWNc^3XXs>f=BQwJ z$*`576|Az0VIt#Z)@ckI8C;lVGt6Xs&bE+YBg0+xbqtJ*AO|rrnlK13FfuZ-)`O^* z9QznHGNf{xVOYp`hvNzZCu0f6Ery8<)7aw}6u}xcGGw!IG72(oXXj@WWaMISVGv}L zXAoczWL&{6%J`7sETa@7$cc)KhKy%fTo_g|9%J`n+{k#A(VsDrv5z5vaVKLfR{`Te zMh&h~#)FKCY}Je>8Siii)H7HziZC}aS~6~7>SDBHT*&0YP{^ppJ%Q1Zv5&!l;UOar zGaG{=;~kDAjE;<ZSywaiF-S68WaMLzW#D7tV^Cz^V`5?`WRPT1V5nx;$gIb}&2XMc zk3pE>29q9xG{bi$JqBe424+15Z3ZD`JqBYiX$>Zw85o%B^%%SvB$)LWg26)3U^1D( zfLV_rn<0u>kD-_$o!J3wbOM-6gp$n++n5``>_#XF5?KIdFNBgHkpp1%K`03lc>rcV zgpl<NARz`uklPudBuGR7%vOYwAQ1;J+Yw5FL=wU5L`D$15zKA`vloKd3&Cs#CXmSr zVA26hCV<HXFu8!K9wdDL%y|GN8JIyL3SiO!OeTOy1qNS+WQGQY2@ES4wlW-Hc*yX9 z;U9x0qZy+sV;Ex!<21%ij7$uS49pCmN^?8MW+n!P$BZEIE+>e*#I~J@fuWLp4-*4J z04qpDoAn?QgE&JB1Bhe7d6bEP0isBj;}p~61!8vf0t~zipd87|z{DWLz|X+QAk4te zz{DWJAjrVTAPO3iU=U*vW?*CxXAov!Vvt}EWng5GWDsRwVvu4GXJBNIW)Nps$jH(F z%KD(v4Tf1k0}3z>0|Uc0#zruYk%0-+2?4YB*E0%nfmn=SFL8q!bqpsMOF%-P0R=D( zBDOI?8VVpb0)GXMc(EV^7`8E%gTe+Z5(zH(85p7&>KP&!UNJ;5{9uS+um`m<7#M7P z^HWN5QW@<gt4K6TrQ|0w1f?dXFoa|jfvC*lpw#rt;*!*&$+sjzbV`$olZ!HwQd2_m z14~m&Q|+?j<DC+dvorJ3-7-^iQW$KC6LWGZ!E%$OCEeMIQ}a?%izWw1#xMt`=1o2) zsjB0j=aQccR^gjkT%4Gm%HW?Dlv-SnpI4lUB3zN1Gg)8Cc5;(cHHUM4URq{)Y0+e9 zX>A^t%;JLl;#3CbqSVC62c<<eH%hN(tS^E(G$bFzG=?H%vl)t0OX7V%9?ApT#gLv_ z5?_q&EwCy~QLtLL{~(Is+{yN`YVu`?Ii;x#MX3cjm5zBSL8-~9nPsUApg;h#C)dlm z@&{KIm!#(EK>|24Z}K5oPeGX5!!t`V7($CO873RbIdFtz=B5T0B<4*nkPDjpT#lbH zW%6sec-G>Q#G;bP_VU((;fY0g44LrI3(23nLSCLVI43o=VDd$IXEm^c!7%`FEQFbn znpjlg1R@{-HCaGGVRE#BEkDc^(D<1=S3!m+A~z>EwJ0+&C$lPb@<#<<F1Mom+~CyY z{JfOOHj1?}DS5>V(0B|e%1<dxPAzh+C`rvL&dkr7d{9wz@_j{lmm)|&q<DZVbxKVv zVen7NN=+_d2nGe8bADbPh?A3_ZjzT;!cd-=S;7#KT3iyEmstXiAeYp%#L4kWk_OKC zMX9g^>5`vZnwy$e!hqy#hyd7Bu=M1GN=lP2D(R|1T>uKv{L&HzSRABQlz?L=Bp;+_ zvaGVlWNQ@-c56EZD+UFI$!W@_?AlQF9A#DZdMNvla^>V&6*(Q<LWWX?R4}$;&}YzR zC}v1x$YID~sAPy|C}K!uNN31oC}t>ONM$IR{9aW_!5(5j5ULbIDnkl`0z(Ny{^a#4 z@=^?f=*BX5L-b9aqvBG}pz6nv&!E8I$q>Sj%22^j!r;r0%1{ipJDnkwK@SWW6g?PH z84?+a7)ltDz^oDmkhKt_L2hEu4Q0q<$Y#i6$Y&^L$YW4o$VD*+<e*B10;q`$mJlZd z)ib0rBr~KkWHOXN-A&LUV~EyZhE#?;uurk;C}t>N$Y;o7C}v1yU_c6~0&sw4GUPF& zGbk|BmosEClrUs4C@?rP<TDh3!#Rf`k)ebk6Rh2n!38w5uZwCaOgp9@L1D?@3Q-LT zAym(SViDP43iS+u;0OmrJbI8Z=z<JDigX5Nh8%`Wu)iU}k8Bi!FT_$%G=Qv0X2@qq zXUGF58Ayr%i6ZMzU<hQW2U!fl7?vvr!&9FNLq0<?Ln$~$^B77P6c}tkVdAgAK#r9l z+dvp>V?9z*W5`7JFDTJ~0u&TMsSFAXkmLr@oW@YZkk63Ipa4#)kZhvPP|TnJjzUy_ zrZHqP6oIo2Bsnv>LQ+o&gS7%fB9^oYN;udILO4K=L2oj@+ALuP1_mjXU#B}hzwufW zF~2l7Szl}N88!L(KyG$cp+uonCZSBBTy_N}MxjJm88!tbp;$gX76k^ONM;2FCT0Z& zJ{AT>Mm}bCMkZDU2BC(nYz)kNd>|!^j54h3OiV(NtPG5TuDl!!j6w~21se{sGcXEy z3N`FyVP_O91x*f=vNAC7@$s>;Gw}&kvM@06$*?Lg)(chgu`@6U)e1%Ov9L1=)v_rt z3Ka^~a<DTAH8ct}G_oo%GRpF?vxAg0w6ZHO3N^F})v_uuG0I4=DKIh$HC*IiXJO)F z5^CsW<zf_S=mn{5m?%^U=1t^cXBKLh3er@_s=y%BFcoB=P%X%7AiL@rg&I298CXDm z;p1UvfvFWNg_$}NY|cy;b|xk!P#AEqF)%R-70Ph3v&i!C32_MVFf%Z4aI>??vhoQv z%w^(ZVo_j_Wd(=QLskVwK3P_9n9LPwc*&~3AlUGhm4S(gj}Ppyg=RtxbLAMA<QO1+ z*~_NDC?nJ`mzkZBk7IjPOqis}gHDdLdA#?zH?Gp+Xe!Nr_jqcVgw5mxHJf^_Y;Z}J z$dCqV6tW4rGP4PJGO_V7vk65qvkApAu`w~T$%43rU{6PaJRJ*W#<D3eGlC)m6oMcR zFoGNnj&O+DLN)~^Mm||Suxbu)$Tf0;Qb$9lP(vpNh~-o()X)iv2tFoO25=-XF!2dB zbn>wYFfz(9fGIvX24)QgJ{AoIp-2!B%dEk`#G=6<3l=JzT&eX{2R5Gx8ih+`U|@LR z!NBlBi-931*d=(|gHwAIxGVj4@T@)Ie^0<<@*M3zp;G8vC8(9x4`M4!R1{-s^qefN XGkr6k-Y-_BC6=27P2Mw3G++k+`V0sS diff --git a/SallyConnect/bin/Debug/SallyConnect.pdb b/SallyConnect/bin/Debug/SallyConnect.pdb index 25116f05e19c20881dc74717ac52700bc7d5e3d1..7537996ab4d3eae6bb5f7d1cecb8af104496b094 100644 GIT binary patch literal 32256 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 literal 30208 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 CXr%Q3 diff --git a/SallyConnect/obj/Debug/SallyConnect.exe b/SallyConnect/obj/Debug/SallyConnect.exe index 1c92bba4f62c567e51a3be106a985b72f599a84a..26b47960a945e96dfdd5e6a329a7c1099b117cd9 100644 GIT binary patch delta 7674 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 YFiK$D%%}5<mC40wv!Ky?#)$^(0GVqv-T(jq delta 7476 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 XGkr6k-Y-_BC6=27P2Mw3G++k+`V0sS diff --git a/SallyConnect/obj/Debug/SallyConnect.pdb b/SallyConnect/obj/Debug/SallyConnect.pdb index 25116f05e19c20881dc74717ac52700bc7d5e3d1..7537996ab4d3eae6bb5f7d1cecb8af104496b094 100644 GIT binary patch literal 32256 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 literal 30208 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 CXr%Q3 -- GitLab