diff --git a/ClientConsole/ClientConsole.csproj b/ClientConsole/ClientConsole.csproj
index 6fe8082..b2d1eee 100644
--- a/ClientConsole/ClientConsole.csproj
+++ b/ClientConsole/ClientConsole.csproj
@@ -38,6 +38,12 @@
..\References\BouncyCastle.Crypto.dll
+
+ E:\dev\Libraries\protobuf\csharp\Debug\v4.0\Google.ProtocolBuffers.dll
+
+
+ E:\dev\Libraries\protobuf\csharp\Debug\v4.0\Google.ProtocolBuffers.Serialization.dll
+
E:\dev\Libraries\log4net\log4net.dll
@@ -60,15 +66,19 @@
-
+
+ {93FD4F32-5214-40E3-8E36-5B4E354F10C4}
+ SocketServer.Client
+
+
{4138075A-49CD-4A46-92CB-DFF64A0BB0B6}
SocketServer.Crypto
-
+
{9394CA0C-0014-4C8B-8795-3A5C45B254EE}
SocketServer.Messages
-
+
{7C9013CF-CEC4-4F7D-B80D-C6FA2E243CF1}
SocketServer.Shared
diff --git a/ClientConsole/Program.cs b/ClientConsole/Program.cs
index 99a441f..2b5a739 100644
--- a/ClientConsole/Program.cs
+++ b/ClientConsole/Program.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
-using SocketServer;
using System.Threading;
using System.Net.Sockets;
using SocketServer.Shared.Serialization;
@@ -11,6 +10,7 @@
using SocketServer.Messages;
using SocketServer.Crypto;
using Org.BouncyCastle.Math;
+using com.BlazeServer.Messages.MessageProtos;
namespace ClientConsole
{
@@ -135,11 +135,11 @@ private static void client_MessageReceived(object sender, MessageEventArgs e)
private static void HandleEnableEncryptionResponse(MessageEventArgs e)
{
EnableEncryptionResponse response = e.Message as EnableEncryptionResponse;
- encryptionEnabled = response.Enabled;
+ encryptionEnabled = response.Success;
if (encryptionEnabled)
{
- e.ClientConnection.Envelope = new EncryptedMessageEnvelope(
+ e.ClientConnection.Envelope = new EncryptedMessageEnvelope((ICrypto)
new SharedKeyCrypto(
sa.Parameters,
sa.KeyPair,
@@ -151,19 +151,19 @@ private static void HandleEnableEncryptionResponse(MessageEventArgs e)
private static void HandleServerConnectResponse(MessageEventArgs e)
{
- ServerConnectionResponse response = e.Message as ServerConnectionResponse;
-
- sa = new ServerAuthority(new BigInteger(response.DiffieHellmanInfo.P, 16), new BigInteger(response.DiffieHellmanInfo.G, 16));
- serverPublicKey = response.DiffieHellmanInfo.PublicKeyInfo;
-
- // now enable encryption
- e.ClientConnection.Send(
- new EnableEncryptionMessage()
- {
- MessageID = "EnableEncryptionMessage",
- Enable = true,
- PublicKeyInfo = sa.GenerateEncodedPublicKeyInfo()
- });
+ //ServerConnectionResponse response = e.Message as ServerConnectionResponse;
+
+ //sa = new ServerAuthority(new BigInteger(response.DiffieHellmanInfo.P, 16), new BigInteger(response.DiffieHellmanInfo.G, 16));
+ //serverPublicKey = response.DiffieHellmanInfo.PublicKeyInfo;
+
+ //// now enable encryption
+ //e.ClientConnection.Send(
+ // new EnableEncryptionMessage()
+ // {
+ // MessageID = "EnableEncryptionMessage",
+ // Enable = true,
+ // PublicKeyInfo = sa.GenerateEncodedPublicKeyInfo()
+ // });
}
static void client_ClientClosed(object sender, DisconnectedArgs e)
diff --git a/ConsoleApplication1/ConsoleApplication1.csproj b/ConsoleApplication1/ConsoleApplication1.csproj
index 70e3fb1..fdf546b 100644
--- a/ConsoleApplication1/ConsoleApplication1.csproj
+++ b/ConsoleApplication1/ConsoleApplication1.csproj
@@ -56,11 +56,19 @@
-
+
{93FD4F32-5214-40E3-8E36-5B4E354F10C4}
SocketServer.Client
-
+
+ {4138075A-49CD-4A46-92CB-DFF64A0BB0B6}
+ SocketServer.Crypto
+
+
+ {9394CA0C-0014-4C8B-8795-3A5C45B254EE}
+ SocketServer.Messages
+
+
{7C9013CF-CEC4-4F7D-B80D-C6FA2E243CF1}
SocketServer.Shared
diff --git a/Database/ServerData.sdf b/Database/ServerData.sdf
index 2cc6e12..fe9fd6b 100644
Binary files a/Database/ServerData.sdf and b/Database/ServerData.sdf differ
diff --git a/NewSocketServer/ChannelEventArgs.cs b/NewSocketServer/ChannelEventArgs.cs
deleted file mode 100644
index c9b5bfe..0000000
--- a/NewSocketServer/ChannelEventArgs.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SocketServer
-{
- public class ChannelEventArgs : EventArgs
- {
- #region Constructors
- public ChannelEventArgs(ClientConnection clientConnection)
- : this(clientConnection, null)
- {
- }
-
- public ChannelEventArgs(ClientConnection clientConnection, Exception ex)
- {
- ClientConnection = clientConnection;
- Exception = ex;
- }
- #endregion
-
- #region Public Properties
- ///
- /// Gets the channel associated with the raising of this event.
- ///
- public ClientConnection ClientConnection { get; private set; }
-
- ///
- /// Gets the exception associated with the raising of this event.
- /// Will be null if was not raised as the result of an exception.
- ///
- public Exception Exception { get; private set; }
-
- ///
- /// Gets a value indicating whether there was an exception associated w/ the creation of the event.
- ///
- ///
- /// true if this instance has an Exception; otherwise, false.
- ///
- public bool HasException { get { return Exception != null; } }
- #endregion
-
- }
-}
diff --git a/NewSocketServer/ClientConnection.cs b/NewSocketServer/ClientConnection.cs
deleted file mode 100644
index 3649301..0000000
--- a/NewSocketServer/ClientConnection.cs
+++ /dev/null
@@ -1,490 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Net;
-using System.IO;
-using log4net.Core;
-using log4net;
-
-namespace SocketServer
-{
- public class ClientConnection
- {
- #region Fields
- private static readonly ILog logger = LogManager.GetLogger(typeof(ClientConnection));
- private readonly object sendLock = new object();
-
- private MessageDispatcher messageHandler;
- private Thread responderThread;
-
- private Exception currentException;
-
- private volatile bool running;
- private volatile IMessage sendResponse;
-
- private readonly AutoResetEvent sendResponded = new AutoResetEvent(false);
- private readonly AutoResetEvent messageSent = new AutoResetEvent(false);
-
- #endregion
-
- #region Constructors
- ///
- /// Creates a controller channel with a default TCP transport
- ///
- public ClientConnection()
- {
- Initialize(new SocketTransport(), new PlainEnvelope(), new MessageDispatcher());
- }
-
- ///
- /// Creates a controller channel with the given transport
- ///
- /// The transport for the channel to communicate over
- public ClientConnection(INetworkTransport transport)
- {
- Initialize(transport, new PlainEnvelope(), new MessageDispatcher());
- }
-
- ///
- /// Creates a controller channel with a default TCP transport that is able to handle incoming messages
- /// using the given dispatcher
- ///
- /// A MessageDispatcher to route messages to appropriate handlers
- public ClientConnection(MessageDispatcher dispatcher)
- {
- Initialize(new SocketTransport(), new PlainEnvelope(), dispatcher);
- }
-
- ///
- /// Creates a controller channel with a default TCP transport that is able to handle incoming messages
- /// using the given dispatcher
- ///
- /// A transport used to send/receive messages
- /// A MessageDispatcher to route messages to appropriate handlers
- public ClientConnection(INetworkTransport transport, MessageDispatcher dispatcher)
- {
- Initialize(transport, new PlainEnvelope(), dispatcher);
- }
-
- ///
- /// Creates a controller channel with a transport that is able to handle incoming messages
- /// using the given envelope and dispatcher
- ///
- /// A transport used to send/receive messages
- ///
- /// A MessageDispatcher to route messages to appropriate handlers
- public ClientConnection(INetworkTransport transport, Envelope envelope, MessageDispatcher dispatcher)
- {
- Initialize(transport, envelope, dispatcher);
- }
-
-
- #endregion
-
- #region Factory Methods
-
- ///
- /// Creates a controller channel with the given transport, dispatcher, and ControlMode
- /// This constructor is used only by the ChannelListener when creating new server channels
- ///
- /// The transport for the channel to communicate over
- ///
- /// A MessageDispatcher to route messages to appropriate handlers
- ///
- public static ClientConnection CreateListenerChannel(INetworkTransport transport, Envelope envelope, MessageDispatcher dispatcher)
- {
- ClientConnection channel = new ClientConnection(transport, envelope, dispatcher);
-
- channel.StartReceiveThread();
- return channel;
- }
-
- #endregion
-
- #region Public Properties
-
- ///
- /// Gets a value indicating whether the channel is connected to the remote endpoint
- ///
- public bool IsConnected
- {
- get { return Transport.IsConnected; }
- }
- ///
- /// Gets or sets a unique identifier for this channel. This is not initially the same identifier
- /// as the Channel on the other side of the connection. Identifiers are synchronized only when
- /// a controller channel changes its mode to become a responder.
- ///
- public Guid ConnectionID { get; set; }
-
- ///
- /// Allows access to the message dispatcher for this channel in order to register new message handlers
- ///
- public MessageDispatcher Dispatcher { get; private set; }
-
- ///
- /// Gets the remote endpoint of this connection.
- ///
- public EndPoint EndPoint { get { return Transport.RemoteEndPoint; } }
-
- public int MessageResponseTimeout { get; set; }
-
- public INetworkTransport Transport { get; private set; }
-
- public Envelope Envelope { get; private set; }
-
- public string Name { get; set; }
-
- #endregion
-
- ///
- /// All messages sent should pass through this method in order to get
- /// the raw message data and trigger the corresponding event.
- ///
- ///
- ///
- private void Serialize(IMessage message, Stream outStream)
- {
- using (StreamWrapper wrapper = new StreamWrapper(outStream))
- {
- Envelope.Serialize(message, wrapper);
- RaiseMessageSent(message, wrapper.GetOutputBytes());
- }
- }
-
- ///
- /// All messages should be read with this method in order to get
- /// the raw message data and trigger the corresponding event.
- ///
- ///
- ///
- private IMessage Deserialize(Stream inStream)
- {
- using (StreamWrapper wrapper = new StreamWrapper(inStream))
- {
- IMessage message = Envelope.Deserialize(wrapper);
- RaiseMessageReceived(message, wrapper.GetInputBytes());
- return message;
- }
- }
-
- private void Initialize(INetworkTransport trans, Envelope envelope, MessageDispatcher disp)
- {
- ConnectionID = Guid.NewGuid();
- MessageResponseTimeout = Timeout.Infinite;
- Transport = trans;
- Envelope = envelope;
- Dispatcher = disp;
- }
- ///
- /// Starts a thread for Channels in Responder mode to process and handle incoming messages
- ///
- internal void StartReceiveThread()
- {
- if (running) return;
-
- responderThread = new Thread(ProcessMessages) {Name = "ClientConnectionThread", IsBackground = true};
- responderThread.Start();
- }
-
- internal void StopReceiveThread()
- {
- running = false;
- Pulse();
- // This method is called by the responder thread in response to certain protocol message, like QUIT.
- // Because of this, we can't join our own thread to make sure it's halted.
- // It's up to the caller of this method to decide whether they need to join the receiveThread
- // in order to ensure proper shutdown.
- }
-
- ///
- /// Connects this channel to the remote address and port.
- ///
- /// The server address to connect to.
- /// The server port to connect to.
- /// A Connected message providing information about the remote server.
- public void Connect(string serverAddress, int port)
- {
- lock (sendLock)
- {
- // reset this so that a reused channel will wait for message responses
- sendResponded.Reset();
- sendResponse = null;
-
- Transport.Address = serverAddress;
- Transport.Port = port;
- Transport.Connect();
-
- StartReceiveThread();
- }
- }
-
- public void Connect()
- {
- Connect(Transport.Address, Transport.Port);
- }
-
- ///
- /// Shuts down the connection.
- ///
- public void Disconnect()
- {
- Disconnect(false);
- }
-
- ///
- /// Shuts down the connection.
- ///
- /// true [forceDisconnect].
- public void Disconnect(bool forceDisconnect)
- {
- //lock (syncSend)
- {
- StopReceiveThread();
-
- if (Transport == null)
- logger.ErrorFormat("Channel '{0}' transport is null in Disconnect", Name);
- else
- {
- Transport.Disconnect(forceDisconnect);
- bool joined = responderThread.Join(5000);
- // If we can't join the receive thread, disconnect the transport forcefully
- if (!joined)
- Transport.Disconnect(true);
- }
-
- RaiseChannelClosed(null);
- }
- }
-
- private void ProcessMessages()
- {
- try
- {
- running = true;
-
- while (running)
- {
- ProcessAsynchronousMessages();
- }
- }
- catch (InvalidOperationException ex)
- {
- LogChannelError(ex, Level.Finer);
- }
- catch (IOException ex)
- {
- LogChannelError(ex, Level.Finer);
- }
- catch (Exception ex)
- {
- LogChannelError(ex, Level.Error);
- }
- finally
- {
- running = false;
- if (Transport.IsConnected)
- {
- Transport.Disconnect(true);
- }
- RaiseChannelClosed(currentException);
- sendResponded.Set(); // make sure no synchronous sends are still waiting for a response that will never come.
- }
- }
-
- private void LogChannelError(Exception ex, Level level)
- {
- currentException = ex;
-
- logger.Logger.Log(null, level, "Message processing error on channel '" + Name + "': " + ex.Message, ex);
- if (ex.InnerException != null)
- logger.Logger.Log(null, level, "InnerException:\n" + ex.InnerException.Message, ex.InnerException);
- }
-
- private void ProcessAsynchronousMessages()
- {
- IMessage response = null;
- IMessage message = null;
- try
- {
- message = Deserialize(Transport.Stream);
- message.Validate();
- response = Dispatcher.DispatchMessage(message, this);
- }
- //catch (UnknownMessageException ex)
- //{
- // response = Protocol.ProcessUnknownMessage(ex.Message);
- //}
- //catch (ProtocolException ex)
- //{
- // response = Protocol.ProcessProtocolException(ex.Message);
- //}
- //catch (InvalidMessageException ex)
- //{
- // response = Protocol.ProcessInvalidMessageException(ex.InvalidMessage, ex.Message);
- //}
- //catch (UnhandledMessageException ex)
- //{
- // response = Protocol.ProcessUnhandledMessage(ex.UnhandledMessage);
- //}
- //catch (MessageProcessingException ex)
- //{
- // response = Protocol.ProcessHandlerException(message, ex.Message);
- //}
- catch (Exception ex)
- {
-
- }
-
- if (response != null)
- Serialize(response, Transport.Stream);
- }
-
- ///
- /// Causes the receiver thread to break out of its wait handle to process messages or to quit.
- ///
- internal void Pulse()
- {
- messageSent.Set();
- }
-
-
- #region Public Events
- ///
- /// Event Raised whenever an incoming message is received
- ///
- public event EventHandler MessageReceived;
-
- ///
- /// Event Raised whenever an outgoing message is sent
- ///
- public event EventHandler MessageSent;
-
- ///
- /// Event raised when this channel is closed from the remote endpoint
- ///
- public event EventHandler ChannelClosed;
-
- #endregion
-
- #region Event Raisers
- private void RaiseMessageSent(IMessage message, byte[] raw)
- {
- var handler = MessageSent;
- if (handler != null)
- handler(this, new MessageEventArgs(this, message, raw));
- }
-
- private void RaiseMessageReceived(IMessage message, byte[] raw)
- {
- var handler = MessageReceived;
- if (handler != null)
- handler(this, new MessageEventArgs(this, message, raw));
- }
-
- private void RaiseChannelClosed(Exception exception)
- {
- var handler = ChannelClosed;
- if (handler != null)
- handler(this, new ChannelEventArgs(this, exception));
- }
-
- #endregion
-
- ///
- /// Used by channel controllers to send a message synchronously to the remote endpoint and get a response
- ///
- ///
- public T Send(IMessage message) where T : IMessage
- {
- lock (sendLock)
- {
- if (message == null)
- throw new NullReferenceException("Attempt to send a null message");
-
- if (!typeof (T).IsAbstract && !typeof (T).IsInterface)
- MessageFactory.Register(typeof (T));
-
- Serialize(message, Transport.Stream);
- messageSent.Set();
-
- string endpoint = Transport.RemoteEndPoint == null ? "Unknown" : Transport.RemoteEndPoint.ToString();
- logger.InfoFormat("Sent message {0} to {1}", message.Name, endpoint);
-
- // wait for a response
- bool responded = sendResponded.WaitOne(MessageResponseTimeout, false);
- if (!responded) throw new TimeoutException("Timeout waiting for message response");
-
- IMessage response = sendResponse;
- sendResponse = null;
-
- if (response is T)
- return (T)response;
-
- //// Let the protocol have a chance at handling an error response.
- //string errorString = Protocol.IsError(response);
- //if (errorString != null)
- // throw new ProtocolException(errorString);
-
- // If this is not an error message, we need to
- // inform the caller that we did not receive what it wanted.
- string messageName = response != null ? response.Name : "(no message)";
- throw new ProtocolException(string.Format("Unexpected Message {0} received in response to {1}", messageName, message.Name));
- }
- }
-
- #region IMessageSender Members
-
- ///
- /// Send a message asynchronously, ignoring any response.
- /// This method will not throw a protocol exception if an error occurs on the server.
- /// This method should be used when a large number of commands need to be sent together.
- ///
- ///
- public void Send(IMessage message)
- {
- lock (sendLock)
- {
- if (message == null)
- throw new NullReferenceException("Attempt to send a null message");
-
-
- //Interlocked.Increment(ref ignoreResponses);
- Serialize(message, Transport.Stream);
- messageSent.Set();
- logger.InfoFormat("Sent message {0}", message.Name);
- }
- }
-
- #endregion
-
- public static T Send(string server, int port, int txRxTimeout, IMessage message) where T : IMessage
- {
- SocketTransport transport = new SocketTransport { SendTimeout = txRxTimeout, ReceiveTimeout = txRxTimeout };
- ClientConnection connection = new ClientConnection(transport);
- connection.Connect(server, port);
- T response = connection.Send(message);
- connection.Disconnect();
- return response;
- }
-
- public static T Send(string server, int port, IMessage message) where T : IMessage
- {
- ClientConnection connection = new ClientConnection();
- connection.Connect(server, port);
- T response = connection.Send(message);
- connection.Disconnect();
- return response;
- }
-
- public static void Send(string server, int port, IMessage message)
- {
- ClientConnection connection = new ClientConnection();
- connection.Connect(server, port);
- connection.Send(message);
- connection.Disconnect();
- }
- }
-}
diff --git a/NewSocketServer/ConnectedMessage.cs b/NewSocketServer/ConnectedMessage.cs
deleted file mode 100644
index 716ee0a..0000000
--- a/NewSocketServer/ConnectedMessage.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SocketServer
-{
- public class ConnectedMessage : Message
- {
- private string serverName = string.Empty;
-
- public ConnectedMessage()
- {
- }
-
- public ConnectedMessage(string serverName)
- {
- ServerName = serverName;
- }
-
- ///
- /// Gets or sets the name of the server that sent this message. This is helpful for
- /// client connections to know which server they have connected to.
- ///
- public string ServerName
- {
- get { return serverName; }
- set { serverName = value; }
- }
-
- ///
- /// Indexer to add arbitrary headers to this message. This is useful to provide
- /// connection information to incoming client connections.
- ///
- /// The key string of the header to get or retrieve
- /// The header string if it exists, or null otherwise.
- public string this[string header]
- {
- get
- {
- if (!this.HeaderExists(header)) return null;
- return this.GetHeaderValue(header);
- }
- set { this.AddHeader(header, value); }
- }
-
- public override void MapFromHeaders()
- {
- if (HeaderExists("SERVERNAME"))
- serverName = GetHeaderValue("SERVERNAME");
- }
-
- public override void MapToHeaders()
- {
- if (serverName != string.Empty)
- AddHeader("SERVERNAME", serverName);
- }
- }
-
-}
diff --git a/NewSocketServer/Envelope.cs b/NewSocketServer/Envelope.cs
deleted file mode 100644
index 937c4c9..0000000
--- a/NewSocketServer/Envelope.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.IO;
-using System.Xml.Serialization;
-
-namespace SocketServer
-{
- [XmlInclude(typeof(Encoding))]
- public abstract class Envelope
- {
- protected Envelope()
- {
- MessageEncoding = Encoding.ASCII;
- }
-
- [XmlIgnore]
- public Encoding MessageEncoding { get; set; }
-
- [XmlElement("MessageEncoding")]
- public string MessageEncodingString
- {
- get
- {
- if (MessageEncoding is ASCIIEncoding) return "ASCII";
- if (MessageEncoding is UTF8Encoding && MessageEncoding.GetPreamble().Length == 0) return "UTF8";
- if (MessageEncoding is UTF8Encoding && MessageEncoding.GetPreamble().Length == 0) return "UTF8Preamble";
- if (MessageEncoding is UnicodeEncoding) return "Unicode";
- return null;
- }
- set
- {
- switch(value)
- {
- case "ASCII": MessageEncoding = Encoding.ASCII; break;
- case "UTF8": MessageEncoding = new UTF8Encoding(false); break;
- case "UTF8Preamble": MessageEncoding = new UTF8Encoding(true); break;
- case "Unicode": MessageEncoding = Encoding.Unicode; break;
- }
- }
- }
-
- public abstract void Serialize(IMessage message, Stream stream);
- public abstract IMessage Deserialize(Stream stream);
- }
-}
diff --git a/NewSocketServer/FastMethodInvoker.cs b/NewSocketServer/FastMethodInvoker.cs
deleted file mode 100644
index ab0940c..0000000
--- a/NewSocketServer/FastMethodInvoker.cs
+++ /dev/null
@@ -1,147 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Reflection.Emit;
-using System.Reflection;
-
-namespace SocketServer
-{
- public delegate object MessageHandlerDelegate(object target, object[] parameters);
-
- public class FastMethodInvoker
- {
-
- public static MessageHandlerDelegate GetMethodInvoker(object target, MethodInfo methodInfo)
- {
- DynamicMethod dynamicMethod = new DynamicMethod(string.Empty, typeof(object), new Type[] { typeof(object), typeof(object[]) }, methodInfo.DeclaringType.Module);
- ILGenerator il = dynamicMethod.GetILGenerator();
- ParameterInfo[] ps = methodInfo.GetParameters();
- Type[] paramTypes = new Type[ps.Length];
- for (int i = 0; i < paramTypes.Length; i++)
- {
- if (ps[i].ParameterType.IsByRef)
- paramTypes[i] = ps[i].ParameterType.GetElementType();
- else
- paramTypes[i] = ps[i].ParameterType;
- }
- LocalBuilder[] locals = new LocalBuilder[paramTypes.Length];
-
- for (int i = 0; i < paramTypes.Length; i++)
- {
- locals[i] = il.DeclareLocal(paramTypes[i], true);
- }
- for (int i = 0; i < paramTypes.Length; i++)
- {
- il.Emit(OpCodes.Ldarg_1);
- EmitFastInt(il, i);
- il.Emit(OpCodes.Ldelem_Ref);
- EmitCastToReference(il, paramTypes[i]);
- il.Emit(OpCodes.Stloc, locals[i]);
- }
- if (!methodInfo.IsStatic)
- {
- il.Emit(OpCodes.Ldarg_0);
- }
- for (int i = 0; i < paramTypes.Length; i++)
- {
- if (ps[i].ParameterType.IsByRef)
- il.Emit(OpCodes.Ldloca_S, locals[i]);
- else
- il.Emit(OpCodes.Ldloc, locals[i]);
- }
- if (methodInfo.IsStatic)
- il.EmitCall(OpCodes.Call, methodInfo, null);
- else
- il.EmitCall(OpCodes.Callvirt, methodInfo, null);
- if (methodInfo.ReturnType == typeof(void))
- il.Emit(OpCodes.Ldnull);
- else
- EmitBoxIfNeeded(il, methodInfo.ReturnType);
-
- for (int i = 0; i < paramTypes.Length; i++)
- {
- if (ps[i].ParameterType.IsByRef)
- {
- il.Emit(OpCodes.Ldarg_1);
- EmitFastInt(il, i);
- il.Emit(OpCodes.Ldloc, locals[i]);
- if (locals[i].LocalType.IsValueType)
- il.Emit(OpCodes.Box, locals[i].LocalType);
- il.Emit(OpCodes.Stelem_Ref);
- }
- }
-
- il.Emit(OpCodes.Ret);
- MessageHandlerDelegate invoker = (MessageHandlerDelegate)dynamicMethod.CreateDelegate(typeof(MessageHandlerDelegate));
- return invoker;
- }
-
- private static void EmitCastToReference(ILGenerator il, System.Type type)
- {
- if (type.IsValueType)
- {
- il.Emit(OpCodes.Unbox_Any, type);
- }
- else
- {
- il.Emit(OpCodes.Castclass, type);
- }
- }
-
- private static void EmitBoxIfNeeded(ILGenerator il, System.Type type)
- {
- if (type.IsValueType)
- {
- il.Emit(OpCodes.Box, type);
- }
- }
-
- private static void EmitFastInt(ILGenerator il, int value)
- {
- switch (value)
- {
- case -1:
- il.Emit(OpCodes.Ldc_I4_M1);
- return;
- case 0:
- il.Emit(OpCodes.Ldc_I4_0);
- return;
- case 1:
- il.Emit(OpCodes.Ldc_I4_1);
- return;
- case 2:
- il.Emit(OpCodes.Ldc_I4_2);
- return;
- case 3:
- il.Emit(OpCodes.Ldc_I4_3);
- return;
- case 4:
- il.Emit(OpCodes.Ldc_I4_4);
- return;
- case 5:
- il.Emit(OpCodes.Ldc_I4_5);
- return;
- case 6:
- il.Emit(OpCodes.Ldc_I4_6);
- return;
- case 7:
- il.Emit(OpCodes.Ldc_I4_7);
- return;
- case 8:
- il.Emit(OpCodes.Ldc_I4_8);
- return;
- }
-
- if (value > -129 && value < 128)
- {
- il.Emit(OpCodes.Ldc_I4_S, (SByte)value);
- }
- else
- {
- il.Emit(OpCodes.Ldc_I4, value);
- }
- }
- }
-
-}
diff --git a/NewSocketServer/ICommunicationTransport.cs b/NewSocketServer/ICommunicationTransport.cs
deleted file mode 100644
index d15b9ad..0000000
--- a/NewSocketServer/ICommunicationTransport.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.IO;
-
-namespace SocketServer
-{
- public interface ICommunicationTransport
- {
- void Connect();
- void Disconnect(bool force);
- bool IsConnected { get; }
- bool HasConnection { get; }
- Stream Stream { get; }
-
- int SendTimeout { get; set; }
- int ReceiveTimeout { get; set; }
- }
-}
diff --git a/NewSocketServer/IEnvelope.cs b/NewSocketServer/IEnvelope.cs
deleted file mode 100644
index 8911df8..0000000
--- a/NewSocketServer/IEnvelope.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.IO;
-
-namespace SocketServer
-{
- public interface IEnvelope
- {
- Encoding MessageEncoding { get; set; }
-
- string MessageEncodingString { get; set; }
-
- void Serialize(IMessage message, Stream stream);
- IMessage Deserialize(Stream stream);
-
- }
-}
diff --git a/NewSocketServer/IMessage.cs b/NewSocketServer/IMessage.cs
deleted file mode 100644
index 90a89dc..0000000
--- a/NewSocketServer/IMessage.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.IO;
-
-namespace SocketServer
-{
- public interface IMessage
- {
- string MessageID { get; set; }
- void Serialize(Stream stream, Encoding encoding);
- void Deserialize(Stream stream, Encoding encoding);
- void Validate();
- string Name { get; }
- }
-}
diff --git a/NewSocketServer/IMessageHandler.cs b/NewSocketServer/IMessageHandler.cs
deleted file mode 100644
index 1b1e2b5..0000000
--- a/NewSocketServer/IMessageHandler.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SocketServer
-{
- public interface IMessageHandler
- {
- }
-}
diff --git a/NewSocketServer/Message.cs b/NewSocketServer/Message.cs
deleted file mode 100644
index 3a4894d..0000000
--- a/NewSocketServer/Message.cs
+++ /dev/null
@@ -1,335 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.IO;
-
-namespace SocketServer
-{
- public abstract class Message : IMessage
- {
- ///
- /// This maps the headers received in a standard http-style message to the value received.
- ///
- private Dictionary headers = new Dictionary();
-
- ///
- /// This is a single unnamed parameter that is allowed on the command line.
- /// This makes it easy to implement some commands that simply require a flag, i.e. True/False
- ///
- protected string defaultParameter;
- public string DefaultParameter
- {
- get { return defaultParameter; }
- set { defaultParameter = value; }
- }
-
-
- ///
- /// This stores any binary data received in the payload of the message.
- ///
- private byte[] data = new byte[0];
-
- ///
- /// Returns the name of this message. By default returns the name of the class. If the class name ends
- /// with "Message", it is ommitted. i.e. SetConfigurationMessage returns "SetConfiguration".
- ///
- public virtual string Name
- {
- get
- {
- string msgName = GetType().Name;
- if (msgName.EndsWith("Message", StringComparison.CurrentCultureIgnoreCase))
- {
- msgName = msgName.Substring(0, msgName.Length - "Message".Length);
- }
- return msgName;
- }
- }
-
- ///
- /// Returns the header value received in this message.
- ///
- /// The name of the header to query.
- /// The header value requested.
- protected virtual string GetHeaderValue(string headerName)
- {
- string headerUppercase = headerName.ToUpper();
- if (!headers.ContainsKey(headerUppercase))
- throw new ProtocolException("Header " + headerUppercase + " not present.");
-
- return headers[headerUppercase];
- }
-
- ///
- /// Returns the header value received in this message, or the provided default value if the value
- /// has not been set.
- ///
- /// The name of the header to query.
- /// The value to return if the header does not exist.
- /// The header value, or the provided default
- protected virtual T GetHeaderValue(string headerName, T defaultValue) where T : IConvertible
- {
- if (!HeaderExists(headerName))
- return defaultValue;
-
- string headerUppercase = headerName.ToUpper();
- if (!headers.ContainsKey(headerUppercase))
- throw new ProtocolException(string.Format("Header {0} not present.", headerUppercase));
-
- if (typeof(T).IsEnum)
- return (T)Enum.Parse(typeof(T), headers[headerUppercase]);
-
- return (T)Convert.ChangeType(headers[headerUppercase], defaultValue.GetType());
- }
-
- ///
- /// Returns an ordered list of header values that begin with the provided prefix.
- ///
- /// The name of the header list.
- /// An ordered list of strings representing all the value of the requested list.
- protected List GetHeaderList(string prefix)
- {
- string prefixUppercase = prefix.ToUpper();
-
- List keyList = headers.Keys
- .Where(key => key.StartsWith(prefixUppercase + "-"))
- .ToList();
-
- keyList.Sort(String.Compare);
-
- return keyList.Select(t => headers[t]).ToList();
- }
-
- ///
- /// Adds a list of strings to the headers using the given prefix. On the receiving channel,
- /// the list maintains its order if GetHeaderList is used with the same prefix.
- ///
- /// The name of the list to add
- /// The ordered list of strings to add to the headers as a list.
- protected void AddHeaderList(string prefix, ICollection list)
- {
- if (list == null)
- return;
-
- IEnumerator iter = list.GetEnumerator();
- int index = 1;
- while (iter.MoveNext())
- {
- string number = index.ToString();
- number = number.PadLeft((int)Math.Log10(list.Count) + 1, '0');
-
- if (iter.Current == null)
- continue;
-
- AddHeader(string.Format("{0}-{1}", prefix, number), iter.Current.ToString());
- index++;
- }
- }
-
- ///
- /// Adds a single header to the message with the given name.
- ///
- /// The name of the header to add.
- /// The value of the header to add, as a string.
- public virtual void AddHeader(string headerName, T value)
- {
- if (value == null)
- return;
-
- string val = value.ToString();
- if (string.IsNullOrEmpty(val)) return;
-
- string uppercase = headerName.ToUpper();
- if (headers.ContainsKey(uppercase))
- headers.Remove(uppercase);
-
- headers.Add(uppercase, val);
- }
-
- ///
- /// Returns whether a particular header exists in this message.
- ///
- /// The name of the header to query.
- /// A bool indicating that the header exists in the message.
- protected virtual bool HeaderExists(string headerName)
- {
- return headers.ContainsKey(headerName.ToUpper());
- }
-
- ///
- /// Returns any data received in this message.
- ///
- /// The bytes received in the data payload of this message, if any.
- protected byte[] GetData()
- {
- return data;
- }
-
- ///
- /// Sets the binary d to be sent with this message.
- ///
- /// A binary data payload.
- protected void SetData(byte[] d)
- {
- data = d ?? new byte[0];
- }
-
- #region IMessage Members
-
- private string messageID;
- public string MessageID
- {
- get { return messageID; }
- set { messageID = value; }
- }
-
-
- ///
- /// Writes this message out to a stream. A simple message contains the header/value list and any binary data.
- ///
- /// The stream to write to.
- ///
- public virtual void Serialize(Stream stream, Encoding encoding)
- {
- lock (headers)
- {
- MapToHeaders();
- WriteHeaders(stream, encoding);
- WriteData(stream);
- }
- }
-
- ///
- /// Writes the headers of this message out to the stream.
- ///
- ///
- ///
- private void WriteHeaders(Stream stream, Encoding encoding)
- {
- // Add Content-Length: header if there is data present
- if (data.Length > 0)
- headers["CONTENT-LENGTH"] = data.Length.ToString();
-
- if (!string.IsNullOrEmpty(messageID))
- headers["MESSAGE-ID"] = messageID;
-
- StringBuilder headerBuilder = new StringBuilder();
- foreach (KeyValuePair pair in headers)
- {
- headerBuilder.Append(pair.Key);
- headerBuilder.Append(":");
- headerBuilder.Append(pair.Value);
- headerBuilder.Append("\r\n");
- }
-
- // Add final newline to end headers
- headerBuilder.Append("\r\n");
-
- // Package up into encoding and write to stream
- byte[] headerBytes = encoding.GetBytes(headerBuilder.ToString());
- stream.Write(headerBytes, 0, headerBytes.Length);
- }
-
- ///
- /// Writes out any data associated with this message. Empty data is ingored.
- ///
- ///
- private void WriteData(Stream stream)
- {
- // Data payload gets sent out after the header list
- if (data.Length > 0)
- stream.Write(data, 0, data.Length);
- }
-
-
- ///
- /// Reads the message off of the stream.
- ///
- ///
- ///
- public virtual void Deserialize(Stream stream, Encoding encoding)
- {
- lock (headers)
- {
- ReadHeaders(stream, encoding);
- ReadData(stream);
- try { MapFromHeaders(); }
- catch (Exception ex)
- {
- throw new ProtocolException(ex.Message);
- }
- }
- }
-
- ///
- /// Reads the map of header/value pairs into this message dictionary.
- ///
- ///
- ///
- private void ReadHeaders(Stream stream, Encoding encoding)
- {
- headers = ProtocolUtils.GetHeaders(stream, encoding);
- if (headers.ContainsKey("MESSAGE-ID"))
- MessageID = headers["MESSAGE-ID"];
- }
-
- ///
- /// Reads any associated data indicated by the Content-Length header.
- ///
- ///
- private void ReadData(Stream stream)
- {
- if (headers.ContainsKey("CONTENT-LENGTH"))
- {
- try
- {
- int length = int.Parse(headers["CONTENT-LENGTH"]);
- data = new byte[length];
- int bytesRead = 0;
- while (bytesRead < length)
- {
- bytesRead += stream.Read(data, bytesRead, length - bytesRead);
- }
- }
- catch (ArgumentNullException ex)
- {
- throw new ProtocolException(ex.Message);
- }
- catch (OverflowException ex)
- {
- throw new ProtocolException(ex.Message);
- }
- catch (FormatException ex)
- {
- throw new ProtocolException(ex.Message);
- }
- }
- }
-
- ///
- /// Messages can override this method if there are header requirements that want to be
- /// validated before the message is dispatched. If the message does not pass validation,
- /// throw a ProtocolException in this method.
- ///
- /// ProtocolException if the message is invalid.
- public virtual void Validate() { }
-
- #endregion
-
- ///
- /// Override in subclasses to make calls to AddHeader, mapping message fields to headers.
- ///
- public virtual void MapToHeaders()
- {
- }
-
- ///
- /// Override in subclases to make calls to GetHeader, mapping headers into message fields.
- ///
- public virtual void MapFromHeaders()
- {
- }
- }
-
-}
diff --git a/NewSocketServer/MessageDispatcher.cs b/NewSocketServer/MessageDispatcher.cs
deleted file mode 100644
index 92abb01..0000000
--- a/NewSocketServer/MessageDispatcher.cs
+++ /dev/null
@@ -1,302 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using SocketServer.Configuration;
-using log4net;
-using System.Net;
-using System.Reflection;
-
-namespace SocketServer
-{
- public class MessageDispatcher
- {
- private static readonly ILog logger = LogManager.GetLogger(typeof(MessageDispatcher));
-
- #region MessageHandler definition
- private class MessageHandler
- {
- public MessageHandler(MessageHandlerDelegate handler, object target, bool isPrimary, bool needsSourceChannel, bool needsEndpointParameter)
- {
- Target = target;
- Handler = handler;
- IsPrimaryHandler = isPrimary;
- NeedsSourceChannel = needsSourceChannel;
- NeedsSourceEndpoint = needsEndpointParameter;
- }
-
- public MessageHandlerDelegate Handler { get; private set; }
-
- public bool IsPrimaryHandler { get; private set; }
-
- public bool NeedsSourceChannel { get; private set; }
-
- public bool NeedsSourceEndpoint { get; private set; }
-
- public object Target { get; private set; }
-
- public IMessage Execute(IMessage msg, object param)
- {
- if (NeedsSourceChannel)
- return (IMessage)Handler(Target, new[] { msg, param });
- if (NeedsSourceEndpoint)
- return (IMessage)Handler(Target, new[] { msg, param });
- return (IMessage)Handler(Target, new object[] { msg });
- }
-
- public override bool Equals(object obj)
- {
- MessageHandler handler = (MessageHandler)obj;
-
- return Target == handler.Target &&
- IsPrimaryHandler == handler.IsPrimaryHandler &&
- NeedsSourceChannel == handler.NeedsSourceChannel &&
- NeedsSourceEndpoint == handler.NeedsSourceEndpoint;
- }
-
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- }
- #endregion
-
- private readonly Dictionary> messageHandlers = new Dictionary>();
-
- public MessageDispatcher()
- {
- }
-
- public MessageDispatcher(IMessageHandler handler)
- {
- RegisterHandlers(handler);
- }
-
- ///
- /// Gets the number of messages for which handlers have been registered
- ///
- public int HandlerCount
- {
- get
- {
- int count = 0;
- foreach (List list in messageHandlers.Values)
- {
- count += list.Count;
- }
- return count;
- }
- }
-
- public void AddNullHandler(string messageName)
- {
- if (!messageHandlers.ContainsKey(messageName))
- messageHandlers.Add(messageName, new List());
- }
-
- public void RegisterHandlers(IMessageHandler targetObject)
- {
- Type handlerClassType = targetObject.GetType();
- MethodInfo[] methods = handlerClassType.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
- foreach (MethodInfo info in methods)
- {
- // We only care about methods
- if (info.MemberType != MemberTypes.Method)
- continue;
-
- // Check to make sure that the MessageHandlerAttribute is set
- object[] attributes = info.GetCustomAttributes(typeof(MessageHandlerAttribute), true);
- if (attributes != null && attributes.Length >= 1)
- {
- // We need to get the Message Type through further reflection
- ParameterInfo[] methodParams = info.GetParameters();
- if (methodParams == null || methodParams.Length == 0)
- continue; // no parameters, no message handler... move on...
-
- // We will simply assume that the first parameter is the message
- // SHOULD WE THROW AN EXCEPTION IF PARAMETER COUNT IS 0 OR MORE THAN 1 ???
- Type messageType = methodParams[0].ParameterType;
- string messageName = ((IMessage)Activator.CreateInstance(messageType)).Name;
- // Add the delegate to the list if it doesn't exist
- if (!messageHandlers.ContainsKey(messageName))
- {
- messageHandlers.Add(messageName, new List());
- }
-
- // We allow a second parameter to the handler if it is a Channel, so that the method can
- // know the source of the message.
- bool needsChannelParameter = false;
- bool needsEndpointParameter = false;
- if (methodParams.Length == 2)
- {
- if (methodParams[1].ParameterType == typeof(ClientConnection))
- {
- needsChannelParameter = true;
- }
- else if (methodParams[1].ParameterType == typeof(IPEndPoint))
- {
- needsEndpointParameter = true;
- }
- }
-
- List methodList = messageHandlers[messageName];
-
- MessageHandlerAttribute attribute = (MessageHandlerAttribute)attributes[0];
- MessageHandler messageHandler =
- new MessageHandler(FastMethodInvoker.GetMethodInvoker(targetObject, info),
- targetObject,
- attribute.PrimaryHandler,
- needsChannelParameter, needsEndpointParameter);
-
- // Make sure there is only 1 primary handler per message
- // We'll make sure the primary handler is the first in the list, for easy checking
- if (messageHandler.IsPrimaryHandler && methodList.Count > 0 && methodList[0].IsPrimaryHandler)
- throw new InvalidOperationException("Cannot have multiple primary handlers for message: " + messageName);
-
- // Add the handler to the list. Front of list for primary handlers, back of list for non
- if (messageHandler.IsPrimaryHandler)
- methodList.Insert(0, messageHandler);
- else
- methodList.Add(messageHandler);
-
- // Register message class with MessageFactory
- MessageFactory.Register(messageType);
-
- }
- }
- }
-
- public void UnregisterHandlers(IMessageHandler handler)
- {
- Type handlerClassType = handler.GetType();
- MethodInfo[] methods = handlerClassType.GetMethods();
- foreach (MethodInfo info in methods)
- {
- // We only care about methods
- if (info.MemberType != MemberTypes.Method)
- continue;
-
- // Check to make sure that the MessageHandlerAttribute is set
- object[] attributes = info.GetCustomAttributes(typeof(MessageHandlerAttribute), true);
- if (attributes != null && attributes.Length >= 1)
- {
- // We need to get the Message Type through further reflection
- ParameterInfo[] methodParams = info.GetParameters();
- if (methodParams == null || methodParams.Length == 0)
- continue; // no parameters, no message handler... move on...
-
- // We will simply assume that the first parameter is the message
- // SHOULD WE THROW AN EXCEPTION IF PARAMETER COUNT IS 0 OR MORE THAN 1 ???
- Type messageType = methodParams[0].ParameterType;
- string messageName = ((IMessage)Activator.CreateInstance(messageType)).Name;
-
- // Remove the handler from the list if it exists
- if (!messageHandlers.ContainsKey(messageName))
- continue;
-
- bool needsChannelParameter = false;
- bool needsEndpointParameter = false;
- if (methodParams.Length == 2)
- {
- if (methodParams[1].ParameterType == typeof(ClientConnection))
- {
- needsChannelParameter = true;
- }
- else if (methodParams[1].ParameterType == typeof(IPEndPoint))
- {
- needsEndpointParameter = true;
- }
- }
-
- MessageHandlerAttribute attribute = (MessageHandlerAttribute)attributes[0];
- MessageHandler messageHandler = new MessageHandler(
- FastMethodInvoker.GetMethodInvoker(handler, info),
- handler,
- attribute.PrimaryHandler,
- needsChannelParameter, needsEndpointParameter);
-
- messageHandlers[messageName].Remove(messageHandler);
-
- if (messageHandlers[messageName].Count == 0)
- messageHandlers.Remove(messageName);
- }
- }
- }
-
- //private static Guid currentConnectionID;
- //static public Guid CurrentConnectionID
- //{
- // get { return currentConnectionID; }
- //}
-
- private readonly object syncRoot = new object();
- public virtual IMessage DispatchMessage(IMessage msg, ClientConnection channel)
- {
- return Dispatch(msg, channel);
- }
-
- public IMessage DispatchMessage(IMessage msg, IPEndPoint endpoint)
- {
- return Dispatch(msg, endpoint);
- }
-
- public IMessage DispatchMessage(IMessage msg)
- {
- return Dispatch(msg, null);
- }
-
- protected IMessage Dispatch(IMessage msg, object param)
- {
- lock (syncRoot)
- {
- //object[] parameters = new object[] { msg };
- if (!messageHandlers.ContainsKey(msg.Name))
- throw new ProtocolException(msg.Name + " missing");
-
- List handlerList = messageHandlers[msg.Name];
-
- IMessage response = null;
- foreach (MessageHandler handler in handlerList)
- {
- if (handler.IsPrimaryHandler)
- {
- try
- {
- response = handler.Execute(msg, param);
- }
- catch (ProtocolException ex)
- {
- // Convert older message handlers that throw ProtocolException into MessageProcessingExceptions
- throw new ProtocolException(ex.Message);
- }
- catch (Exception ex)
- {
- // Log and convert to MessageProcessingException
- logger.Error("Error processing message " + msg.Name, ex);
- throw new ProtocolException(ex.Message);
- }
- }
- else
- {
- try
- {
- handler.Execute(msg, param);
- }
- catch (Exception)
- {
- logger.WarnFormat("Unhandled exception in non-primary message handler for message: {0} (ID:{1}).", msg.Name, msg.MessageID);
- }
- }
- }
- return response;
- }
- }
-
- public bool HasDispatcher(IMessage msg)
- {
- return messageHandlers.ContainsKey(msg.Name);
- }
-
- }
-
-}
diff --git a/NewSocketServer/MessageEventArgs.cs b/NewSocketServer/MessageEventArgs.cs
deleted file mode 100644
index 9af227f..0000000
--- a/NewSocketServer/MessageEventArgs.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SocketServer
-{
- public class MessageEventArgs : EventArgs
- {
- public MessageEventArgs(ClientConnection source, IMessage message, byte[] raw)
- {
- ClientConnection = source;
- Message = message;
- RawMessage = raw;
- IsError = false;
- ErrorMessage = string.Empty;
- }
-
- public ClientConnection ClientConnection { get; protected set; }
- public IMessage Message { get; protected set; }
- public byte[] RawMessage { get; protected set; }
- public bool IsError { get; set; }
- public string ErrorMessage { get; set; }
- }
-}
diff --git a/NewSocketServer/MessageFactory.cs b/NewSocketServer/MessageFactory.cs
deleted file mode 100644
index 6c81f5c..0000000
--- a/NewSocketServer/MessageFactory.cs
+++ /dev/null
@@ -1,92 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using log4net;
-using log4net.Core;
-
-namespace SocketServer
-{
- public class MessageFactory
- {
- private static readonly ILog logger = LogManager.GetLogger(typeof(MessageFactory));
-
- private static readonly Dictionary messageMap = new Dictionary();
-
- ///
- /// Creates a new instance of a class that implements IMessage
- ///
- /// The registered name of the message to be created
- /// An IMessage object, or null if message does not exist
- public static IMessage Create(string messageName)
- {
- lock (messageMap)
- {
- string nameUpper = messageName.ToUpper();
- if (messageMap.ContainsKey(nameUpper))
- return Activator.CreateInstance(messageMap[nameUpper]) as IMessage;
-
- return null;
- }
- }
-
- ///
- /// Registers a new IMessage-derived class as available to be created by the factory
- ///
- ///
- /// The IMessage-derived type to be registered
- public static void Register(string messageName, Type t)
- {
- if (t == null) return;
- lock (messageMap)
- {
- if (messageMap.ContainsKey(messageName.ToUpper())) return;
- messageMap.Add(messageName.ToUpper(), t);
- logger.Logger.Log(null, Level.Finer, "Registered Message: " + messageName, null); // TODO: change to logger.Log
- }
- }
-
- public static void Register(Type t)
- {
- try
- {
- string messageName = ((IMessage)Activator.CreateInstance(t)).Name;
- Register(messageName, t);
- }
- catch (Exception)
- {
- throw new InvalidOperationException("Type " + t + " does not implement IMessage");
- }
- }
-
- public static void Remove(string messageName)
- {
- lock (messageMap)
- {
- if (messageMap.ContainsKey(messageName.ToUpper()))
- messageMap.Remove(messageName.ToUpper());
- }
- }
-
- public static void Remove(Type t)
- {
- try
- {
- string messageName = ((IMessage)Activator.CreateInstance(t)).Name.ToUpper();
- Remove(messageName);
- }
- catch (Exception)
- {
- throw new InvalidOperationException("Type " + t + " does not implement IMessage");
- }
- }
-
- public static void RemoveAll()
- {
- lock (messageMap)
- {
- messageMap.Clear();
- }
- }
- }
-}
diff --git a/NewSocketServer/MessageHandlerAttribute.cs b/NewSocketServer/MessageHandlerAttribute.cs
deleted file mode 100644
index a209125..0000000
--- a/NewSocketServer/MessageHandlerAttribute.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SocketServer
-{
- [AttributeUsage(AttributeTargets.Method)]
- public sealed class MessageHandlerAttribute : Attribute
- {
-
- // This value indicates whether the method using this attribute is the primary
- // message handler. Primary message handlers are allowed to respond to messages.
- // Non-primary handlers are only allowed to read messages.
- private bool isPrimary = true;
- public bool PrimaryHandler
- {
- get { return isPrimary; }
- set { isPrimary = value; }
- }
- }
-}
diff --git a/NewSocketServer/NewSocketServer.csproj b/NewSocketServer/NewSocketServer.csproj
deleted file mode 100644
index e7deba9..0000000
--- a/NewSocketServer/NewSocketServer.csproj
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- Debug
- x86
- 8.0.30703
- 2.0
- {8B4A5199-FDC9-49F6-914B-EE8806E18D27}
- Exe
- Properties
- SocketServer
- NewSocketServer
- v4.0
-
-
- 512
-
-
- x86
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- x86
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
- ..\References\log4net.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {4138075A-49CD-4A46-92CB-DFF64A0BB0B6}
- SocketServer.Crypto
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/NewSocketServer/PlainEnvelope.cs b/NewSocketServer/PlainEnvelope.cs
deleted file mode 100644
index 98d7767..0000000
--- a/NewSocketServer/PlainEnvelope.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.IO;
-
-namespace SocketServer
-{
- public class PlainEnvelope : Envelope
- {
- public override void Serialize(IMessage message, Stream stream)
- {
- Message msg = message as Message;
- StringBuilder str = new StringBuilder();
- str.Append(msg.Name);
- if (!string.IsNullOrEmpty(msg.DefaultParameter))
- str.Append(" " + msg.DefaultParameter);
-
- str.Append("\r\n");
- byte[] nameBytes = MessageEncoding.GetBytes(str.ToString());
- stream.Write(nameBytes, 0, nameBytes.Length);
- message.Serialize(stream, MessageEncoding);
- stream.Flush();
- }
-
- public override IMessage Deserialize(Stream stream)
- {
- // The command should be on its own line
- string commandLine = ProtocolUtils.ReadLine(stream, MessageEncoding);
- while (commandLine.Length == 0)
- commandLine = ProtocolUtils.ReadLine(stream, MessageEncoding);
-
- string[] commandTokens = commandLine.Split(" ".ToCharArray());
- IMessage message = MessageFactory.Create(commandTokens[0]);
-
- if (message != null)
- {
- if (commandTokens.Length >= 2)
- {
- Message msg = message as Message;
- msg.DefaultParameter = commandTokens[1];
- }
- message.Deserialize(stream, MessageEncoding);
- }
- else
- {
- // NullMessage nullMsg = new NullMessage();
- // nullMsg.Deserialize(stream, MessageEncoding);
- throw new ProtocolException("Unknown message: " + commandLine);
- }
-
- return message;
- }
- }
-}
diff --git a/NewSocketServer/Program.cs b/NewSocketServer/Program.cs
deleted file mode 100644
index d35a276..0000000
--- a/NewSocketServer/Program.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SocketServer
-{
- class Program
- {
- static void Main(string[] args)
- {
- }
- }
-}
diff --git a/NewSocketServer/Properties/AssemblyInfo.cs b/NewSocketServer/Properties/AssemblyInfo.cs
deleted file mode 100644
index e673ce6..0000000
--- a/NewSocketServer/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("NewSocketServer")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("NewSocketServer")]
-[assembly: AssemblyCopyright("Copyright © 2012")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("0cbf7b9c-28f7-45db-a965-07513642b3ce")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// 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.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/NewSocketServer/ProtocolException.cs b/NewSocketServer/ProtocolException.cs
deleted file mode 100644
index 24bd94c..0000000
--- a/NewSocketServer/ProtocolException.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SocketServer
-{
- public class ProtocolException : Exception
- {
- public ProtocolException(string message)
- : base(message)
- {
- }
- }
-}
diff --git a/NewSocketServer/ProtocolUtils.cs b/NewSocketServer/ProtocolUtils.cs
deleted file mode 100644
index 631bf33..0000000
--- a/NewSocketServer/ProtocolUtils.cs
+++ /dev/null
@@ -1,118 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.IO;
-
-namespace SocketServer
-{
- public static class ProtocolUtils
- {
- private static readonly Regex headerPattern = new Regex("(.+?):(.*)");
-
- // Retreives all header lines up to the \r\n\r\n, and returns an
- // array container each header line, without the \r\n.
- public static Dictionary GetHeaders(Stream stream, Encoding encoding)
- {
- string[] headerLines = GetHeaderLines(stream, encoding);
- return ParseHeaders(headerLines);
- }
-
- public static String[] GetHeaderLines(Stream stream, Encoding encoding)
- {
- List headers = new List();
- while (true)
- {
- String header;
- try
- {
- header = ReadLine(stream, encoding);
- }
- catch (Exception)
- {
- break;
- }
-
- if (header.Length == 0)
- {
- // Empty Line. End of headers
- break;
- }
- // Else we add the header to our list.
- headers.Add(header);
- }
- return headers.ToArray();
- }
-
- // Parses the array of header strings, and returns the values in a
- // dictionary for quick hashtable lookups.
- public static Dictionary ParseHeaders(string[] headers, int startIndex, int endIndex)
- {
- Dictionary headerDict = new Dictionary();
-
- for (int i = startIndex; i < endIndex; i++)
- {
- Match match = headerPattern.Match(headers[i]);
- if (match.Success && (match.Groups.Count == 3))
- {
- if (headerDict.ContainsKey(match.Groups[1].Value.ToUpper()))
- {
- headerDict.Remove(match.Groups[1].Value.ToUpper());
- }
- headerDict.Add(match.Groups[1].Value.ToUpper(), match.Groups[2].Value);
- }
- }
- return headerDict;
- }
-
- public static Dictionary ParseHeaders(string[] headers)
- {
- return ParseHeaders(headers, 0, headers.Length);
- }
-
- ///
- /// Reads a single line from the Stream
- ///
- /// The stream to read from
- /// The encoding to interpret the text
- /// The line read, without the newline character(s)
- public static string ReadLine(Stream stream, Encoding encoding)
- {
- byte[] buffer = new byte[8]; // max character bytes
- int bufferPos = 0;
-
- StringBuilder line = new StringBuilder(100);
- int c;
- bool lineRead = false;
- Decoder decoder = encoding.GetDecoder();
- while ((c = stream.ReadByte()) != -1)
- {
- if (c == '\n')
- {
- lineRead = true;
-
- // strip any '\r' immediately preceding
- if ((line.Length > 0) && (line[line.Length - 1] == '\r'))
- {
- line.Remove(line.Length - 1, 1);
- }
-
- // and break
- break;
- }
- if (bufferPos >= buffer.Length)
- throw new InvalidDataException("Invalid character read from stream.");
- buffer[bufferPos++] = (byte)c;
- if (decoder.GetCharCount(buffer, 0, bufferPos) != 1) continue;
- line.Append(encoding.GetChars(buffer, 0, bufferPos));
- bufferPos = 0;
- }
- if (c == -1 && lineRead == false)
- throw new IOException("Stream shut down while reading line.");
-
- return line.ToString();
- }
- }
-
-}
diff --git a/NewSocketServer/SocketListener.cs b/NewSocketServer/SocketListener.cs
deleted file mode 100644
index 918a062..0000000
--- a/NewSocketServer/SocketListener.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Net;
-using System.Net.Sockets;
-using System.Threading;
-
-namespace SocketServer
-{
- public class SocketListener : INetworkListener
- {
- #region Fields
- readonly IPAddress address = IPAddress.Any;
- private TcpListener listener;
-
- private volatile bool listening;
-
- private TcpClient newClient;
- private readonly AutoResetEvent newConnection = new AutoResetEvent(false);
- private readonly AutoResetEvent shutdown = new AutoResetEvent(false);
- #endregion
-
- #region Constructors
- public SocketListener()
- {
- }
-
- public SocketListener(IPAddress address)
- {
- this.address = address;
- }
- #endregion
-
- public void Initialize(int port)
- {
- listener = new TcpListener(address, port);
- }
- public void Start()
- {
- listener.Start();
- listening = true;
- }
-
- public void Stop()
- {
- listening = false;
- listener.Stop();
- shutdown.Set();
- }
- public INetworkTransport AcceptClient()
- {
- newClient = null;
- // perform all accept calls asynchronously
- listener.BeginAcceptTcpClient(WaitForConnection, null);
-
- // block until a connection is accepted, OR the shutdown event is given
- int index = WaitHandle.WaitAny(new WaitHandle[] { shutdown, newConnection });
- if (index == 1 && newClient != null)
- {
- return new SocketTransport(newClient);
- }
- throw new SocketException();
- }
-
- private void WaitForConnection(IAsyncResult ar)
- {
- try
- {
- newClient = listener.EndAcceptTcpClient(ar);
- }
- catch(ObjectDisposedException)
- {
- if (!listening) return;
-
- throw;
- }
-
- newConnection.Set();
- }
- }
-}
diff --git a/NewSocketServer/SocketTransport.cs b/NewSocketServer/SocketTransport.cs
deleted file mode 100644
index 665c0df..0000000
--- a/NewSocketServer/SocketTransport.cs
+++ /dev/null
@@ -1,100 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Net.Sockets;
-using log4net;
-using System.IO;
-using System.Net;
-
-namespace SocketServer
-{
- public class SocketTransport : INetworkTransport
- {
- TcpClient client;
- private static readonly ILog logger = LogManager.GetLogger(typeof(SocketTransport));
-
- public SocketTransport()
- {
- }
-
- internal SocketTransport(TcpClient client)
- {
- this.client = client;
- }
-
- public bool HasConnection { get { return false; } }
- public string Address { get; set; }
- public int Port { get; set; }
-
- public void Connect()
- {
- client = new TcpClient(Address, Port)
- {
- SendTimeout = sendTimeout,
- ReceiveTimeout = receiveTimeout
- };
- }
-
- public void Disconnect(bool force)
- {
- if (force) client.Close();
- else if (client.Connected) client.Client.Shutdown(SocketShutdown.Send);
- }
-
- public bool IsConnected
- {
- get
- {
- return client != null && client.Connected;
- }
- }
-
- public bool NoDelay
- {
- get
- {
- return client.NoDelay;
- }
- set
- {
- client.NoDelay = value;
- }
- }
-
- public Stream Stream
- {
- get { return client.GetStream(); }
- }
-
- public EndPoint RemoteEndPoint
- {
- get
- {
- return client.Client.RemoteEndPoint;
- }
- }
-
- private int sendTimeout;
- public int SendTimeout
- {
- get { return sendTimeout; }
- set
- {
- sendTimeout = value;
- if (client != null && client.Client != null && client.Connected) client.SendTimeout = value;
- }
- }
-
- private int receiveTimeout;
- public int ReceiveTimeout
- {
- get { return receiveTimeout; }
- set
- {
- receiveTimeout = value;
- if (client != null && client.Client != null && client.Connected) client.ReceiveTimeout = value;
- }
- }
- }
-}
diff --git a/NewSocketServer/StreamWrapper.cs b/NewSocketServer/StreamWrapper.cs
deleted file mode 100644
index b2e9178..0000000
--- a/NewSocketServer/StreamWrapper.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.IO;
-
-namespace SocketServer
-{
- public class StreamWrapper : Stream
- {
- #region Fields
-
- private readonly MemoryStream inStream;
- private readonly MemoryStream outStream;
-
- private bool disposed;
-
- #endregion Fields
-
- #region Constructors
-
- public StreamWrapper(Stream stream)
- {
- Stream = stream;
- inStream = new MemoryStream();
- outStream = new MemoryStream();
- }
-
- #endregion Constructors
-
- #region Properties
-
- public override bool CanRead
- {
- get { return Stream.CanRead; }
- }
-
- public override bool CanSeek
- {
- get { return Stream.CanSeek; }
- }
-
- public override bool CanWrite
- {
- get { return Stream.CanWrite; }
- }
-
- public override long Length
- {
- get { return Stream.Length; }
- }
-
- public override long Position
- {
- get
- {
- return Stream.Position;
- }
- set
- {
- Stream.Position = value;
- }
- }
-
- public Stream Stream
- {
- get;
- private set;
- }
-
- #endregion Properties
-
- #region Methods
-
- public override void Flush()
- {
- Stream.Flush();
- }
-
- public byte[] GetInputBytes()
- {
- return inStream.ToArray();
- }
-
- public byte[] GetOutputBytes()
- {
- return outStream.ToArray();
- }
-
- public override int Read(byte[] buffer, int offset, int count)
- {
- byte[] data = new byte[count];
- // Read into our temp data structure
- int read = Stream.Read(data, 0, count);
- // Make sure we write this data into the copy buffer
- inStream.Write(data, 0, read);
- // now copy this data into the output buffer
- data.CopyTo(buffer, offset);
- return read;
- }
-
- public override long Seek(long offset, SeekOrigin origin)
- {
- return Stream.Seek(offset, origin);
- }
-
- public override void SetLength(long value)
- {
- Stream.SetLength(value);
- }
-
- public override void Write(byte[] buffer, int offset, int count)
- {
- Stream.Write(buffer, offset, count);
- outStream.Write(buffer, offset, count);
- }
-
- protected override void Dispose(bool disposing)
- {
- base.Dispose(disposing);
- if (disposing && !disposed)
- {
- inStream.Dispose();
- outStream.Dispose();
- disposed = true;
- }
- }
-
- #endregion Methods
- }
-
-}
diff --git a/NewSocketServer/app.config b/NewSocketServer/app.config
deleted file mode 100644
index e365603..0000000
--- a/NewSocketServer/app.config
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/SocketService.Client/ClientEngine.cs b/SocketServer.Client/ClientEngine.cs
similarity index 100%
rename from SocketService.Client/ClientEngine.cs
rename to SocketServer.Client/ClientEngine.cs
diff --git a/SocketService.Client/Composition/IPluginMetaData.cs b/SocketServer.Client/Composition/IPluginMetaData.cs
similarity index 100%
rename from SocketService.Client/Composition/IPluginMetaData.cs
rename to SocketServer.Client/Composition/IPluginMetaData.cs
diff --git a/SocketService.Client/Composition/PluginMetaDataAttribute.cs b/SocketServer.Client/Composition/PluginMetaDataAttribute.cs
similarity index 100%
rename from SocketService.Client/Composition/PluginMetaDataAttribute.cs
rename to SocketServer.Client/Composition/PluginMetaDataAttribute.cs
diff --git a/SocketService.Client/Crypto/BigInteger.cs b/SocketServer.Client/Crypto/BigInteger.cs
similarity index 100%
rename from SocketService.Client/Crypto/BigInteger.cs
rename to SocketServer.Client/Crypto/BigInteger.cs
diff --git a/SocketService.Client/Crypto/CentralAuthority.cs b/SocketServer.Client/Crypto/CentralAuthority.cs
similarity index 100%
rename from SocketService.Client/Crypto/CentralAuthority.cs
rename to SocketServer.Client/Crypto/CentralAuthority.cs
diff --git a/SocketService.Client/Crypto/Crc32.cs b/SocketServer.Client/Crypto/Crc32.cs
similarity index 100%
rename from SocketService.Client/Crypto/Crc32.cs
rename to SocketServer.Client/Crypto/Crc32.cs
diff --git a/SocketService.Client/Crypto/DiffieHellmanKey.cs b/SocketServer.Client/Crypto/DiffieHellmanKey.cs
similarity index 100%
rename from SocketService.Client/Crypto/DiffieHellmanKey.cs
rename to SocketServer.Client/Crypto/DiffieHellmanKey.cs
diff --git a/SocketService.Client/Crypto/DiffieHellmanProvider.cs b/SocketServer.Client/Crypto/DiffieHellmanProvider.cs
similarity index 100%
rename from SocketService.Client/Crypto/DiffieHellmanProvider.cs
rename to SocketServer.Client/Crypto/DiffieHellmanProvider.cs
diff --git a/SocketService.Client/Crypto/StringExtentions.cs b/SocketServer.Client/Crypto/StringExtentions.cs
similarity index 100%
rename from SocketService.Client/Crypto/StringExtentions.cs
rename to SocketServer.Client/Crypto/StringExtentions.cs
diff --git a/SocketService.Client/Crypto/StrongNumberProvider.cs b/SocketServer.Client/Crypto/StrongNumberProvider.cs
similarity index 100%
rename from SocketService.Client/Crypto/StrongNumberProvider.cs
rename to SocketServer.Client/Crypto/StrongNumberProvider.cs
diff --git a/SocketService.Client/Crypto/Wrapper.cs b/SocketServer.Client/Crypto/Wrapper.cs
similarity index 100%
rename from SocketService.Client/Crypto/Wrapper.cs
rename to SocketServer.Client/Crypto/Wrapper.cs
diff --git a/SocketService.Client/Data/ClientRoom.cs b/SocketServer.Client/Data/ClientRoom.cs
similarity index 100%
rename from SocketService.Client/Data/ClientRoom.cs
rename to SocketServer.Client/Data/ClientRoom.cs
diff --git a/SocketService.Client/Data/ClientUser.cs b/SocketServer.Client/Data/ClientUser.cs
similarity index 100%
rename from SocketService.Client/Data/ClientUser.cs
rename to SocketServer.Client/Data/ClientUser.cs
diff --git a/SocketService.Client/Data/Domain/Room.cs b/SocketServer.Client/Data/Domain/Room.cs
similarity index 100%
rename from SocketService.Client/Data/Domain/Room.cs
rename to SocketServer.Client/Data/Domain/Room.cs
diff --git a/SocketService.Client/Data/Domain/User.cs b/SocketServer.Client/Data/Domain/User.cs
similarity index 100%
rename from SocketService.Client/Data/Domain/User.cs
rename to SocketServer.Client/Data/Domain/User.cs
diff --git a/SocketService.Client/Data/RoomRepository.cs b/SocketServer.Client/Data/RoomRepository.cs
similarity index 100%
rename from SocketService.Client/Data/RoomRepository.cs
rename to SocketServer.Client/Data/RoomRepository.cs
diff --git a/SocketService.Client/Data/UserRepository.cs b/SocketServer.Client/Data/UserRepository.cs
similarity index 100%
rename from SocketService.Client/Data/UserRepository.cs
rename to SocketServer.Client/Data/UserRepository.cs
diff --git a/SocketService.Client/Event/IEvent.cs b/SocketServer.Client/Event/IEvent.cs
similarity index 100%
rename from SocketService.Client/Event/IEvent.cs
rename to SocketServer.Client/Event/IEvent.cs
diff --git a/SocketService.Client/Event/JoinRoomEvent.cs b/SocketServer.Client/Event/JoinRoomEvent.cs
similarity index 100%
rename from SocketService.Client/Event/JoinRoomEvent.cs
rename to SocketServer.Client/Event/JoinRoomEvent.cs
diff --git a/SocketService.Client/Event/LeaveRoomEvent.cs b/SocketServer.Client/Event/LeaveRoomEvent.cs
similarity index 100%
rename from SocketService.Client/Event/LeaveRoomEvent.cs
rename to SocketServer.Client/Event/LeaveRoomEvent.cs
diff --git a/SocketService.Client/Event/PublicMessageEvent.cs b/SocketServer.Client/Event/PublicMessageEvent.cs
similarity index 100%
rename from SocketService.Client/Event/PublicMessageEvent.cs
rename to SocketServer.Client/Event/PublicMessageEvent.cs
diff --git a/SocketService.Client/Event/RoomUserUpdateEvent.cs b/SocketServer.Client/Event/RoomUserUpdateEvent.cs
similarity index 100%
rename from SocketService.Client/Event/RoomUserUpdateEvent.cs
rename to SocketServer.Client/Event/RoomUserUpdateEvent.cs
diff --git a/SocketService.Client/Event/RoomVariableUpdateEvent.cs b/SocketServer.Client/Event/RoomVariableUpdateEvent.cs
similarity index 100%
rename from SocketService.Client/Event/RoomVariableUpdateEvent.cs
rename to SocketServer.Client/Event/RoomVariableUpdateEvent.cs
diff --git a/SocketService.Client/Events/CommunicationErrorArgs.cs b/SocketServer.Client/Events/CommunicationErrorArgs.cs
similarity index 100%
rename from SocketService.Client/Events/CommunicationErrorArgs.cs
rename to SocketServer.Client/Events/CommunicationErrorArgs.cs
diff --git a/SocketService.Client/Events/ConnectionEventArgs.cs b/SocketServer.Client/Events/ConnectionEventArgs.cs
similarity index 100%
rename from SocketService.Client/Events/ConnectionEventArgs.cs
rename to SocketServer.Client/Events/ConnectionEventArgs.cs
diff --git a/SocketService.Client/Events/JoinRoomEvent.cs b/SocketServer.Client/Events/JoinRoomEvent.cs
similarity index 100%
rename from SocketService.Client/Events/JoinRoomEvent.cs
rename to SocketServer.Client/Events/JoinRoomEvent.cs
diff --git a/SocketService.Client/Events/JoinRoomEventArgs.cs b/SocketServer.Client/Events/JoinRoomEventArgs.cs
similarity index 100%
rename from SocketService.Client/Events/JoinRoomEventArgs.cs
rename to SocketServer.Client/Events/JoinRoomEventArgs.cs
diff --git a/SocketService.Client/Events/LeaveRoomEventArgs.cs b/SocketServer.Client/Events/LeaveRoomEventArgs.cs
similarity index 100%
rename from SocketService.Client/Events/LeaveRoomEventArgs.cs
rename to SocketServer.Client/Events/LeaveRoomEventArgs.cs
diff --git a/SocketService.Client/Events/LoginResponseEventArgs.cs b/SocketServer.Client/Events/LoginResponseEventArgs.cs
similarity index 100%
rename from SocketService.Client/Events/LoginResponseEventArgs.cs
rename to SocketServer.Client/Events/LoginResponseEventArgs.cs
diff --git a/SocketService.Client/Events/RoomUserUpdateEventArgs.cs b/SocketServer.Client/Events/RoomUserUpdateEventArgs.cs
similarity index 100%
rename from SocketService.Client/Events/RoomUserUpdateEventArgs.cs
rename to SocketServer.Client/Events/RoomUserUpdateEventArgs.cs
diff --git a/SocketService.Client/Events/RoomVariableUpdateArgs.cs b/SocketServer.Client/Events/RoomVariableUpdateArgs.cs
similarity index 100%
rename from SocketService.Client/Events/RoomVariableUpdateArgs.cs
rename to SocketServer.Client/Events/RoomVariableUpdateArgs.cs
diff --git a/SocketService.Client/Events/ServerEventEventArgs.cs b/SocketServer.Client/Events/ServerEventEventArgs.cs
similarity index 100%
rename from SocketService.Client/Events/ServerEventEventArgs.cs
rename to SocketServer.Client/Events/ServerEventEventArgs.cs
diff --git a/SocketService.Client/Events/ServerMessageReceivedArgs.cs b/SocketServer.Client/Events/ServerMessageReceivedArgs.cs
similarity index 100%
rename from SocketService.Client/Events/ServerMessageReceivedArgs.cs
rename to SocketServer.Client/Events/ServerMessageReceivedArgs.cs
diff --git a/SocketService.Client/Events/ServerResponseEventArgs.cs b/SocketServer.Client/Events/ServerResponseEventArgs.cs
similarity index 100%
rename from SocketService.Client/Events/ServerResponseEventArgs.cs
rename to SocketServer.Client/Events/ServerResponseEventArgs.cs
diff --git a/SocketService.Client/Manager/ManagerHelper.cs b/SocketServer.Client/Manager/ManagerHelper.cs
similarity index 100%
rename from SocketService.Client/Manager/ManagerHelper.cs
rename to SocketServer.Client/Manager/ManagerHelper.cs
diff --git a/SocketService.Client/Manager/RoomManager.cs b/SocketServer.Client/Manager/RoomManager.cs
similarity index 100%
rename from SocketService.Client/Manager/RoomManager.cs
rename to SocketServer.Client/Manager/RoomManager.cs
diff --git a/SocketService.Client/Manager/UserManager.cs b/SocketServer.Client/Manager/UserManager.cs
similarity index 100%
rename from SocketService.Client/Manager/UserManager.cs
rename to SocketServer.Client/Manager/UserManager.cs
diff --git a/SocketService.Client/Plugin/IPlugin.cs b/SocketServer.Client/Plugin/IPlugin.cs
similarity index 100%
rename from SocketService.Client/Plugin/IPlugin.cs
rename to SocketServer.Client/Plugin/IPlugin.cs
diff --git a/SocketService.Client/Plugin/PluginBase.cs b/SocketServer.Client/Plugin/PluginBase.cs
similarity index 100%
rename from SocketService.Client/Plugin/PluginBase.cs
rename to SocketServer.Client/Plugin/PluginBase.cs
diff --git a/SocketService.Client/Plugin/UserPublicMessageContext.cs b/SocketServer.Client/Plugin/UserPublicMessageContext.cs
similarity index 100%
rename from SocketService.Client/Plugin/UserPublicMessageContext.cs
rename to SocketServer.Client/Plugin/UserPublicMessageContext.cs
diff --git a/SocketService.Client/Properties/AssemblyInfo.cs b/SocketServer.Client/Properties/AssemblyInfo.cs
similarity index 100%
rename from SocketService.Client/Properties/AssemblyInfo.cs
rename to SocketServer.Client/Properties/AssemblyInfo.cs
diff --git a/SocketService.Client/Request/ClientRequestWrapper.cs b/SocketServer.Client/Request/ClientRequestWrapper.cs
similarity index 100%
rename from SocketService.Client/Request/ClientRequestWrapper.cs
rename to SocketServer.Client/Request/ClientRequestWrapper.cs
diff --git a/SocketService.Client/Request/CreateRoomRequest.cs b/SocketServer.Client/Request/CreateRoomRequest.cs
similarity index 100%
rename from SocketService.Client/Request/CreateRoomRequest.cs
rename to SocketServer.Client/Request/CreateRoomRequest.cs
diff --git a/SocketService.Client/Request/CreateRoomVariableRequest.cs b/SocketServer.Client/Request/CreateRoomVariableRequest.cs
similarity index 100%
rename from SocketService.Client/Request/CreateRoomVariableRequest.cs
rename to SocketServer.Client/Request/CreateRoomVariableRequest.cs
diff --git a/SocketService.Client/Request/DeleteRoomVariableRequest.cs b/SocketServer.Client/Request/DeleteRoomVariableRequest.cs
similarity index 100%
rename from SocketService.Client/Request/DeleteRoomVariableRequest.cs
rename to SocketServer.Client/Request/DeleteRoomVariableRequest.cs
diff --git a/SocketService.Client/Request/GetCentralAuthorityRequest.cs b/SocketServer.Client/Request/GetCentralAuthorityRequest.cs
similarity index 100%
rename from SocketService.Client/Request/GetCentralAuthorityRequest.cs
rename to SocketServer.Client/Request/GetCentralAuthorityRequest.cs
diff --git a/SocketService.Client/Request/GetRoomVariableRequest.cs b/SocketServer.Client/Request/GetRoomVariableRequest.cs
similarity index 100%
rename from SocketService.Client/Request/GetRoomVariableRequest.cs
rename to SocketServer.Client/Request/GetRoomVariableRequest.cs
diff --git a/SocketService.Client/Request/LoginRequest.cs b/SocketServer.Client/Request/LoginRequest.cs
similarity index 100%
rename from SocketService.Client/Request/LoginRequest.cs
rename to SocketServer.Client/Request/LoginRequest.cs
diff --git a/SocketService.Client/Request/NegotiateKeysRequest.cs b/SocketServer.Client/Request/NegotiateKeysRequest.cs
similarity index 100%
rename from SocketService.Client/Request/NegotiateKeysRequest.cs
rename to SocketServer.Client/Request/NegotiateKeysRequest.cs
diff --git a/SocketService.Client/Request/PublicMessageRequest.cs b/SocketServer.Client/Request/PublicMessageRequest.cs
similarity index 100%
rename from SocketService.Client/Request/PublicMessageRequest.cs
rename to SocketServer.Client/Request/PublicMessageRequest.cs
diff --git a/SocketService.Client/Request/UpdateRoomVariableRequest.cs b/SocketServer.Client/Request/UpdateRoomVariableRequest.cs
similarity index 100%
rename from SocketService.Client/Request/UpdateRoomVariableRequest.cs
rename to SocketServer.Client/Request/UpdateRoomVariableRequest.cs
diff --git a/SocketService.Client/Response/ConnectionResponse.cs b/SocketServer.Client/Response/ConnectionResponse.cs
similarity index 100%
rename from SocketService.Client/Response/ConnectionResponse.cs
rename to SocketServer.Client/Response/ConnectionResponse.cs
diff --git a/SocketService.Client/Response/DeleteRoomVariableResponse.cs b/SocketServer.Client/Response/DeleteRoomVariableResponse.cs
similarity index 100%
rename from SocketService.Client/Response/DeleteRoomVariableResponse.cs
rename to SocketServer.Client/Response/DeleteRoomVariableResponse.cs
diff --git a/SocketService.Client/Response/GetRoomVariableResponse.cs b/SocketServer.Client/Response/GetRoomVariableResponse.cs
similarity index 100%
rename from SocketService.Client/Response/GetRoomVariableResponse.cs
rename to SocketServer.Client/Response/GetRoomVariableResponse.cs
diff --git a/SocketService.Client/Response/IResponse.cs b/SocketServer.Client/Response/IResponse.cs
similarity index 100%
rename from SocketService.Client/Response/IResponse.cs
rename to SocketServer.Client/Response/IResponse.cs
diff --git a/SocketService.Client/Response/ListUsersInRoomResponse.cs b/SocketServer.Client/Response/ListUsersInRoomResponse.cs
similarity index 100%
rename from SocketService.Client/Response/ListUsersInRoomResponse.cs
rename to SocketServer.Client/Response/ListUsersInRoomResponse.cs
diff --git a/SocketService.Client/Response/LoginResponse.cs b/SocketServer.Client/Response/LoginResponse.cs
similarity index 100%
rename from SocketService.Client/Response/LoginResponse.cs
rename to SocketServer.Client/Response/LoginResponse.cs
diff --git a/SocketService.Client/Response/NegotiateKeysResponse.cs b/SocketServer.Client/Response/NegotiateKeysResponse.cs
similarity index 100%
rename from SocketService.Client/Response/NegotiateKeysResponse.cs
rename to SocketServer.Client/Response/NegotiateKeysResponse.cs
diff --git a/SocketService.Client/Response/ServerMessage.cs b/SocketServer.Client/Response/ServerMessage.cs
similarity index 100%
rename from SocketService.Client/Response/ServerMessage.cs
rename to SocketServer.Client/Response/ServerMessage.cs
diff --git a/SocketService.Client/Response/UpdateRoomVariableResponse.cs b/SocketServer.Client/Response/UpdateRoomVariableResponse.cs
similarity index 100%
rename from SocketService.Client/Response/UpdateRoomVariableResponse.cs
rename to SocketServer.Client/Response/UpdateRoomVariableResponse.cs
diff --git a/SocketService.Client/Server.cs b/SocketServer.Client/Server.cs
similarity index 74%
rename from SocketService.Client/Server.cs
rename to SocketServer.Client/Server.cs
index 6468aaa..cf6ec03 100644
--- a/SocketService.Client/Server.cs
+++ b/SocketServer.Client/Server.cs
@@ -3,7 +3,6 @@
using System.Threading;
using System.Collections;
using System.Net.Sockets;
-using SocketServer.Crypto;
using SocketServer.Client;
using SocketServer.Shared;
using SocketServer.Shared.Request;
@@ -19,6 +18,7 @@
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.X509;
using SocketServer.Shared.Event;
+using SocketServer.Crypto;
namespace SocketServer.Client
{
@@ -269,64 +269,64 @@ private T WaitForResponse() where T : class
{
T val = default(T);
- ResponseHeader header = null;
- int step = 0;
-
- while (step < 2)
- {
- byte [] data = _socket.ReceiveData();
- buffer.Write(data);
-
- MemoryStream stream = new MemoryStream(buffer.Buffer);
- switch (step)
- {
- case 0: /* reading header */
- {
- string utfString = stream.ReadUTF();
- if (utfString != null)
- {
- header = XmlSerializationHelper
- .DeSerialize(utfString);
-
- step++;
- }
- }
- break;
-
- case 1:
- {
- string rawRequestString = stream.ReadUTF();
- if (rawRequestString != null)
- {
- if (header != null)
- {
- val = XmlSerializationHelper.DeSerialize(
- ResponseBuilder
- .ProcessResponse(
- _serverAuthority,
- _serverPublicKey,
- header,
- rawRequestString));
- }
-
- step++;
- }
- }
- break;
- }
-
- // fix up buffers
- buffer = new ClientBuffer();
-
- // if any data left, fix up buffers
- if (stream.Length > stream.Position)
- {
- // left over bytes
- byte[] leftover = stream.Read((int)(stream.Length - stream.Position));
- buffer.Write(leftover);
- }
-
- }
+ //ResponseHeader header = null;
+ //int step = 0;
+
+ //while (step < 2)
+ //{
+ // byte [] data = _socket.ReceiveData();
+ // buffer.Write(data);
+
+ // MemoryStream stream = new MemoryStream(buffer.Buffer);
+ // switch (step)
+ // {
+ // case 0: /* reading header */
+ // {
+ // string utfString = stream.ReadUTF();
+ // if (utfString != null)
+ // {
+ // header = XmlSerializationHelper
+ // .DeSerialize(utfString);
+
+ // step++;
+ // }
+ // }
+ // break;
+
+ // case 1:
+ // {
+ // string rawRequestString = stream.ReadUTF();
+ // if (rawRequestString != null)
+ // {
+ // if (header != null)
+ // {
+ // val = XmlSerializationHelper.DeSerialize(
+ // ResponseBuilder
+ // .ProcessResponse(
+ // _serverAuthority,
+ // _serverPublicKey,
+ // header,
+ // rawRequestString));
+ // }
+
+ // step++;
+ // }
+ // }
+ // break;
+ // }
+
+ // // fix up buffers
+ // buffer = new ClientBuffer();
+
+ // // if any data left, fix up buffers
+ // if (stream.Length > stream.Position)
+ // {
+ // // left over bytes
+ // byte[] leftover = stream.Read((int)(stream.Length - stream.Position));
+ // buffer.Write(leftover);
+ // }
+
+ //}
return val;
@@ -338,38 +338,38 @@ private T WaitForResponse() where T : class
/// The request data.
public void SendRequest(RequestTypes requestType, T request, bool encrypted) where T : class
{
- string requestString = XmlSerializationHelper.Serialize(request);
-
- RequestHeader header = null;
-
- byte[] publicKey = null;
-
- if( encrypted )
- {
- header = RequestBuilder.BuildRequestHeader(
- EncryptionTypes.Aes,
- CompressionTypes.None,
- requestType);
-
- publicKey = EncryptionHelper.EncodeKeyParameter(
- _serverAuthority.GetPublicKeyParameter());
-
- header.MessageHeader.EncryptionHeader.PublicKey = publicKey;
-
- } else
- {
- header = RequestBuilder.BuildRequestHeader(
- EncryptionTypes.None,
- CompressionTypes.None,
- requestType);
- }
-
- _socket.SendData(XmlSerializationHelper.Serialize(header));
- _socket.SendData(RequestBuilder.ProcessRequest(
- _serverAuthority,
- _serverPublicKey,
- header,
- XmlSerializationHelper.Serialize(request)));
+ //string requestString = XmlSerializationHelper.Serialize(request);
+
+ //RequestHeader header = null;
+
+ //byte[] publicKey = null;
+
+ //if( encrypted )
+ //{
+ // header = RequestBuilder.BuildRequestHeader(
+ // EncryptionTypes.Aes,
+ // CompressionTypes.None,
+ // requestType);
+
+ // publicKey = EncryptionHelper.EncodeKeyParameter(
+ // _serverAuthority.GetPublicKeyParameter());
+
+ // header.MessageHeader.EncryptionHeader.PublicKey = publicKey;
+
+ //} else
+ //{
+ // header = RequestBuilder.BuildRequestHeader(
+ // EncryptionTypes.None,
+ // CompressionTypes.None,
+ // requestType);
+ //}
+
+ //_socket.SendData(XmlSerializationHelper.Serialize(header));
+ //_socket.SendData(RequestBuilder.ProcessRequest(
+ // _serverAuthority,
+ // _serverPublicKey,
+ // header,
+ // XmlSerializationHelper.Serialize(request)));
}
}
diff --git a/SocketService.Client/SharedObjects/SharedObject.cs b/SocketServer.Client/SharedObjects/SharedObject.cs
similarity index 100%
rename from SocketService.Client/SharedObjects/SharedObject.cs
rename to SocketServer.Client/SharedObjects/SharedObject.cs
diff --git a/SocketService.Client/SharedObjects/SharedObjectDataHolder.cs b/SocketServer.Client/SharedObjects/SharedObjectDataHolder.cs
similarity index 100%
rename from SocketService.Client/SharedObjects/SharedObjectDataHolder.cs
rename to SocketServer.Client/SharedObjects/SharedObjectDataHolder.cs
diff --git a/SocketService.Client/SharedObjects/SharedObjectDataType.cs b/SocketServer.Client/SharedObjects/SharedObjectDataType.cs
similarity index 100%
rename from SocketService.Client/SharedObjects/SharedObjectDataType.cs
rename to SocketServer.Client/SharedObjects/SharedObjectDataType.cs
diff --git a/SocketService.Client/SharedObjects/SharedObjectRO.cs b/SocketServer.Client/SharedObjects/SharedObjectRO.cs
similarity index 100%
rename from SocketService.Client/SharedObjects/SharedObjectRO.cs
rename to SocketServer.Client/SharedObjects/SharedObjectRO.cs
diff --git a/SocketService.Client/SharedObjects/UserListEntry.cs b/SocketServer.Client/SharedObjects/UserListEntry.cs
similarity index 100%
rename from SocketService.Client/SharedObjects/UserListEntry.cs
rename to SocketServer.Client/SharedObjects/UserListEntry.cs
diff --git a/SocketService.Client/SocketServer.Client.csproj b/SocketServer.Client/SocketServer.Client.csproj
similarity index 97%
rename from SocketService.Client/SocketServer.Client.csproj
rename to SocketServer.Client/SocketServer.Client.csproj
index b8a4e1f..8a54700 100644
--- a/SocketService.Client/SocketServer.Client.csproj
+++ b/SocketServer.Client/SocketServer.Client.csproj
@@ -99,11 +99,11 @@
-
+
{4138075A-49CD-4A46-92CB-DFF64A0BB0B6}
SocketServer.Crypto
-
+
{7C9013CF-CEC4-4F7D-B80D-C6FA2E243CF1}
SocketServer.Shared
diff --git a/SocketService.Client/Sockets/ZipSocket.cs b/SocketServer.Client/Sockets/ZipSocket.cs
similarity index 100%
rename from SocketService.Client/Sockets/ZipSocket.cs
rename to SocketServer.Client/Sockets/ZipSocket.cs
diff --git a/SocketService.Crypto/BigInteger.cs b/SocketServer.Crypto/BigInteger.cs
similarity index 100%
rename from SocketService.Crypto/BigInteger.cs
rename to SocketServer.Crypto/BigInteger.cs
diff --git a/SocketService.Crypto/CentralAuthority.cs b/SocketServer.Crypto/CentralAuthority.cs
similarity index 100%
rename from SocketService.Crypto/CentralAuthority.cs
rename to SocketServer.Crypto/CentralAuthority.cs
diff --git a/SocketService.Crypto/Constants.cs b/SocketServer.Crypto/Constants.cs
similarity index 100%
rename from SocketService.Crypto/Constants.cs
rename to SocketServer.Crypto/Constants.cs
diff --git a/SocketService.Crypto/Crc32.cs b/SocketServer.Crypto/Crc32.cs
similarity index 100%
rename from SocketService.Crypto/Crc32.cs
rename to SocketServer.Crypto/Crc32.cs
diff --git a/SocketService.Crypto/CryptoManager.cs b/SocketServer.Crypto/CryptoManager.cs
similarity index 100%
rename from SocketService.Crypto/CryptoManager.cs
rename to SocketServer.Crypto/CryptoManager.cs
diff --git a/SocketService.Crypto/DHParameterHelper.cs b/SocketServer.Crypto/DHParameterHelper.cs
similarity index 100%
rename from SocketService.Crypto/DHParameterHelper.cs
rename to SocketServer.Crypto/DHParameterHelper.cs
diff --git a/SocketService.Crypto/DHProvider.cs b/SocketServer.Crypto/DHProvider.cs
similarity index 100%
rename from SocketService.Crypto/DHProvider.cs
rename to SocketServer.Crypto/DHProvider.cs
diff --git a/SocketService.Crypto/DiffieHellmanKey.cs b/SocketServer.Crypto/DiffieHellmanKey.cs
similarity index 100%
rename from SocketService.Crypto/DiffieHellmanKey.cs
rename to SocketServer.Crypto/DiffieHellmanKey.cs
diff --git a/SocketService.Crypto/DiffieHellmanProvider.cs b/SocketServer.Crypto/DiffieHellmanProvider.cs
similarity index 100%
rename from SocketService.Crypto/DiffieHellmanProvider.cs
rename to SocketServer.Crypto/DiffieHellmanProvider.cs
diff --git a/SocketService.Crypto/EncryptionHelper.cs b/SocketServer.Crypto/EncryptionHelper.cs
similarity index 100%
rename from SocketService.Crypto/EncryptionHelper.cs
rename to SocketServer.Crypto/EncryptionHelper.cs
diff --git a/SocketService.Crypto/ICrypto.cs b/SocketServer.Crypto/ICrypto.cs
similarity index 100%
rename from SocketService.Crypto/ICrypto.cs
rename to SocketServer.Crypto/ICrypto.cs
diff --git a/SocketService.Crypto/Properties/AssemblyInfo.cs b/SocketServer.Crypto/Properties/AssemblyInfo.cs
similarity index 100%
rename from SocketService.Crypto/Properties/AssemblyInfo.cs
rename to SocketServer.Crypto/Properties/AssemblyInfo.cs
diff --git a/SocketService.Crypto/RijndaelCrypto.cs b/SocketServer.Crypto/RijndaelCrypto.cs
similarity index 78%
rename from SocketService.Crypto/RijndaelCrypto.cs
rename to SocketServer.Crypto/RijndaelCrypto.cs
index 092cbbb..baaaafe 100644
--- a/SocketService.Crypto/RijndaelCrypto.cs
+++ b/SocketServer.Crypto/RijndaelCrypto.cs
@@ -10,6 +10,11 @@ public class RijndaelCrypto
{
private const int DefaultKeySize = 128;
+ public byte [] Encrypt(byte [] plaintext, string password)
+ {
+ return Encrypt(plaintext, SymmetricAlgorithmFactory.GetRijndaelManaged(password, DefaultKeySize));
+ }
+
public string Encrypt(string plainText, string password)
{
var plainBytes = Encoding.UTF8.GetBytes(plainText);
@@ -21,6 +26,11 @@ public string Encrypt(string plainText, string password)
);
}
+ public byte [] Decrypt( byte [] ciphertext, string password)
+ {
+ return Decrypt(ciphertext, SymmetricAlgorithmFactory.GetRijndaelManaged(password, DefaultKeySize));
+ }
+
public string Decrypt(string cipherText, string password)
{
var encryptedBytes = Convert.FromBase64String(cipherText);
diff --git a/SocketService.Crypto/ServerAuthority.cs b/SocketServer.Crypto/ServerAuthority.cs
similarity index 100%
rename from SocketService.Crypto/ServerAuthority.cs
rename to SocketServer.Crypto/ServerAuthority.cs
diff --git a/SocketService.Crypto/ServerAuthorityFactory.cs b/SocketServer.Crypto/ServerAuthorityFactory.cs
similarity index 100%
rename from SocketService.Crypto/ServerAuthorityFactory.cs
rename to SocketServer.Crypto/ServerAuthorityFactory.cs
diff --git a/SocketService.Crypto/SharedKeyCrypto.cs b/SocketServer.Crypto/SharedKeyCrypto.cs
similarity index 100%
rename from SocketService.Crypto/SharedKeyCrypto.cs
rename to SocketServer.Crypto/SharedKeyCrypto.cs
diff --git a/SocketService.Crypto/SocketServer.Crypto.csproj b/SocketServer.Crypto/SocketServer.Crypto.csproj
similarity index 100%
rename from SocketService.Crypto/SocketServer.Crypto.csproj
rename to SocketServer.Crypto/SocketServer.Crypto.csproj
diff --git a/SocketService.Crypto/StringExtentions.cs b/SocketServer.Crypto/StringExtentions.cs
similarity index 100%
rename from SocketService.Crypto/StringExtentions.cs
rename to SocketServer.Crypto/StringExtentions.cs
diff --git a/SocketService.Crypto/StrongNumberProvider.cs b/SocketServer.Crypto/StrongNumberProvider.cs
similarity index 100%
rename from SocketService.Crypto/StrongNumberProvider.cs
rename to SocketServer.Crypto/StrongNumberProvider.cs
diff --git a/SocketService.Crypto/SymmetricAlgorithmFactory.cs b/SocketServer.Crypto/SymmetricAlgorithmFactory.cs
similarity index 100%
rename from SocketService.Crypto/SymmetricAlgorithmFactory.cs
rename to SocketServer.Crypto/SymmetricAlgorithmFactory.cs
diff --git a/SocketService.Event/ConnectionEventArgs.cs b/SocketServer.Event/ConnectionEventArgs.cs
similarity index 100%
rename from SocketService.Event/ConnectionEventArgs.cs
rename to SocketServer.Event/ConnectionEventArgs.cs
diff --git a/SocketService.Event/GetRoomVariableResponseArgs.cs b/SocketServer.Event/GetRoomVariableResponseArgs.cs
similarity index 100%
rename from SocketService.Event/GetRoomVariableResponseArgs.cs
rename to SocketServer.Event/GetRoomVariableResponseArgs.cs
diff --git a/SocketService.Event/IEvent.cs b/SocketServer.Event/IEvent.cs
similarity index 100%
rename from SocketService.Event/IEvent.cs
rename to SocketServer.Event/IEvent.cs
diff --git a/SocketService.Event/JoinRoomEvent.cs b/SocketServer.Event/JoinRoomEvent.cs
similarity index 100%
rename from SocketService.Event/JoinRoomEvent.cs
rename to SocketServer.Event/JoinRoomEvent.cs
diff --git a/SocketService.Event/JoinRoomEventArgs.cs b/SocketServer.Event/JoinRoomEventArgs.cs
similarity index 100%
rename from SocketService.Event/JoinRoomEventArgs.cs
rename to SocketServer.Event/JoinRoomEventArgs.cs
diff --git a/SocketService.Event/LeaveRoomEvent.cs b/SocketServer.Event/LeaveRoomEvent.cs
similarity index 100%
rename from SocketService.Event/LeaveRoomEvent.cs
rename to SocketServer.Event/LeaveRoomEvent.cs
diff --git a/SocketService.Event/LeaveRoomEventArgs.cs b/SocketServer.Event/LeaveRoomEventArgs.cs
similarity index 100%
rename from SocketService.Event/LeaveRoomEventArgs.cs
rename to SocketServer.Event/LeaveRoomEventArgs.cs
diff --git a/SocketService.Event/LoginResponseEventArgs.cs b/SocketServer.Event/LoginResponseEventArgs.cs
similarity index 100%
rename from SocketService.Event/LoginResponseEventArgs.cs
rename to SocketServer.Event/LoginResponseEventArgs.cs
diff --git a/SocketService.Event/Properties/AssemblyInfo.cs b/SocketServer.Event/Properties/AssemblyInfo.cs
similarity index 100%
rename from SocketService.Event/Properties/AssemblyInfo.cs
rename to SocketServer.Event/Properties/AssemblyInfo.cs
diff --git a/SocketService.Event/PublicMessageEvent.cs b/SocketServer.Event/PublicMessageEvent.cs
similarity index 100%
rename from SocketService.Event/PublicMessageEvent.cs
rename to SocketServer.Event/PublicMessageEvent.cs
diff --git a/SocketService.Event/RoomUserUpdateEvent.cs b/SocketServer.Event/RoomUserUpdateEvent.cs
similarity index 100%
rename from SocketService.Event/RoomUserUpdateEvent.cs
rename to SocketServer.Event/RoomUserUpdateEvent.cs
diff --git a/SocketService.Event/RoomUserUpdateEventArgs.cs b/SocketServer.Event/RoomUserUpdateEventArgs.cs
similarity index 100%
rename from SocketService.Event/RoomUserUpdateEventArgs.cs
rename to SocketServer.Event/RoomUserUpdateEventArgs.cs
diff --git a/SocketService.Event/RoomVariableUpdateArgs.cs b/SocketServer.Event/RoomVariableUpdateArgs.cs
similarity index 100%
rename from SocketService.Event/RoomVariableUpdateArgs.cs
rename to SocketServer.Event/RoomVariableUpdateArgs.cs
diff --git a/SocketService.Event/RoomVariableUpdateEvent.cs b/SocketServer.Event/RoomVariableUpdateEvent.cs
similarity index 100%
rename from SocketService.Event/RoomVariableUpdateEvent.cs
rename to SocketServer.Event/RoomVariableUpdateEvent.cs
diff --git a/SocketService.Event/ServerEventEventArgs.cs b/SocketServer.Event/ServerEventEventArgs.cs
similarity index 100%
rename from SocketService.Event/ServerEventEventArgs.cs
rename to SocketServer.Event/ServerEventEventArgs.cs
diff --git a/SocketService.Event/ServerMessageReceivedArgs.cs b/SocketServer.Event/ServerMessageReceivedArgs.cs
similarity index 100%
rename from SocketService.Event/ServerMessageReceivedArgs.cs
rename to SocketServer.Event/ServerMessageReceivedArgs.cs
diff --git a/SocketService.Event/ServerResponseEventArgs.cs b/SocketServer.Event/ServerResponseEventArgs.cs
similarity index 100%
rename from SocketService.Event/ServerResponseEventArgs.cs
rename to SocketServer.Event/ServerResponseEventArgs.cs
diff --git a/SocketService.Event/SocketServer.Event.csproj b/SocketServer.Event/SocketServer.Event.csproj
similarity index 96%
rename from SocketService.Event/SocketServer.Event.csproj
rename to SocketServer.Event/SocketServer.Event.csproj
index 2d4f4cd..77f565f 100644
--- a/SocketService.Event/SocketServer.Event.csproj
+++ b/SocketServer.Event/SocketServer.Event.csproj
@@ -50,7 +50,7 @@
-
+
{7C9013CF-CEC4-4F7D-B80D-C6FA2E243CF1}
SocketServer.Shared
diff --git a/SocketService.Messages/DiffieHellmanParametersMessage.cs b/SocketServer.Messages/DiffieHellmanParametersMessage.cs
similarity index 80%
rename from SocketService.Messages/DiffieHellmanParametersMessage.cs
rename to SocketServer.Messages/DiffieHellmanParametersMessage.cs
index 9f443a3..caa871e 100644
--- a/SocketService.Messages/DiffieHellmanParametersMessage.cs
+++ b/SocketServer.Messages/DiffieHellmanParametersMessage.cs
@@ -3,28 +3,23 @@
using System.Linq;
using System.Text;
using SocketServer.Shared.Messaging;
-using ProtoBuf;
namespace SocketServer.Messages
{
- [ProtoContract]
public class DiffieHellmanInfo
{
- [ProtoMember(1)]
public string P
{
get;
set;
}
- [ProtoMember(2)]
public string G
{
get;
set;
}
- [ProtoMember(3)]
public byte[] PublicKeyInfo
{
get;
diff --git a/SocketService.Messages/EnableEncryptionMessage.cs b/SocketServer.Messages/EnableEncryptionMessage.cs
similarity index 74%
rename from SocketService.Messages/EnableEncryptionMessage.cs
rename to SocketServer.Messages/EnableEncryptionMessage.cs
index 9d53e86..663c903 100644
--- a/SocketService.Messages/EnableEncryptionMessage.cs
+++ b/SocketServer.Messages/EnableEncryptionMessage.cs
@@ -3,14 +3,11 @@
using System.Linq;
using System.Text;
using SocketServer.Shared.Messaging;
-using ProtoBuf;
namespace SocketServer.Messages
{
- [ProtoContract]
- public class EnableEncryptionMessage : IMessage
+ public class EnableEncryptionMessage : IValidatedMessage
{
- [ProtoMember(1)]
public string MessageID
{
get;
@@ -21,14 +18,12 @@ public void Validate()
{
}
- [ProtoMember(2)]
public bool Enable
{
get;
set;
}
- [ProtoMember(3)]
public byte[] PublicKeyInfo
{
get;
diff --git a/SocketService.Messages/EnableEncryptionResponse.cs b/SocketServer.Messages/EnableEncryptionResponse.cs
similarity index 75%
rename from SocketService.Messages/EnableEncryptionResponse.cs
rename to SocketServer.Messages/EnableEncryptionResponse.cs
index 3f788ef..a141789 100644
--- a/SocketService.Messages/EnableEncryptionResponse.cs
+++ b/SocketServer.Messages/EnableEncryptionResponse.cs
@@ -3,14 +3,11 @@
using System.Linq;
using System.Text;
using SocketServer.Shared.Messaging;
-using ProtoBuf;
namespace SocketServer.Messages
{
- [ProtoContract]
- public class EnableEncryptionResponse : IMessage
+ public class EnableEncryptionResponse : IValidatedMessage
{
- [ProtoMember(1)]
public string MessageID
{
get; set;
@@ -21,7 +18,6 @@ public void Validate()
throw new NotImplementedException();
}
- [ProtoMember(2)]
public bool Enabled
{
get;
diff --git a/SocketService.Messages/MessageOne.cs b/SocketServer.Messages/MessageOne.cs
similarity index 80%
rename from SocketService.Messages/MessageOne.cs
rename to SocketServer.Messages/MessageOne.cs
index 2cc22a3..6979791 100644
--- a/SocketService.Messages/MessageOne.cs
+++ b/SocketServer.Messages/MessageOne.cs
@@ -2,19 +2,15 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
-using ProtoBuf;
using SocketServer.Shared.Messaging;
using System.IO;
namespace SocketServer.Messages
{
- [ProtoContract]
- public class MessageOne : IMessage
+ public class MessageOne : IValidatedMessage
{
- [ProtoMember(1)]
public int Value { get; set; }
- [ProtoMember(2)]
public string MessageID
{
get; set;
diff --git a/SocketServer.Messages/Messages.cs b/SocketServer.Messages/Messages.cs
new file mode 100644
index 0000000..5519e14
--- /dev/null
+++ b/SocketServer.Messages/Messages.cs
@@ -0,0 +1,2609 @@
+// Generated by ProtoGen, Version=2.4.1.473, Culture=neutral, PublicKeyToken=55f7125234beb589. DO NOT EDIT!
+#pragma warning disable 1591, 0612
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace com.BlazeServer.Messages.MessageProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public static partial class Messages {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_message_EnableEncryptionRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_message_EnableEncryptionRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_message_EnableEncryptionResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_message_EnableEncryptionResponse__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_message_ServerConnectionResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_message_ServerConnectionResponse__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_message_ServerConnectionResponse_KeyParameters__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_message_ServerConnectionResponse_KeyParameters__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_message_LoginRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_message_LoginRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_message_CreateRoomRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_message_CreateRoomRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_message_LoginResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_message_LoginResponse__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_message_TestMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_message_TestMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static Messages() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "Cg5tZXNzYWdlcy5wcm90bxIHbWVzc2FnZSJQChdFbmFibGVFbmNyeXB0aW9u" +
+ "UmVxdWVzdBISCgptZXNzYWdlX2lkGAEgAigFEg4KBmVuYWJsZRgCIAIoCBIR" +
+ "CglwdWJsaWNrZXkYAyACKAwiUgoYRW5hYmxlRW5jcnlwdGlvblJlc3BvbnNl" +
+ "EhIKCm1lc3NhZ2VfaWQYASACKAUSDwoHc3VjY2VzcxgCIAIoCBIRCglwdWJs" +
+ "aWNrZXkYAyABKAwimgEKGFNlcnZlckNvbm5lY3Rpb25SZXNwb25zZRISCgpt" +
+ "ZXNzYWdlX2lkGAEgAigFEkMKCnBhcmFtZXRlcnMYAiACKAsyLy5tZXNzYWdl" +
+ "LlNlcnZlckNvbm5lY3Rpb25SZXNwb25zZS5LZXlQYXJhbWV0ZXJzGiUKDUtl" +
+ "eVBhcmFtZXRlcnMSCQoBZxgBIAIoCRIJCgFwGAIgAigJIiEKDExvZ2luUmVx" +
+ "dWVzdBIRCgl1c2VyX25hbWUYASACKAkiJgoRQ3JlYXRlUm9vbVJlcXVlc3QS" +
+ "EQoJcm9vbV9uYW1lGAEgAigJIiAKDUxvZ2luUmVzcG9uc2USDwoHc3VjY2Vz" +
+ "cxgBIAIoCCIhCgtUZXN0TWVzc2FnZRISCgptZXNzYWdlX2lkGAEgAigFQikK" +
+ "GGNvbS5CbGF6ZVNlcnZlci5NZXNzYWdlc0INTWVzc2FnZVByb3Rvcw==");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_message_EnableEncryptionRequest__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_message_EnableEncryptionRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_message_EnableEncryptionRequest__Descriptor,
+ new string[] { "MessageId", "Enable", "Publickey", });
+ internal__static_message_EnableEncryptionResponse__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_message_EnableEncryptionResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_message_EnableEncryptionResponse__Descriptor,
+ new string[] { "MessageId", "Success", "Publickey", });
+ internal__static_message_ServerConnectionResponse__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_message_ServerConnectionResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_message_ServerConnectionResponse__Descriptor,
+ new string[] { "MessageId", "Parameters", });
+ internal__static_message_ServerConnectionResponse_KeyParameters__Descriptor = internal__static_message_ServerConnectionResponse__Descriptor.NestedTypes[0];
+ internal__static_message_ServerConnectionResponse_KeyParameters__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_message_ServerConnectionResponse_KeyParameters__Descriptor,
+ new string[] { "G", "P", });
+ internal__static_message_LoginRequest__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_message_LoginRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_message_LoginRequest__Descriptor,
+ new string[] { "UserName", });
+ internal__static_message_CreateRoomRequest__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_message_CreateRoomRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_message_CreateRoomRequest__Descriptor,
+ new string[] { "RoomName", });
+ internal__static_message_LoginResponse__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_message_LoginResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_message_LoginResponse__Descriptor,
+ new string[] { "Success", });
+ internal__static_message_TestMessage__Descriptor = Descriptor.MessageTypes[6];
+ internal__static_message_TestMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_message_TestMessage__Descriptor,
+ new string[] { "MessageId", });
+ return null;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class EnableEncryptionRequest : pb::GeneratedMessage {
+ private EnableEncryptionRequest() { }
+ private static readonly EnableEncryptionRequest defaultInstance = new EnableEncryptionRequest().MakeReadOnly();
+ private static readonly string[] _enableEncryptionRequestFieldNames = new string[] { "enable", "message_id", "publickey" };
+ private static readonly uint[] _enableEncryptionRequestFieldTags = new uint[] { 16, 8, 26 };
+ public static EnableEncryptionRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override EnableEncryptionRequest DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override EnableEncryptionRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_EnableEncryptionRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_EnableEncryptionRequest__FieldAccessorTable; }
+ }
+
+ public const int MessageIdFieldNumber = 1;
+ private bool hasMessageId;
+ private int messageId_;
+ public bool HasMessageId {
+ get { return hasMessageId; }
+ }
+ public int MessageId {
+ get { return messageId_; }
+ }
+
+ public const int EnableFieldNumber = 2;
+ private bool hasEnable;
+ private bool enable_;
+ public bool HasEnable {
+ get { return hasEnable; }
+ }
+ public bool Enable {
+ get { return enable_; }
+ }
+
+ public const int PublickeyFieldNumber = 3;
+ private bool hasPublickey;
+ private pb::ByteString publickey_ = pb::ByteString.Empty;
+ public bool HasPublickey {
+ get { return hasPublickey; }
+ }
+ public pb::ByteString Publickey {
+ get { return publickey_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasMessageId) return false;
+ if (!hasEnable) return false;
+ if (!hasPublickey) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _enableEncryptionRequestFieldNames;
+ if (hasMessageId) {
+ output.WriteInt32(1, field_names[1], MessageId);
+ }
+ if (hasEnable) {
+ output.WriteBool(2, field_names[0], Enable);
+ }
+ if (hasPublickey) {
+ output.WriteBytes(3, field_names[2], Publickey);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasMessageId) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, MessageId);
+ }
+ if (hasEnable) {
+ size += pb::CodedOutputStream.ComputeBoolSize(2, Enable);
+ }
+ if (hasPublickey) {
+ size += pb::CodedOutputStream.ComputeBytesSize(3, Publickey);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static EnableEncryptionRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnableEncryptionRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnableEncryptionRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnableEncryptionRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnableEncryptionRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnableEncryptionRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static EnableEncryptionRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static EnableEncryptionRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static EnableEncryptionRequest ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnableEncryptionRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private EnableEncryptionRequest MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(EnableEncryptionRequest prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(EnableEncryptionRequest cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private EnableEncryptionRequest result;
+
+ private EnableEncryptionRequest PrepareBuilder() {
+ if (resultIsReadOnly) {
+ EnableEncryptionRequest original = result;
+ result = new EnableEncryptionRequest();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override EnableEncryptionRequest MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.EnableEncryptionRequest.Descriptor; }
+ }
+
+ public override EnableEncryptionRequest DefaultInstanceForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.EnableEncryptionRequest.DefaultInstance; }
+ }
+
+ public override EnableEncryptionRequest BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is EnableEncryptionRequest) {
+ return MergeFrom((EnableEncryptionRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(EnableEncryptionRequest other) {
+ if (other == global::com.BlazeServer.Messages.MessageProtos.EnableEncryptionRequest.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasMessageId) {
+ MessageId = other.MessageId;
+ }
+ if (other.HasEnable) {
+ Enable = other.Enable;
+ }
+ if (other.HasPublickey) {
+ Publickey = other.Publickey;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_enableEncryptionRequestFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _enableEncryptionRequestFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasMessageId = input.ReadInt32(ref result.messageId_);
+ break;
+ }
+ case 16: {
+ result.hasEnable = input.ReadBool(ref result.enable_);
+ break;
+ }
+ case 26: {
+ result.hasPublickey = input.ReadBytes(ref result.publickey_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasMessageId {
+ get { return result.hasMessageId; }
+ }
+ public int MessageId {
+ get { return result.MessageId; }
+ set { SetMessageId(value); }
+ }
+ public Builder SetMessageId(int value) {
+ PrepareBuilder();
+ result.hasMessageId = true;
+ result.messageId_ = value;
+ return this;
+ }
+ public Builder ClearMessageId() {
+ PrepareBuilder();
+ result.hasMessageId = false;
+ result.messageId_ = 0;
+ return this;
+ }
+
+ public bool HasEnable {
+ get { return result.hasEnable; }
+ }
+ public bool Enable {
+ get { return result.Enable; }
+ set { SetEnable(value); }
+ }
+ public Builder SetEnable(bool value) {
+ PrepareBuilder();
+ result.hasEnable = true;
+ result.enable_ = value;
+ return this;
+ }
+ public Builder ClearEnable() {
+ PrepareBuilder();
+ result.hasEnable = false;
+ result.enable_ = false;
+ return this;
+ }
+
+ public bool HasPublickey {
+ get { return result.hasPublickey; }
+ }
+ public pb::ByteString Publickey {
+ get { return result.Publickey; }
+ set { SetPublickey(value); }
+ }
+ public Builder SetPublickey(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasPublickey = true;
+ result.publickey_ = value;
+ return this;
+ }
+ public Builder ClearPublickey() {
+ PrepareBuilder();
+ result.hasPublickey = false;
+ result.publickey_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static EnableEncryptionRequest() {
+ object.ReferenceEquals(global::com.BlazeServer.Messages.MessageProtos.Messages.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class EnableEncryptionResponse : pb::GeneratedMessage {
+ private EnableEncryptionResponse() { }
+ private static readonly EnableEncryptionResponse defaultInstance = new EnableEncryptionResponse().MakeReadOnly();
+ private static readonly string[] _enableEncryptionResponseFieldNames = new string[] { "message_id", "publickey", "success" };
+ private static readonly uint[] _enableEncryptionResponseFieldTags = new uint[] { 8, 26, 16 };
+ public static EnableEncryptionResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override EnableEncryptionResponse DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override EnableEncryptionResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_EnableEncryptionResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_EnableEncryptionResponse__FieldAccessorTable; }
+ }
+
+ public const int MessageIdFieldNumber = 1;
+ private bool hasMessageId;
+ private int messageId_;
+ public bool HasMessageId {
+ get { return hasMessageId; }
+ }
+ public int MessageId {
+ get { return messageId_; }
+ }
+
+ public const int SuccessFieldNumber = 2;
+ private bool hasSuccess;
+ private bool success_;
+ public bool HasSuccess {
+ get { return hasSuccess; }
+ }
+ public bool Success {
+ get { return success_; }
+ }
+
+ public const int PublickeyFieldNumber = 3;
+ private bool hasPublickey;
+ private pb::ByteString publickey_ = pb::ByteString.Empty;
+ public bool HasPublickey {
+ get { return hasPublickey; }
+ }
+ public pb::ByteString Publickey {
+ get { return publickey_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasMessageId) return false;
+ if (!hasSuccess) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _enableEncryptionResponseFieldNames;
+ if (hasMessageId) {
+ output.WriteInt32(1, field_names[0], MessageId);
+ }
+ if (hasSuccess) {
+ output.WriteBool(2, field_names[2], Success);
+ }
+ if (hasPublickey) {
+ output.WriteBytes(3, field_names[1], Publickey);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasMessageId) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, MessageId);
+ }
+ if (hasSuccess) {
+ size += pb::CodedOutputStream.ComputeBoolSize(2, Success);
+ }
+ if (hasPublickey) {
+ size += pb::CodedOutputStream.ComputeBytesSize(3, Publickey);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static EnableEncryptionResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnableEncryptionResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnableEncryptionResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnableEncryptionResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnableEncryptionResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnableEncryptionResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static EnableEncryptionResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static EnableEncryptionResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static EnableEncryptionResponse ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnableEncryptionResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private EnableEncryptionResponse MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(EnableEncryptionResponse prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(EnableEncryptionResponse cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private EnableEncryptionResponse result;
+
+ private EnableEncryptionResponse PrepareBuilder() {
+ if (resultIsReadOnly) {
+ EnableEncryptionResponse original = result;
+ result = new EnableEncryptionResponse();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override EnableEncryptionResponse MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.EnableEncryptionResponse.Descriptor; }
+ }
+
+ public override EnableEncryptionResponse DefaultInstanceForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.EnableEncryptionResponse.DefaultInstance; }
+ }
+
+ public override EnableEncryptionResponse BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is EnableEncryptionResponse) {
+ return MergeFrom((EnableEncryptionResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(EnableEncryptionResponse other) {
+ if (other == global::com.BlazeServer.Messages.MessageProtos.EnableEncryptionResponse.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasMessageId) {
+ MessageId = other.MessageId;
+ }
+ if (other.HasSuccess) {
+ Success = other.Success;
+ }
+ if (other.HasPublickey) {
+ Publickey = other.Publickey;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_enableEncryptionResponseFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _enableEncryptionResponseFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasMessageId = input.ReadInt32(ref result.messageId_);
+ break;
+ }
+ case 16: {
+ result.hasSuccess = input.ReadBool(ref result.success_);
+ break;
+ }
+ case 26: {
+ result.hasPublickey = input.ReadBytes(ref result.publickey_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasMessageId {
+ get { return result.hasMessageId; }
+ }
+ public int MessageId {
+ get { return result.MessageId; }
+ set { SetMessageId(value); }
+ }
+ public Builder SetMessageId(int value) {
+ PrepareBuilder();
+ result.hasMessageId = true;
+ result.messageId_ = value;
+ return this;
+ }
+ public Builder ClearMessageId() {
+ PrepareBuilder();
+ result.hasMessageId = false;
+ result.messageId_ = 0;
+ return this;
+ }
+
+ public bool HasSuccess {
+ get { return result.hasSuccess; }
+ }
+ public bool Success {
+ get { return result.Success; }
+ set { SetSuccess(value); }
+ }
+ public Builder SetSuccess(bool value) {
+ PrepareBuilder();
+ result.hasSuccess = true;
+ result.success_ = value;
+ return this;
+ }
+ public Builder ClearSuccess() {
+ PrepareBuilder();
+ result.hasSuccess = false;
+ result.success_ = false;
+ return this;
+ }
+
+ public bool HasPublickey {
+ get { return result.hasPublickey; }
+ }
+ public pb::ByteString Publickey {
+ get { return result.Publickey; }
+ set { SetPublickey(value); }
+ }
+ public Builder SetPublickey(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasPublickey = true;
+ result.publickey_ = value;
+ return this;
+ }
+ public Builder ClearPublickey() {
+ PrepareBuilder();
+ result.hasPublickey = false;
+ result.publickey_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static EnableEncryptionResponse() {
+ object.ReferenceEquals(global::com.BlazeServer.Messages.MessageProtos.Messages.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class ServerConnectionResponse : pb::GeneratedMessage {
+ private ServerConnectionResponse() { }
+ private static readonly ServerConnectionResponse defaultInstance = new ServerConnectionResponse().MakeReadOnly();
+ private static readonly string[] _serverConnectionResponseFieldNames = new string[] { "message_id", "parameters" };
+ private static readonly uint[] _serverConnectionResponseFieldTags = new uint[] { 8, 18 };
+ public static ServerConnectionResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ServerConnectionResponse DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ServerConnectionResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_ServerConnectionResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_ServerConnectionResponse__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public static class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class KeyParameters : pb::GeneratedMessage {
+ private KeyParameters() { }
+ private static readonly KeyParameters defaultInstance = new KeyParameters().MakeReadOnly();
+ private static readonly string[] _keyParametersFieldNames = new string[] { "g", "p" };
+ private static readonly uint[] _keyParametersFieldTags = new uint[] { 10, 18 };
+ public static KeyParameters DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override KeyParameters DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override KeyParameters ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_ServerConnectionResponse_KeyParameters__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_ServerConnectionResponse_KeyParameters__FieldAccessorTable; }
+ }
+
+ public const int GFieldNumber = 1;
+ private bool hasG;
+ private string g_ = "";
+ public bool HasG {
+ get { return hasG; }
+ }
+ public string G {
+ get { return g_; }
+ }
+
+ public const int PFieldNumber = 2;
+ private bool hasP;
+ private string p_ = "";
+ public bool HasP {
+ get { return hasP; }
+ }
+ public string P {
+ get { return p_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasG) return false;
+ if (!hasP) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _keyParametersFieldNames;
+ if (hasG) {
+ output.WriteString(1, field_names[0], G);
+ }
+ if (hasP) {
+ output.WriteString(2, field_names[1], P);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasG) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, G);
+ }
+ if (hasP) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, P);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static KeyParameters ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static KeyParameters ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static KeyParameters ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static KeyParameters ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static KeyParameters ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static KeyParameters ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static KeyParameters ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static KeyParameters ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static KeyParameters ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static KeyParameters ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private KeyParameters MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(KeyParameters prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(KeyParameters cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private KeyParameters result;
+
+ private KeyParameters PrepareBuilder() {
+ if (resultIsReadOnly) {
+ KeyParameters original = result;
+ result = new KeyParameters();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override KeyParameters MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters.Descriptor; }
+ }
+
+ public override KeyParameters DefaultInstanceForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters.DefaultInstance; }
+ }
+
+ public override KeyParameters BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is KeyParameters) {
+ return MergeFrom((KeyParameters) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(KeyParameters other) {
+ if (other == global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasG) {
+ G = other.G;
+ }
+ if (other.HasP) {
+ P = other.P;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_keyParametersFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _keyParametersFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasG = input.ReadString(ref result.g_);
+ break;
+ }
+ case 18: {
+ result.hasP = input.ReadString(ref result.p_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasG {
+ get { return result.hasG; }
+ }
+ public string G {
+ get { return result.G; }
+ set { SetG(value); }
+ }
+ public Builder SetG(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasG = true;
+ result.g_ = value;
+ return this;
+ }
+ public Builder ClearG() {
+ PrepareBuilder();
+ result.hasG = false;
+ result.g_ = "";
+ return this;
+ }
+
+ public bool HasP {
+ get { return result.hasP; }
+ }
+ public string P {
+ get { return result.P; }
+ set { SetP(value); }
+ }
+ public Builder SetP(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasP = true;
+ result.p_ = value;
+ return this;
+ }
+ public Builder ClearP() {
+ PrepareBuilder();
+ result.hasP = false;
+ result.p_ = "";
+ return this;
+ }
+ }
+ static KeyParameters() {
+ object.ReferenceEquals(global::com.BlazeServer.Messages.MessageProtos.Messages.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int MessageIdFieldNumber = 1;
+ private bool hasMessageId;
+ private int messageId_;
+ public bool HasMessageId {
+ get { return hasMessageId; }
+ }
+ public int MessageId {
+ get { return messageId_; }
+ }
+
+ public const int ParametersFieldNumber = 2;
+ private bool hasParameters;
+ private global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters parameters_;
+ public bool HasParameters {
+ get { return hasParameters; }
+ }
+ public global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters Parameters {
+ get { return parameters_ ?? global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasMessageId) return false;
+ if (!hasParameters) return false;
+ if (!Parameters.IsInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _serverConnectionResponseFieldNames;
+ if (hasMessageId) {
+ output.WriteInt32(1, field_names[0], MessageId);
+ }
+ if (hasParameters) {
+ output.WriteMessage(2, field_names[1], Parameters);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasMessageId) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, MessageId);
+ }
+ if (hasParameters) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, Parameters);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static ServerConnectionResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ServerConnectionResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ServerConnectionResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ServerConnectionResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ServerConnectionResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ServerConnectionResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ServerConnectionResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ServerConnectionResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ServerConnectionResponse ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ServerConnectionResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ServerConnectionResponse MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ServerConnectionResponse prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ServerConnectionResponse cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ServerConnectionResponse result;
+
+ private ServerConnectionResponse PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ServerConnectionResponse original = result;
+ result = new ServerConnectionResponse();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ServerConnectionResponse MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Descriptor; }
+ }
+
+ public override ServerConnectionResponse DefaultInstanceForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.DefaultInstance; }
+ }
+
+ public override ServerConnectionResponse BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ServerConnectionResponse) {
+ return MergeFrom((ServerConnectionResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ServerConnectionResponse other) {
+ if (other == global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasMessageId) {
+ MessageId = other.MessageId;
+ }
+ if (other.HasParameters) {
+ MergeParameters(other.Parameters);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_serverConnectionResponseFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _serverConnectionResponseFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasMessageId = input.ReadInt32(ref result.messageId_);
+ break;
+ }
+ case 18: {
+ global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters.Builder subBuilder = global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters.CreateBuilder();
+ if (result.hasParameters) {
+ subBuilder.MergeFrom(Parameters);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Parameters = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasMessageId {
+ get { return result.hasMessageId; }
+ }
+ public int MessageId {
+ get { return result.MessageId; }
+ set { SetMessageId(value); }
+ }
+ public Builder SetMessageId(int value) {
+ PrepareBuilder();
+ result.hasMessageId = true;
+ result.messageId_ = value;
+ return this;
+ }
+ public Builder ClearMessageId() {
+ PrepareBuilder();
+ result.hasMessageId = false;
+ result.messageId_ = 0;
+ return this;
+ }
+
+ public bool HasParameters {
+ get { return result.hasParameters; }
+ }
+ public global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters Parameters {
+ get { return result.Parameters; }
+ set { SetParameters(value); }
+ }
+ public Builder SetParameters(global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasParameters = true;
+ result.parameters_ = value;
+ return this;
+ }
+ public Builder SetParameters(global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasParameters = true;
+ result.parameters_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeParameters(global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasParameters &&
+ result.parameters_ != global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters.DefaultInstance) {
+ result.parameters_ = global::com.BlazeServer.Messages.MessageProtos.ServerConnectionResponse.Types.KeyParameters.CreateBuilder(result.parameters_).MergeFrom(value).BuildPartial();
+ } else {
+ result.parameters_ = value;
+ }
+ result.hasParameters = true;
+ return this;
+ }
+ public Builder ClearParameters() {
+ PrepareBuilder();
+ result.hasParameters = false;
+ result.parameters_ = null;
+ return this;
+ }
+ }
+ static ServerConnectionResponse() {
+ object.ReferenceEquals(global::com.BlazeServer.Messages.MessageProtos.Messages.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class LoginRequest : pb::GeneratedMessage {
+ private LoginRequest() { }
+ private static readonly LoginRequest defaultInstance = new LoginRequest().MakeReadOnly();
+ private static readonly string[] _loginRequestFieldNames = new string[] { "user_name" };
+ private static readonly uint[] _loginRequestFieldTags = new uint[] { 10 };
+ public static LoginRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override LoginRequest DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override LoginRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_LoginRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_LoginRequest__FieldAccessorTable; }
+ }
+
+ public const int UserNameFieldNumber = 1;
+ private bool hasUserName;
+ private string userName_ = "";
+ public bool HasUserName {
+ get { return hasUserName; }
+ }
+ public string UserName {
+ get { return userName_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasUserName) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _loginRequestFieldNames;
+ if (hasUserName) {
+ output.WriteString(1, field_names[0], UserName);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasUserName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, UserName);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static LoginRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static LoginRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static LoginRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static LoginRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static LoginRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static LoginRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static LoginRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static LoginRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static LoginRequest ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static LoginRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private LoginRequest MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(LoginRequest prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(LoginRequest cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private LoginRequest result;
+
+ private LoginRequest PrepareBuilder() {
+ if (resultIsReadOnly) {
+ LoginRequest original = result;
+ result = new LoginRequest();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override LoginRequest MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.LoginRequest.Descriptor; }
+ }
+
+ public override LoginRequest DefaultInstanceForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.LoginRequest.DefaultInstance; }
+ }
+
+ public override LoginRequest BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is LoginRequest) {
+ return MergeFrom((LoginRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(LoginRequest other) {
+ if (other == global::com.BlazeServer.Messages.MessageProtos.LoginRequest.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasUserName) {
+ UserName = other.UserName;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_loginRequestFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _loginRequestFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasUserName = input.ReadString(ref result.userName_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasUserName {
+ get { return result.hasUserName; }
+ }
+ public string UserName {
+ get { return result.UserName; }
+ set { SetUserName(value); }
+ }
+ public Builder SetUserName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasUserName = true;
+ result.userName_ = value;
+ return this;
+ }
+ public Builder ClearUserName() {
+ PrepareBuilder();
+ result.hasUserName = false;
+ result.userName_ = "";
+ return this;
+ }
+ }
+ static LoginRequest() {
+ object.ReferenceEquals(global::com.BlazeServer.Messages.MessageProtos.Messages.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class CreateRoomRequest : pb::GeneratedMessage {
+ private CreateRoomRequest() { }
+ private static readonly CreateRoomRequest defaultInstance = new CreateRoomRequest().MakeReadOnly();
+ private static readonly string[] _createRoomRequestFieldNames = new string[] { "room_name" };
+ private static readonly uint[] _createRoomRequestFieldTags = new uint[] { 10 };
+ public static CreateRoomRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override CreateRoomRequest DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override CreateRoomRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_CreateRoomRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_CreateRoomRequest__FieldAccessorTable; }
+ }
+
+ public const int RoomNameFieldNumber = 1;
+ private bool hasRoomName;
+ private string roomName_ = "";
+ public bool HasRoomName {
+ get { return hasRoomName; }
+ }
+ public string RoomName {
+ get { return roomName_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasRoomName) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _createRoomRequestFieldNames;
+ if (hasRoomName) {
+ output.WriteString(1, field_names[0], RoomName);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRoomName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, RoomName);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static CreateRoomRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CreateRoomRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CreateRoomRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CreateRoomRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CreateRoomRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CreateRoomRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static CreateRoomRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static CreateRoomRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static CreateRoomRequest ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CreateRoomRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private CreateRoomRequest MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(CreateRoomRequest prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(CreateRoomRequest cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private CreateRoomRequest result;
+
+ private CreateRoomRequest PrepareBuilder() {
+ if (resultIsReadOnly) {
+ CreateRoomRequest original = result;
+ result = new CreateRoomRequest();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override CreateRoomRequest MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.CreateRoomRequest.Descriptor; }
+ }
+
+ public override CreateRoomRequest DefaultInstanceForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.CreateRoomRequest.DefaultInstance; }
+ }
+
+ public override CreateRoomRequest BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is CreateRoomRequest) {
+ return MergeFrom((CreateRoomRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(CreateRoomRequest other) {
+ if (other == global::com.BlazeServer.Messages.MessageProtos.CreateRoomRequest.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRoomName) {
+ RoomName = other.RoomName;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_createRoomRequestFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _createRoomRequestFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasRoomName = input.ReadString(ref result.roomName_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasRoomName {
+ get { return result.hasRoomName; }
+ }
+ public string RoomName {
+ get { return result.RoomName; }
+ set { SetRoomName(value); }
+ }
+ public Builder SetRoomName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasRoomName = true;
+ result.roomName_ = value;
+ return this;
+ }
+ public Builder ClearRoomName() {
+ PrepareBuilder();
+ result.hasRoomName = false;
+ result.roomName_ = "";
+ return this;
+ }
+ }
+ static CreateRoomRequest() {
+ object.ReferenceEquals(global::com.BlazeServer.Messages.MessageProtos.Messages.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class LoginResponse : pb::GeneratedMessage {
+ private LoginResponse() { }
+ private static readonly LoginResponse defaultInstance = new LoginResponse().MakeReadOnly();
+ private static readonly string[] _loginResponseFieldNames = new string[] { "success" };
+ private static readonly uint[] _loginResponseFieldTags = new uint[] { 8 };
+ public static LoginResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override LoginResponse DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override LoginResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_LoginResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_LoginResponse__FieldAccessorTable; }
+ }
+
+ public const int SuccessFieldNumber = 1;
+ private bool hasSuccess;
+ private bool success_;
+ public bool HasSuccess {
+ get { return hasSuccess; }
+ }
+ public bool Success {
+ get { return success_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasSuccess) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _loginResponseFieldNames;
+ if (hasSuccess) {
+ output.WriteBool(1, field_names[0], Success);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasSuccess) {
+ size += pb::CodedOutputStream.ComputeBoolSize(1, Success);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static LoginResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static LoginResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static LoginResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static LoginResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static LoginResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static LoginResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static LoginResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static LoginResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static LoginResponse ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static LoginResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private LoginResponse MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(LoginResponse prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(LoginResponse cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private LoginResponse result;
+
+ private LoginResponse PrepareBuilder() {
+ if (resultIsReadOnly) {
+ LoginResponse original = result;
+ result = new LoginResponse();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override LoginResponse MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.LoginResponse.Descriptor; }
+ }
+
+ public override LoginResponse DefaultInstanceForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.LoginResponse.DefaultInstance; }
+ }
+
+ public override LoginResponse BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is LoginResponse) {
+ return MergeFrom((LoginResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(LoginResponse other) {
+ if (other == global::com.BlazeServer.Messages.MessageProtos.LoginResponse.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasSuccess) {
+ Success = other.Success;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_loginResponseFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _loginResponseFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasSuccess = input.ReadBool(ref result.success_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasSuccess {
+ get { return result.hasSuccess; }
+ }
+ public bool Success {
+ get { return result.Success; }
+ set { SetSuccess(value); }
+ }
+ public Builder SetSuccess(bool value) {
+ PrepareBuilder();
+ result.hasSuccess = true;
+ result.success_ = value;
+ return this;
+ }
+ public Builder ClearSuccess() {
+ PrepareBuilder();
+ result.hasSuccess = false;
+ result.success_ = false;
+ return this;
+ }
+ }
+ static LoginResponse() {
+ object.ReferenceEquals(global::com.BlazeServer.Messages.MessageProtos.Messages.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class TestMessage : pb::GeneratedMessage {
+ private TestMessage() { }
+ private static readonly TestMessage defaultInstance = new TestMessage().MakeReadOnly();
+ private static readonly string[] _testMessageFieldNames = new string[] { "message_id" };
+ private static readonly uint[] _testMessageFieldTags = new uint[] { 8 };
+ public static TestMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_TestMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::com.BlazeServer.Messages.MessageProtos.Messages.internal__static_message_TestMessage__FieldAccessorTable; }
+ }
+
+ public const int MessageIdFieldNumber = 1;
+ private bool hasMessageId;
+ private int messageId_;
+ public bool HasMessageId {
+ get { return hasMessageId; }
+ }
+ public int MessageId {
+ get { return messageId_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasMessageId) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _testMessageFieldNames;
+ if (hasMessageId) {
+ output.WriteInt32(1, field_names[0], MessageId);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasMessageId) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, MessageId);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMessage result;
+
+ private TestMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMessage original = result;
+ result = new TestMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.TestMessage.Descriptor; }
+ }
+
+ public override TestMessage DefaultInstanceForType {
+ get { return global::com.BlazeServer.Messages.MessageProtos.TestMessage.DefaultInstance; }
+ }
+
+ public override TestMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMessage) {
+ return MergeFrom((TestMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMessage other) {
+ if (other == global::com.BlazeServer.Messages.MessageProtos.TestMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasMessageId) {
+ MessageId = other.MessageId;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasMessageId = input.ReadInt32(ref result.messageId_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasMessageId {
+ get { return result.hasMessageId; }
+ }
+ public int MessageId {
+ get { return result.MessageId; }
+ set { SetMessageId(value); }
+ }
+ public Builder SetMessageId(int value) {
+ PrepareBuilder();
+ result.hasMessageId = true;
+ result.messageId_ = value;
+ return this;
+ }
+ public Builder ClearMessageId() {
+ PrepareBuilder();
+ result.hasMessageId = false;
+ result.messageId_ = 0;
+ return this;
+ }
+ }
+ static TestMessage() {
+ object.ReferenceEquals(global::com.BlazeServer.Messages.MessageProtos.Messages.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/SocketService.Messages/Properties/AssemblyInfo.cs b/SocketServer.Messages/Properties/AssemblyInfo.cs
similarity index 100%
rename from SocketService.Messages/Properties/AssemblyInfo.cs
rename to SocketServer.Messages/Properties/AssemblyInfo.cs
diff --git a/SocketService.Messages/ServerConnectionResponse.cs b/SocketServer.Messages/ServerConnectionResponse.cs
similarity index 74%
rename from SocketService.Messages/ServerConnectionResponse.cs
rename to SocketServer.Messages/ServerConnectionResponse.cs
index 558e499..4cbe7d4 100644
--- a/SocketService.Messages/ServerConnectionResponse.cs
+++ b/SocketServer.Messages/ServerConnectionResponse.cs
@@ -3,20 +3,16 @@
using System.Linq;
using System.Text;
using SocketServer.Shared.Messaging;
-using ProtoBuf;
namespace SocketServer.Messages
{
- [ProtoContract]
- public class ServerConnectionResponse : IMessage
+ public class ServerConnectionResponse : IValidatedMessage
{
- [ProtoMember(1)]
public string MessageID
{
get; set;
}
- [ProtoMember(2)]
public DiffieHellmanInfo DiffieHellmanInfo
{
get;
diff --git a/SocketService.Messages/SocketServer.Messages.csproj b/SocketServer.Messages/SocketServer.Messages.csproj
similarity index 88%
rename from SocketService.Messages/SocketServer.Messages.csproj
rename to SocketServer.Messages/SocketServer.Messages.csproj
index 1da63d0..4013e1d 100644
--- a/SocketService.Messages/SocketServer.Messages.csproj
+++ b/SocketServer.Messages/SocketServer.Messages.csproj
@@ -65,8 +65,11 @@
false
-
- E:\dev\Libraries\protobufs\net40\protobuf-net.dll
+
+ E:\dev\Libraries\protobuf\csharp\Debug\v4.0\Google.ProtocolBuffers.dll
+
+
+ E:\dev\Libraries\protobuf\csharp\Debug\v4.0\Google.ProtocolBuffers.Serialization.dll
@@ -79,17 +82,20 @@
-
+
-
-
+
{7C9013CF-CEC4-4F7D-B80D-C6FA2E243CF1}
SocketServer.Shared
+
+
+
+
-
@@ -491,10 +432,6 @@
-
-
-
-
diff --git a/SocketService.Core/Data/ServerDataModel.edmx.sqlce b/SocketServer/Data/ServerDataModel.edmx.sqlce
similarity index 89%
rename from SocketService.Core/Data/ServerDataModel.edmx.sqlce
rename to SocketServer/Data/ServerDataModel.edmx.sqlce
index 8c6adc3..4c9c4dc 100644
--- a/SocketService.Core/Data/ServerDataModel.edmx.sqlce
+++ b/SocketServer/Data/ServerDataModel.edmx.sqlce
@@ -2,8 +2,8 @@
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server Compact Edition
-- --------------------------------------------------
--- Date Created: 09/26/2011 18:46:02
--- Generated from EDMX file: C:\Users\MonkeyBreath\Desktop\SocketServer\SocketService.Framework\Data\ServerDataModel.edmx
+-- Date Created: 02/19/2012 00:42:49
+-- Generated from EDMX file: C:\Users\MonkeyBreath\Desktop\SocketServer\SocketService\Data\ServerDataModel.edmx
-- --------------------------------------------------
@@ -12,8 +12,6 @@
-- NOTE: if the constraint does not exist, an ignorable error will be reported.
-- --------------------------------------------------
- ALTER TABLE [Rooms] DROP CONSTRAINT [FK_ZoneRoom];
-GO
ALTER TABLE [Users] DROP CONSTRAINT [FK_RoomUser];
GO
ALTER TABLE [Variables_RoomVariable] DROP CONSTRAINT [FK_RoomRoomVariable];
@@ -34,8 +32,6 @@ GO
-- NOTE: if the table does not exist, an ignorable error will be reported.
-- --------------------------------------------------
- DROP TABLE [Zones];
-GO
DROP TABLE [Rooms];
GO
DROP TABLE [Users];
@@ -55,13 +51,6 @@ GO
-- Creating all tables
-- --------------------------------------------------
--- Creating table 'Zones'
-CREATE TABLE [Zones] (
- [Id] bigint NOT NULL,
- [Name] nvarchar(4000) NOT NULL
-);
-GO
-
-- Creating table 'Rooms'
CREATE TABLE [Rooms] (
[Id] bigint NOT NULL,
@@ -70,7 +59,7 @@ CREATE TABLE [Rooms] (
[Capacity] int NOT NULL,
[IsPrivate] bit NOT NULL,
[Password] nvarchar(4000) NOT NULL,
- [ZoneId] bigint NOT NULL
+ [ZoneName] nvarchar(4000) NULL
);
GO
@@ -79,7 +68,7 @@ CREATE TABLE [Users] (
[Id] bigint NOT NULL,
[Name] nvarchar(4000) NOT NULL,
[ClientKey] uniqueidentifier NOT NULL,
- [RoomId] bigint NOT NULL
+ [RoomId] bigint NULL
);
GO
@@ -125,12 +114,6 @@ GO
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------
--- Creating primary key on [Id] in table 'Zones'
-ALTER TABLE [Zones]
-ADD CONSTRAINT [PK_Zones]
- PRIMARY KEY ([Id] );
-GO
-
-- Creating primary key on [Id] in table 'Rooms'
ALTER TABLE [Rooms]
ADD CONSTRAINT [PK_Rooms]
@@ -177,20 +160,6 @@ GO
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------
--- Creating foreign key on [ZoneId] in table 'Rooms'
-ALTER TABLE [Rooms]
-ADD CONSTRAINT [FK_ZoneRoom]
- FOREIGN KEY ([ZoneId])
- REFERENCES [Zones]
- ([Id])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
-
--- Creating non-clustered index for FOREIGN KEY 'FK_ZoneRoom'
-CREATE INDEX [IX_FK_ZoneRoom]
-ON [Rooms]
- ([ZoneId]);
-GO
-
-- Creating foreign key on [RoomId] in table 'Users'
ALTER TABLE [Users]
ADD CONSTRAINT [FK_RoomUser]
diff --git a/SocketService/Data/User.cs b/SocketServer/Data/User.cs
similarity index 100%
rename from SocketService/Data/User.cs
rename to SocketServer/Data/User.cs
diff --git a/SocketService/Data/Zone.cs b/SocketServer/Data/Zone.cs
similarity index 100%
rename from SocketService/Data/Zone.cs
rename to SocketServer/Data/Zone.cs
diff --git a/SocketService/Handler/CreateRoomRequestHandler.cs b/SocketServer/Handler/CreateRoomRequestHandler.cs
similarity index 100%
rename from SocketService/Handler/CreateRoomRequestHandler.cs
rename to SocketServer/Handler/CreateRoomRequestHandler.cs
diff --git a/SocketService/Handler/CreateRoomVariableRequestHandler.cs b/SocketServer/Handler/CreateRoomVariableRequestHandler.cs
similarity index 100%
rename from SocketService/Handler/CreateRoomVariableRequestHandler.cs
rename to SocketServer/Handler/CreateRoomVariableRequestHandler.cs
diff --git a/SocketService/Handler/DeleteRoomVariableRequestHandler.cs b/SocketServer/Handler/DeleteRoomVariableRequestHandler.cs
similarity index 100%
rename from SocketService/Handler/DeleteRoomVariableRequestHandler.cs
rename to SocketServer/Handler/DeleteRoomVariableRequestHandler.cs
diff --git a/SocketServer/Handler/EnableEncryptionHandler.cs b/SocketServer/Handler/EnableEncryptionHandler.cs
new file mode 100644
index 0000000..8fd1633
--- /dev/null
+++ b/SocketServer/Handler/EnableEncryptionHandler.cs
@@ -0,0 +1,53 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using SocketServer.Messages;
+using SocketServer.Shared.Network;
+using Org.BouncyCastle.Crypto.Generators;
+using Org.BouncyCastle.Crypto;
+using Org.BouncyCastle.Security;
+using Org.BouncyCastle.Crypto.Parameters;
+using SocketServer.Crypto;
+using SocketServer.Shared.Messaging;
+using com.BlazeServer.Messages.MessageProtos;
+using Google.ProtocolBuffers;
+
+namespace SocketServer.Handler
+{
+ public class EnableEncryptionHandler : IRequestHandler
+ {
+ public void HandleRequest(EnableEncryptionRequest request, ClientConnection connection)
+ {
+ EnableEncryptionResponse.Builder newResponse =
+ EnableEncryptionResponse.CreateBuilder();
+
+ newResponse
+ .SetMessageId(1)
+ .SetSuccess(true);
+
+ newResponse.SetPublickey(
+ ByteString.CopyFrom(
+ connection
+ .ServerAuthority
+ .GenerateEncodedPublicKeyInfo()));
+
+ EnableEncryptionResponse response = newResponse.Build();
+ connection.Send(response);
+
+ if (request.Enable)
+ {
+ ((ProtoBuffEnvelope)connection.Envelope)
+ .EnableEncryption(
+ connection.ServerAuthority,
+ request.Publickey.ToArray());
+
+ }
+ else
+ {
+ ((ProtoBuffEnvelope)connection.Envelope).DisableEncryption();
+ }
+
+ }
+ }
+}
diff --git a/SocketService/Handler/GetCARequestHandler.cs b/SocketServer/Handler/GetCARequestHandler.cs
similarity index 100%
rename from SocketService/Handler/GetCARequestHandler.cs
rename to SocketServer/Handler/GetCARequestHandler.cs
diff --git a/SocketService/Handler/GetKeyParametersRequestHandler.cs b/SocketServer/Handler/GetKeyParametersRequestHandler.cs
similarity index 100%
rename from SocketService/Handler/GetKeyParametersRequestHandler.cs
rename to SocketServer/Handler/GetKeyParametersRequestHandler.cs
diff --git a/SocketService/Handler/GetRoomVariableRequestHandler.cs b/SocketServer/Handler/GetRoomVariableRequestHandler.cs
similarity index 100%
rename from SocketService/Handler/GetRoomVariableRequestHandler.cs
rename to SocketServer/Handler/GetRoomVariableRequestHandler.cs
diff --git a/SocketService/Handler/IRequestHandler.cs b/SocketServer/Handler/IRequestHandler.cs
similarity index 100%
rename from SocketService/Handler/IRequestHandler.cs
rename to SocketServer/Handler/IRequestHandler.cs
diff --git a/SocketService/Handler/ListUsersInRoomRequestHandler.cs b/SocketServer/Handler/ListUsersInRoomRequestHandler.cs
similarity index 100%
rename from SocketService/Handler/ListUsersInRoomRequestHandler.cs
rename to SocketServer/Handler/ListUsersInRoomRequestHandler.cs
diff --git a/SocketServer/Handler/LoginRequestHandler.cs b/SocketServer/Handler/LoginRequestHandler.cs
new file mode 100644
index 0000000..28794a7
--- /dev/null
+++ b/SocketServer/Handler/LoginRequestHandler.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Linq;
+using SocketServer.Command;
+using com.BlazeServer.Messages.MessageProtos;
+using SocketServer.Shared.Network;
+using SocketServer.Repository;
+using SocketServer.Data;
+using SocketServer.Actions;
+
+namespace SocketServer.Handler
+{
+ public class LoginRequestHandler : IRequestHandler
+ {
+ public void HandleRequest(LoginRequest request, ClientConnection connection)
+ {
+ var success = false;
+
+ // check if user exists
+ var user = UserRepository.Instance.Query(u => u.Name == request.UserName).FirstOrDefault();
+ if (user == null)
+ {
+ user = new User() { Name = request.UserName };
+ UserRepository.Instance.Add(user);
+
+ success = true;
+ }
+
+ LoginResponse.Builder newResponse = LoginResponse.CreateBuilder();
+ newResponse.SetSuccess(success);
+
+ connection.Send(newResponse.Build());
+ }
+ }
+}
diff --git a/SocketService/Handler/MessageOneHandler.cs b/SocketServer/Handler/MessageOneHandler.cs
similarity index 100%
rename from SocketService/Handler/MessageOneHandler.cs
rename to SocketServer/Handler/MessageOneHandler.cs
diff --git a/SocketService/Handler/NegotiateKeysRequestHandler.cs b/SocketServer/Handler/NegotiateKeysRequestHandler.cs
similarity index 100%
rename from SocketService/Handler/NegotiateKeysRequestHandler.cs
rename to SocketServer/Handler/NegotiateKeysRequestHandler.cs
diff --git a/SocketService/Handler/PublicMessageRequestHandler.cs b/SocketServer/Handler/PublicMessageRequestHandler.cs
similarity index 100%
rename from SocketService/Handler/PublicMessageRequestHandler.cs
rename to SocketServer/Handler/PublicMessageRequestHandler.cs
diff --git a/SocketService/Handler/ServiceHandler.cs b/SocketServer/Handler/ServiceHandler.cs
similarity index 100%
rename from SocketService/Handler/ServiceHandler.cs
rename to SocketServer/Handler/ServiceHandler.cs
diff --git a/SocketService/Handler/UpdateRoomVariableRequestHandler.cs b/SocketServer/Handler/UpdateRoomVariableRequestHandler.cs
similarity index 100%
rename from SocketService/Handler/UpdateRoomVariableRequestHandler.cs
rename to SocketServer/Handler/UpdateRoomVariableRequestHandler.cs
diff --git a/SocketService/Messaging/ConnectionResponse.cs b/SocketServer/Messaging/ConnectionResponse.cs
similarity index 100%
rename from SocketService/Messaging/ConnectionResponse.cs
rename to SocketServer/Messaging/ConnectionResponse.cs
diff --git a/SocketService/Messaging/DHKeys.cs b/SocketServer/Messaging/DHKeys.cs
similarity index 100%
rename from SocketService/Messaging/DHKeys.cs
rename to SocketServer/Messaging/DHKeys.cs
diff --git a/SocketService/Messaging/EncryptedMessageEnvelope.cs b/SocketServer/Messaging/EncryptedMessageEnvelope.cs
similarity index 100%
rename from SocketService/Messaging/EncryptedMessageEnvelope.cs
rename to SocketServer/Messaging/EncryptedMessageEnvelope.cs
diff --git a/SocketService/Messaging/IMessage.cs b/SocketServer/Messaging/IMessage.cs
similarity index 100%
rename from SocketService/Messaging/IMessage.cs
rename to SocketServer/Messaging/IMessage.cs
diff --git a/SocketService/Messaging/MessageEnvelope.cs b/SocketServer/Messaging/MessageEnvelope.cs
similarity index 100%
rename from SocketService/Messaging/MessageEnvelope.cs
rename to SocketServer/Messaging/MessageEnvelope.cs
diff --git a/SocketService/Messaging/PlainEnvelope.cs b/SocketServer/Messaging/PlainEnvelope.cs
similarity index 100%
rename from SocketService/Messaging/PlainEnvelope.cs
rename to SocketServer/Messaging/PlainEnvelope.cs
diff --git a/SocketService/Net/Channel.cs b/SocketServer/Net/Channel.cs
similarity index 100%
rename from SocketService/Net/Channel.cs
rename to SocketServer/Net/Channel.cs
diff --git a/SocketService/Net/Client/ClientBuffer.cs b/SocketServer/Net/Client/ClientBuffer.cs
similarity index 100%
rename from SocketService/Net/Client/ClientBuffer.cs
rename to SocketServer/Net/Client/ClientBuffer.cs
diff --git a/SocketService/Net/Client/ClientConnectArgs.cs.orig b/SocketServer/Net/Client/ClientConnectArgs.cs.orig
similarity index 100%
rename from SocketService/Net/Client/ClientConnectArgs.cs.orig
rename to SocketServer/Net/Client/ClientConnectArgs.cs.orig
diff --git a/SocketService/Net/Client/ClientConnection.cs b/SocketServer/Net/Client/ClientConnection.cs
similarity index 100%
rename from SocketService/Net/Client/ClientConnection.cs
rename to SocketServer/Net/Client/ClientConnection.cs
diff --git a/SocketService/Net/Client/ClientDisconnectedArgs.cs.orig b/SocketServer/Net/Client/ClientDisconnectedArgs.cs.orig
similarity index 100%
rename from SocketService/Net/Client/ClientDisconnectedArgs.cs.orig
rename to SocketServer/Net/Client/ClientDisconnectedArgs.cs.orig
diff --git a/SocketService/Net/Client/ConnectArgs.cs b/SocketServer/Net/Client/ConnectArgs.cs
similarity index 100%
rename from SocketService/Net/Client/ConnectArgs.cs
rename to SocketServer/Net/Client/ConnectArgs.cs
diff --git a/SocketService/Net/Client/Connection.cs b/SocketServer/Net/Client/Connection.cs
similarity index 100%
rename from SocketService/Net/Client/Connection.cs
rename to SocketServer/Net/Client/Connection.cs
diff --git a/SocketService/Net/Client/ConnectionRepository.cs b/SocketServer/Net/Client/ConnectionRepository.cs
similarity index 100%
rename from SocketService/Net/Client/ConnectionRepository.cs
rename to SocketServer/Net/Client/ConnectionRepository.cs
diff --git a/SocketService/Net/Client/DataRecievedArgs.cs b/SocketServer/Net/Client/DataRecievedArgs.cs
similarity index 100%
rename from SocketService/Net/Client/DataRecievedArgs.cs
rename to SocketServer/Net/Client/DataRecievedArgs.cs
diff --git a/SocketService/Net/Client/DisconnectedArgs.cs b/SocketServer/Net/Client/DisconnectedArgs.cs
similarity index 100%
rename from SocketService/Net/Client/DisconnectedArgs.cs
rename to SocketServer/Net/Client/DisconnectedArgs.cs
diff --git a/SocketService/Net/Client/ISocketServer.cs b/SocketServer/Net/Client/ISocketServer.cs
similarity index 100%
rename from SocketService/Net/Client/ISocketServer.cs
rename to SocketServer/Net/Client/ISocketServer.cs
diff --git a/SocketService/Net/Client/ISocketServer.cs.orig b/SocketServer/Net/Client/ISocketServer.cs.orig
similarity index 100%
rename from SocketService/Net/Client/ISocketServer.cs.orig
rename to SocketServer/Net/Client/ISocketServer.cs.orig
diff --git a/SocketService/Net/Client/ProtocolState.cs b/SocketServer/Net/Client/ProtocolState.cs
similarity index 100%
rename from SocketService/Net/Client/ProtocolState.cs
rename to SocketServer/Net/Client/ProtocolState.cs
diff --git a/SocketService/Net/Client/ServerMessage.cs b/SocketServer/Net/Client/ServerMessage.cs
similarity index 100%
rename from SocketService/Net/Client/ServerMessage.cs
rename to SocketServer/Net/Client/ServerMessage.cs
diff --git a/SocketService/Net/Client/SocketDataRecievedArgs.cs.orig b/SocketServer/Net/Client/SocketDataRecievedArgs.cs.orig
similarity index 100%
rename from SocketService/Net/Client/SocketDataRecievedArgs.cs.orig
rename to SocketServer/Net/Client/SocketDataRecievedArgs.cs.orig
diff --git a/SocketService/Net/Client/SocketServer.cs.orig b/SocketServer/Net/Client/SocketServer.cs.orig
similarity index 100%
rename from SocketService/Net/Client/SocketServer.cs.orig
rename to SocketServer/Net/Client/SocketServer.cs.orig
diff --git a/SocketService/Net/ClientRequestEventArgs.cs b/SocketServer/Net/ClientRequestEventArgs.cs
similarity index 100%
rename from SocketService/Net/ClientRequestEventArgs.cs
rename to SocketServer/Net/ClientRequestEventArgs.cs
diff --git a/NewSocketServer/INetworkListener.cs b/SocketServer/Net/INetworkListener.cs
similarity index 100%
rename from NewSocketServer/INetworkListener.cs
rename to SocketServer/Net/INetworkListener.cs
diff --git a/NewSocketServer/INetworkTransport.cs b/SocketServer/Net/INetworkTransport.cs
similarity index 100%
rename from NewSocketServer/INetworkTransport.cs
rename to SocketServer/Net/INetworkTransport.cs
diff --git a/SocketService/Net/ISocketServer.cs b/SocketServer/Net/ISocketServer.cs
similarity index 100%
rename from SocketService/Net/ISocketServer.cs
rename to SocketServer/Net/ISocketServer.cs
diff --git a/SocketService/Net/MessageEventArgs.cs b/SocketServer/Net/MessageEventArgs.cs
similarity index 100%
rename from SocketService/Net/MessageEventArgs.cs
rename to SocketServer/Net/MessageEventArgs.cs
diff --git a/SocketService/Net/SocketListener.cs b/SocketServer/Net/SocketListener.cs
similarity index 100%
rename from SocketService/Net/SocketListener.cs
rename to SocketServer/Net/SocketListener.cs
diff --git a/SocketServer/Net/SocketManager.cs b/SocketServer/Net/SocketManager.cs
new file mode 100644
index 0000000..12e09b2
--- /dev/null
+++ b/SocketServer/Net/SocketManager.cs
@@ -0,0 +1,150 @@
+using System;
+using System.IO;
+using System.Linq;
+using System.Configuration;
+using System.Reflection;
+using log4net;
+using SocketServer.Command;
+using SocketServer.Configuration;
+using SocketServer.Net.Client;
+using SocketServer.Crypto;
+using System.Xml.Serialization;
+using SocketServer.Shared.Header;
+using SocketServer.Shared;
+using System.Collections.Generic;
+using SocketServer.Shared.Serialization;
+using SocketServer.Shared.Reflection;
+using SocketServer.Shared.Network;
+using SocketServer.Repository;
+using SocketServer.Messages;
+using Google.ProtocolBuffers.DescriptorProtos;
+using SocketServer.Shared.Messaging;
+using com.BlazeServer.Messages.MessageProtos;
+using Google.ProtocolBuffers;
+
+namespace SocketServer.Net
+{
+ public class SocketManager //: IServerContext
+ {
+ private static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ private Dictionary requestHandlers = new Dictionary();
+
+ private readonly object handlerLock = new object();
+
+ private readonly SocketServer _socketServer;
+
+ //public event EventHandler ClientRequestReceived;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public SocketManager(SocketServerConfiguration config)
+ {
+ LoadHandlers(config);
+
+ // TODO: Move filename into configuration
+ _socketServer = new SocketServer(new MessageRegistry("messages.desc"));
+
+ _socketServer.ClientConnected += SocketServerClientConnecting;
+ _socketServer.ClientDisconnected += SocketServerClientDisconnecting;
+ _socketServer.MessageReceived += new EventHandler(socketServer_MessageReceived);
+ }
+
+ void socketServer_MessageReceived(object sender, MessageEventArgs e)
+ {
+ lock (handlerLock)
+ {
+ if (requestHandlers.ContainsKey(e.Message.DescriptorForType.FullName))
+ {
+ ServiceHandlerRepository
+ .Instance
+ .InvokeHandler(
+ e.Message.DescriptorForType.FullName,
+ e.Message,
+ e.ClientConnection);
+ }
+ }
+ }
+
+ protected void SocketServerClientConnecting(object sender, ConnectArgs e)
+ {
+ Logger.InfoFormat("Client {0} connecting from {1}", e.ClientId, e.RemoteAddress);
+
+ e.Connection.ServerAuthority
+ = ServerAuthorityFactory.CreateServerAuthority();
+
+ ServerConnectionResponse.Builder newResponse = ServerConnectionResponse.CreateBuilder();
+ ServerConnectionResponse.Types.KeyParameters.Builder keyBuilder = ServerConnectionResponse.Types.KeyParameters.CreateBuilder();
+
+ keyBuilder.SetP(e.Connection.ServerAuthority.P.ToString(16));
+ keyBuilder.SetG(e.Connection.ServerAuthority.G.ToString(16));
+
+ newResponse.SetParameters(keyBuilder.Build());
+ newResponse.SetMessageId(23);
+ e.Connection.Send(newResponse.Build());
+ }
+
+ protected void SocketServerClientDisconnecting(object sender, DisconnectedArgs e)
+ {
+ MSMQQueueWrapper.QueueCommand(new LogoutUserCommand(e.ClientId));
+ }
+
+ //protected virtual void OnClientRequestReceived(Guid clientId, RequestHeader header, object request)
+ //{
+ // EventHandler clientRequestReceived = ClientRequestReceived;
+ // if (clientRequestReceived != null)
+ // {
+ // var args = new ClientRequestEventArgs(clientId, header, request);
+ // clientRequestReceived(this, args);
+ // }
+ //}
+
+ ///
+ /// Starts the server.
+ ///
+ public void StartServer()
+ {
+ SocketServerConfiguration configuration = null;
+ try
+ {
+ configuration = ServerConfigurationHelper.GetServerConfiguration();
+ }
+ catch (Exception exception)
+ {
+ Logger.Error(exception.ToString());
+ }
+
+ if (configuration != null)
+ {
+ MSMQQueueWrapper.QueueCommand(new ServerStartingCommand());
+
+ _socketServer.StartServer(configuration.ListenPort);
+
+ Logger.InfoFormat("Server started and listening on {0}", configuration.ListenPort);
+ }
+ }
+
+ ///
+ /// Stops the server.
+ ///
+ public void StopServer()
+ {
+ _socketServer.StopServer();
+ }
+
+ //private static void ParseRequest(Guid clientId, byte[] requestData)
+ //{
+ // MSMQQueueWrapper.QueueCommand(new ParseRequestCommand(clientId, requestData));
+ //}
+
+
+ private void LoadHandlers(SocketServerConfiguration config)
+ {
+ foreach (RequestHandlerConfigurationElement element in config.Handlers)
+ {
+ // try to find enum type first
+ requestHandlers.Add(element.Key, element);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/SocketService/Net/SocketRepository.cs b/SocketServer/Net/SocketRepository.cs
similarity index 100%
rename from SocketService/Net/SocketRepository.cs
rename to SocketServer/Net/SocketRepository.cs
diff --git a/SocketServer/Net/SocketServer.cs b/SocketServer/Net/SocketServer.cs
new file mode 100644
index 0000000..9040a2e
--- /dev/null
+++ b/SocketServer/Net/SocketServer.cs
@@ -0,0 +1,235 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Reflection;
+using System.Threading;
+using SocketServer.Net.Client;
+using SocketServer.Shared.Sockets;
+using log4net;
+using SocketServer.Shared;
+using SocketServer.Crypto;
+using Org.BouncyCastle.Crypto.Generators;
+using Org.BouncyCastle.Security;
+using Org.BouncyCastle.Crypto;
+using Org.BouncyCastle.Crypto.Parameters;
+using SocketServer.Shared.Messaging;
+using SocketServer.Shared.Network;
+using Google.ProtocolBuffers.DescriptorProtos;
+using System.IO;
+
+namespace SocketServer.Net
+{
+ public class SocketServer
+ {
+ private static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+
+ private readonly object clientSync = new object();
+ //private readonly Mutex _clientListLock = new Mutex();
+
+ private readonly Dictionary _connectionList = new Dictionary();
+ private readonly ManualResetEvent _stopEvent = new ManualResetEvent(false);
+
+ private bool _stopped = true;
+
+ private readonly INetworkListener listener;
+
+ private readonly MessageRegistry registry;
+
+ public SocketServer(IPAddress address, MessageRegistry registry)
+ {
+ listener = new SocketListener(address);
+ this.registry = registry;
+ }
+
+ public SocketServer(MessageRegistry registry)
+ {
+ listener = new SocketListener();
+ this.registry = registry;
+ }
+
+
+ ///
+ /// Gets or sets a value indicating whether this instance is stopped.
+ ///
+ ///
+ /// true if this instance is stopped; otherwise, false.
+ ///
+ public bool IsStopped
+ {
+ get
+ {
+ Thread.MemoryBarrier();
+ return _stopped;
+ }
+
+ set
+ {
+ _stopped = value;
+ Thread.MemoryBarrier();
+ }
+ }
+
+ #region Events
+
+ ///
+ /// Raised when a Channel has disconnected remotely
+ ///
+ public event EventHandler ClientConnected;
+
+ ///
+ /// Raised when a new incoming Channel has established a connection.
+ ///
+ public event EventHandler ClientDisconnected;
+
+ ///
+ /// Event Raised whenever an incoming message is received
+ ///
+ public event EventHandler MessageReceived;
+
+ /////
+ ///// Event Raised whenever an outgoing message is sent
+ /////
+ //public event EventHandler MessageSent;
+
+
+ #endregion Events
+
+ public void StartServer(int serverPort)
+ {
+ if (IsStopped)
+ {
+ _stopEvent.Reset();
+
+ IsStopped = false;
+
+ listener.Initialize(serverPort);
+
+ var serverThread = new Thread(new ThreadStart(ServerMain));
+ serverThread.Start();
+ }
+ }
+
+ ///
+ /// Stops the server.
+ ///
+ public void StopServer()
+ {
+ _stopEvent.Set();
+
+ IsStopped = true;
+ DisconnectAllClients();
+ }
+
+ ///
+ /// Disconnects the client.
+ ///
+ ///
+ public void DisconnectClient(Guid clientId)
+ {
+ OnClientDisconnected(this, new DisconnectedArgs() { ClientId = clientId });
+ }
+
+ protected virtual void OnClientConnected(Guid clientId, ClientConnection connection, string remoteAddress)
+ {
+ EventHandler clientConnected = ClientConnected;
+ if (clientConnected != null)
+ {
+ var args = new ConnectArgs(clientId, connection, remoteAddress);
+ clientConnected(this, args);
+ }
+ }
+
+ protected virtual void OnClientDisconnected(object sender, DisconnectedArgs args)
+ {
+ lock (clientSync)
+ {
+ // remove channel from our internal list
+ for (int i = 0; i < _connectionList.Count; i++)
+ {
+ if (_connectionList.ContainsKey(args.ClientId))
+ {
+ _connectionList.Remove(args.ClientId);
+ break;
+ }
+ }
+
+ EventHandler handler = ClientDisconnected;
+ if (handler != null)
+ handler(this, args);
+ }
+
+ }
+
+ private void DisconnectAllClients()
+ {
+ //lock (clientSync)
+ {
+ try
+ {
+ foreach (Guid key in _connectionList.Keys)
+ {
+ _connectionList[key].Transport.Disconnect(true);
+ }
+ }
+ catch (Exception ex)
+ {
+ Logger.ErrorFormat("Error: {0}", ex.Message);
+ }
+ }
+ }
+
+ private void ServerMain()
+ {
+ listener.Start();
+
+ while (!IsStopped)
+ {
+ try
+ {
+ INetworkTransport client = listener.AcceptClient();
+
+ if (client != null)
+ {
+ ClientConnection channel = ClientConnection.CreateClientConnection(
+ new ProtoBuffEnvelope(registry),
+ client);
+
+ channel.ClientId = Guid.NewGuid();
+
+ Logger.Info("New connection from : " + client.RemoteEndPoint);
+
+ lock (clientSync)
+ {
+ _connectionList.Add(channel.ClientId, channel);
+ }
+
+ OnClientConnected(channel.ClientId, channel, client.RemoteEndPoint.ToString());
+
+ channel.ClientClosed += OnClientDisconnected;
+ channel.MessageReceived += OnMessageReceived;
+ }
+ }
+ catch (SocketException)
+ {
+ // This is here because AcceptTcpClient throws an exception when we tell it
+ // stop listening.
+ Logger.Debug("SocketServer shutdown. No longer accepting connections");
+ }
+ }
+
+ }
+
+ protected void OnMessageReceived(object sender, MessageEventArgs args)
+ {
+ EventHandler function = MessageReceived;
+ if (function != null)
+ {
+ function(sender, args);
+ }
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/SocketService/Net/SocketTransport.cs b/SocketServer/Net/SocketTransport.cs
similarity index 100%
rename from SocketService/Net/SocketTransport.cs
rename to SocketServer/Net/SocketTransport.cs
diff --git a/SocketService/Net/Sockets/ZipSocket.cs b/SocketServer/Net/Sockets/ZipSocket.cs
similarity index 100%
rename from SocketService/Net/Sockets/ZipSocket.cs
rename to SocketServer/Net/Sockets/ZipSocket.cs
diff --git a/SocketService/Program.cs b/SocketServer/Program.cs
similarity index 100%
rename from SocketService/Program.cs
rename to SocketServer/Program.cs
diff --git a/SocketService/Properties/AssemblyInfo.cs b/SocketServer/Properties/AssemblyInfo.cs
similarity index 100%
rename from SocketService/Properties/AssemblyInfo.cs
rename to SocketServer/Properties/AssemblyInfo.cs
diff --git a/SocketService/Referenced Assemblies/BouncyCastle.Crypto.dll b/SocketServer/Referenced Assemblies/BouncyCastle.Crypto.dll
similarity index 100%
rename from SocketService/Referenced Assemblies/BouncyCastle.Crypto.dll
rename to SocketServer/Referenced Assemblies/BouncyCastle.Crypto.dll
diff --git a/SocketService/Reflection/ReflectionHelper.cs b/SocketServer/Reflection/ReflectionHelper.cs
similarity index 100%
rename from SocketService/Reflection/ReflectionHelper.cs
rename to SocketServer/Reflection/ReflectionHelper.cs
diff --git a/SocketService/Repository/IDataRepository.cs b/SocketServer/Repository/IDataRepository.cs
similarity index 100%
rename from SocketService/Repository/IDataRepository.cs
rename to SocketServer/Repository/IDataRepository.cs
diff --git a/SocketService/Repository/RoomRepository.cs b/SocketServer/Repository/RoomRepository.cs
similarity index 100%
rename from SocketService/Repository/RoomRepository.cs
rename to SocketServer/Repository/RoomRepository.cs
diff --git a/SocketService/Repository/ServiceHandlerRepository.cs b/SocketServer/Repository/ServiceHandlerRepository.cs
similarity index 100%
rename from SocketService/Repository/ServiceHandlerRepository.cs
rename to SocketServer/Repository/ServiceHandlerRepository.cs
diff --git a/SocketService/Repository/UserRepository.cs b/SocketServer/Repository/UserRepository.cs
similarity index 100%
rename from SocketService/Repository/UserRepository.cs
rename to SocketServer/Repository/UserRepository.cs
diff --git a/SocketService/Repository/ZoneRepository.cs b/SocketServer/Repository/ZoneRepository.cs
similarity index 100%
rename from SocketService/Repository/ZoneRepository.cs
rename to SocketServer/Repository/ZoneRepository.cs
diff --git a/SocketService/Serialization/SerializationExtensions.cs b/SocketServer/Serialization/SerializationExtensions.cs
similarity index 100%
rename from SocketService/Serialization/SerializationExtensions.cs
rename to SocketServer/Serialization/SerializationExtensions.cs
diff --git a/SocketService/Serialization/StreamWrapper.cs b/SocketServer/Serialization/StreamWrapper.cs
similarity index 100%
rename from SocketService/Serialization/StreamWrapper.cs
rename to SocketServer/Serialization/StreamWrapper.cs
diff --git a/SocketService/ServerControlForm.Designer.cs b/SocketServer/ServerControlForm.Designer.cs
similarity index 100%
rename from SocketService/ServerControlForm.Designer.cs
rename to SocketServer/ServerControlForm.Designer.cs
diff --git a/SocketService/ServerControlForm.cs b/SocketServer/ServerControlForm.cs
similarity index 100%
rename from SocketService/ServerControlForm.cs
rename to SocketServer/ServerControlForm.cs
diff --git a/SocketService/ServerControlForm.resx b/SocketServer/ServerControlForm.resx
similarity index 100%
rename from SocketService/ServerControlForm.resx
rename to SocketServer/ServerControlForm.resx
diff --git a/SocketService/SingletonBase.cs b/SocketServer/SingletonBase.cs
similarity index 100%
rename from SocketService/SingletonBase.cs
rename to SocketServer/SingletonBase.cs
diff --git a/SocketService/SocketServer.csproj b/SocketServer/SocketServer.csproj
similarity index 91%
rename from SocketService/SocketServer.csproj
rename to SocketServer/SocketServer.csproj
index 1aab795..c1fa1cf 100644
--- a/SocketService/SocketServer.csproj
+++ b/SocketServer/SocketServer.csproj
@@ -41,6 +41,12 @@
..\References\BouncyCastle.Crypto.dll
+
+ E:\dev\Libraries\protobuf\csharp\Debug\v4.0\Google.ProtocolBuffers.dll
+
+
+ E:\dev\Libraries\protobuf\csharp\Debug\v4.0\Google.ProtocolBuffers.Serialization.dll
+
..\References\log4net.dll
@@ -69,7 +75,6 @@
-
@@ -103,7 +108,6 @@
True
-
@@ -134,7 +138,6 @@
-
Form
@@ -160,15 +163,15 @@
-
+
{4138075A-49CD-4A46-92CB-DFF64A0BB0B6}
SocketServer.Crypto
-
+
{9394CA0C-0014-4C8B-8795-3A5C45B254EE}
SocketServer.Messages
-
+
{7C9013CF-CEC4-4F7D-B80D-C6FA2E243CF1}
SocketServer.Shared
@@ -193,6 +196,9 @@
ServerDataModel.Designer.cs
+
+ Always
+
diff --git a/SocketService/SocketService.Designer.cs b/SocketServer/SocketService.Designer.cs
similarity index 100%
rename from SocketService/SocketService.Designer.cs
rename to SocketServer/SocketService.Designer.cs
diff --git a/SocketService/SocketService.cs b/SocketServer/SocketService.cs
similarity index 100%
rename from SocketService/SocketService.cs
rename to SocketServer/SocketService.cs
diff --git a/SocketService/SocketService.cs.orig b/SocketServer/SocketService.cs.orig
similarity index 100%
rename from SocketService/SocketService.cs.orig
rename to SocketServer/SocketService.cs.orig
diff --git a/SocketService/SocketService.csproj.orig b/SocketServer/SocketService.csproj.orig
similarity index 100%
rename from SocketService/SocketService.csproj.orig
rename to SocketServer/SocketService.csproj.orig
diff --git a/SocketService/SocketService.resx b/SocketServer/SocketService.resx
similarity index 100%
rename from SocketService/SocketService.resx
rename to SocketServer/SocketService.resx
diff --git a/SocketService/SocketServiceBase.cs b/SocketServer/SocketServiceBase.cs
similarity index 100%
rename from SocketService/SocketServiceBase.cs
rename to SocketServer/SocketServiceBase.cs
diff --git a/SocketService/SocketServiceInstaller.cs b/SocketServer/SocketServiceInstaller.cs
similarity index 100%
rename from SocketService/SocketServiceInstaller.cs
rename to SocketServer/SocketServiceInstaller.cs
diff --git a/SocketServer/addressbook.desc b/SocketServer/addressbook.desc
new file mode 100644
index 0000000..b4ee9f7
Binary files /dev/null and b/SocketServer/addressbook.desc differ
diff --git a/SocketService/app.config b/SocketServer/app.config
similarity index 75%
rename from SocketService/app.config
rename to SocketServer/app.config
index 74ffe34..31b8629 100644
--- a/SocketService/app.config
+++ b/SocketServer/app.config
@@ -68,21 +68,12 @@
-
-
-
-
-
+
diff --git a/SocketService/app.config.orig b/SocketServer/app.config.orig
similarity index 100%
rename from SocketService/app.config.orig
rename to SocketServer/app.config.orig
diff --git a/SocketServer/messages.desc b/SocketServer/messages.desc
new file mode 100644
index 0000000..561f750
--- /dev/null
+++ b/SocketServer/messages.desc
@@ -0,0 +1,31 @@
+
+—
+messages.protomessage"P
+EnableEncryptionRequest
+
+message_id (
+enable (
+ publickey ("R
+EnableEncryptionResponse
+
+message_id (
+success (
+ publickey ("š
+ServerConnectionResponse
+
+message_id (C
+
+parameters (2/.message.ServerConnectionResponse.KeyParameters%
+
KeyParameters
+g (
+p ( "!
+LoginRequest
+ user_name ( "&
+CreateRoomRequest
+ room_name ( "
+
LoginResponse
+success ("!
+TestMessage
+
+message_id (B)
+com.BlazeServer.MessagesB
MessageProtos
\ No newline at end of file
diff --git a/SocketService.Core/App.Config b/SocketService.Core/App.Config
deleted file mode 100644
index 4f78a04..0000000
--- a/SocketService.Core/App.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/SocketService.Core/Configuration/MessageQueueCollection.cs b/SocketService.Core/Configuration/MessageQueueCollection.cs
deleted file mode 100644
index db1d4eb..0000000
--- a/SocketService.Core/Configuration/MessageQueueCollection.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Configuration;
-
-namespace SocketServer.Core.Configuration
-{
- public class MessageQueueCollection : ConfigurationElementCollection
- {
- public MessageQueueCollection()
- {
- }
-
- public MessageQueueConfigurationElement this[int index]
- {
- get { return (MessageQueueConfigurationElement)BaseGet(index); }
- set
- {
- if (BaseGet(index) != null)
- {
- BaseRemoveAt(index);
- }
- BaseAdd(index, value);
- }
- }
-
- public void Add(MessageQueueConfigurationElement element)
- {
- BaseAdd(element);
- }
-
- public void Clear()
- {
- BaseClear();
- }
-
- protected override ConfigurationElement CreateNewElement()
- {
- return new MessageQueueConfigurationElement();
- }
-
- protected override object GetElementKey(ConfigurationElement element)
- {
- return ((MessageQueueConfigurationElement)element).QueueName;
- }
-
- public void Remove(MessageQueueConfigurationElement element)
- {
- BaseRemove(element.QueueName);
- }
-
- public void RemoveAt(int index)
- {
- BaseRemoveAt(index);
- }
-
- public void Remove(string name)
- {
- BaseRemove(name);
- }
- }
-}
diff --git a/SocketService.Core/Configuration/MessageQueueConfigurationElement.cs b/SocketService.Core/Configuration/MessageQueueConfigurationElement.cs
deleted file mode 100644
index fa121e3..0000000
--- a/SocketService.Core/Configuration/MessageQueueConfigurationElement.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Configuration;
-
-namespace SocketServer.Core.Configuration
-{
- public class MessageQueueConfigurationElement : ConfigurationElement
- {
- public MessageQueueConfigurationElement()
- {
- }
-
- public MessageQueueConfigurationElement(String queueKey, String queueName)
- {
- QueueName = queueKey;
- QueuePath = queueName;
- }
-
- [ConfigurationProperty("name", IsRequired = true)]
- public String QueueName
- {
- get
- { return (String)this["name"]; }
- set
- { this["name"] = value; }
- }
-
- [ConfigurationProperty("path", IsRequired = true)]
- public String QueuePath
- {
- get
- { return (String)this["path"]; }
- set
- { this["path"] = value; }
- }
-
- }
-}
diff --git a/SocketService.Core/Configuration/PluginInfoInstanceCollection.cs b/SocketService.Core/Configuration/PluginInfoInstanceCollection.cs
deleted file mode 100644
index 63c1e05..0000000
--- a/SocketService.Core/Configuration/PluginInfoInstanceCollection.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System.Configuration;
-
-namespace SocketServer.Core.Configuration
-{
- public class PluginInfoInstanceCollection : ConfigurationElementCollection
- {
- protected override ConfigurationElement CreateNewElement()
- {
- return new PluginInfoInstanceElement();
- }
-
- protected override object GetElementKey(ConfigurationElement element)
- {
- return ((PluginInfoInstanceElement) element).Name;
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService.Core/Configuration/PluginInfoInstanceElement.cs b/SocketService.Core/Configuration/PluginInfoInstanceElement.cs
deleted file mode 100644
index e0d4146..0000000
--- a/SocketService.Core/Configuration/PluginInfoInstanceElement.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System.Configuration;
-
-namespace SocketServer.Core.Configuration
-{
- public class PluginInfoInstanceElement : ConfigurationElement
- {
- [ConfigurationProperty("name", IsKey = true, IsRequired = true)]
- public string Name
- {
- get { return (string) base["name"]; }
- set { base["name"] = value; }
- }
-
- [ConfigurationProperty("path", IsRequired = true)]
- public string Path
- {
- get { return (string) base["path"]; }
- set { base["path"] = value; }
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService.Core/Configuration/RequestHandlerCollection.cs b/SocketService.Core/Configuration/RequestHandlerCollection.cs
deleted file mode 100644
index cf51449..0000000
--- a/SocketService.Core/Configuration/RequestHandlerCollection.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Configuration;
-
-namespace SocketServer.Core.Configuration
-{
- public class RequestHandlerCollection : ConfigurationElementCollection
- {
- public RequestHandlerCollection()
- {
- }
-
- public RequestHandlerConfigurationElement this[int index]
- {
- get { return (RequestHandlerConfigurationElement)BaseGet(index); }
- set
- {
- if (BaseGet(index) != null)
- {
- BaseRemoveAt(index);
- }
- BaseAdd(index, value);
- }
- }
-
- public void Add(RequestHandlerConfigurationElement serviceConfig)
- {
- BaseAdd(serviceConfig);
- }
-
- public void Clear()
- {
- BaseClear();
- }
-
- protected override ConfigurationElement CreateNewElement()
- {
- return new RequestHandlerConfigurationElement();
- }
-
- protected override object GetElementKey(ConfigurationElement element)
- {
- return ((RequestHandlerConfigurationElement)element).RequestType;
- }
-
- public void Remove(RequestHandlerConfigurationElement serviceConfig)
- {
- BaseRemove(serviceConfig.RequestType);
- }
-
- public void RemoveAt(int index)
- {
- BaseRemoveAt(index);
- }
-
- public void Remove(string name)
- {
- BaseRemove(name);
- }
- }
-}
diff --git a/SocketService.Core/Configuration/RequestHandlerConfigurationElement.cs b/SocketService.Core/Configuration/RequestHandlerConfigurationElement.cs
deleted file mode 100644
index f91a2cf..0000000
--- a/SocketService.Core/Configuration/RequestHandlerConfigurationElement.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Configuration;
-
-namespace SocketServer.Core.Configuration
-{
- public class RequestHandlerConfigurationElement : ConfigurationElement
- {
- public RequestHandlerConfigurationElement()
- {
- }
-
- public RequestHandlerConfigurationElement(String requestTypeTag, String requestType, String handlerType)
- {
- Key = requestTypeTag;
- HandlerType = handlerType;
- RequestType = requestType;
- }
-
- [ConfigurationProperty("key", IsRequired = true)]
- public String Key
- {
- get
- { return (String)this["key"]; }
- set
- { this["key"] = value; }
- }
-
- [ConfigurationProperty("requestType", IsRequired = true)]
- public String RequestType
- {
- get
- { return (String)this["requestType"]; }
- set
- { this["requestType"] = value; }
- }
-
- [ConfigurationProperty("handlerType", IsRequired = true)]
- public String HandlerType
- {
- get
- { return (String)this["handlerType"]; }
- set
- { this["handlerType"] = value; }
- }
- }
-}
diff --git a/SocketService.Core/Configuration/RequestHandlerConfigurationSection.cs b/SocketService.Core/Configuration/RequestHandlerConfigurationSection.cs
deleted file mode 100644
index 0bd697e..0000000
--- a/SocketService.Core/Configuration/RequestHandlerConfigurationSection.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Configuration;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SocketServer.Core.Configuration
-{
- public class RequestHandlerConfigurationSection : ConfigurationSection
- {
- [ConfigurationProperty("Handlers", IsDefaultCollection = false)]
- [ConfigurationCollection(typeof(RequestHandlerCollection),
- AddItemName = "add",
- ClearItemsName = "clear",
- RemoveItemName = "remove")]
- public RequestHandlerCollection Handlers
- {
- get
- {
- return (RequestHandlerCollection)base["Handlers"];
- }
- }
- }
-}
diff --git a/SocketService.Core/Configuration/SocketServerConfiguration.cs b/SocketService.Core/Configuration/SocketServerConfiguration.cs
deleted file mode 100644
index 8e3219a..0000000
--- a/SocketService.Core/Configuration/SocketServerConfiguration.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System.Configuration;
-
-namespace SocketServer.Core.Configuration
-{
- public class SocketServerConfiguration : ConfigurationSection
- {
- [ConfigurationProperty("Plugins", IsRequired = true, IsDefaultCollection = true)]
- public PluginInfoInstanceCollection Plugins
- {
- get { return (PluginInfoInstanceCollection) this["Plugins"]; }
- set { this["Plugins"] = value; }
- }
-
- [ConfigurationProperty("ListenPort", IsRequired = true)]
- public int ListenPort
- {
- get { return (int) this["ListenPort"]; }
- set { this["ListenPort"] = value; }
- }
-
- [ConfigurationProperty("Handlers", IsDefaultCollection = false)]
- [ConfigurationCollection(typeof(RequestHandlerCollection),
- AddItemName = "add",
- ClearItemsName = "clear",
- RemoveItemName = "remove")]
- public RequestHandlerCollection Handlers
- {
- get
- {
- return (RequestHandlerCollection)base["Handlers"];
- }
- }
-
- [ConfigurationProperty("Queues", IsDefaultCollection = false)]
- [ConfigurationCollection(typeof(MessageQueueCollection),
- AddItemName = "add",
- ClearItemsName = "clear",
- RemoveItemName = "remove")]
- public MessageQueueCollection Queues
- {
- get
- {
- return (MessageQueueCollection)base["Queues"];
- }
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService.Core/Configuration/SocketServiceConfiguration.cs b/SocketService.Core/Configuration/SocketServiceConfiguration.cs
deleted file mode 100644
index 92f9b62..0000000
--- a/SocketService.Core/Configuration/SocketServiceConfiguration.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System.Configuration;
-
-namespace SocketServer.Core.Configuration
-{
- public class SocketServiceConfiguration : ConfigurationSection
- {
- [ConfigurationProperty("Plugins", IsRequired = true, IsDefaultCollection = true)]
- public PluginInfoInstanceCollection Plugins
- {
- get { return (PluginInfoInstanceCollection) this["Plugins"]; }
- set { this["Plugins"] = value; }
- }
-
- [ConfigurationProperty("ListenPort", IsRequired = true)]
- public int ListenPort
- {
- get { return (int) this["ListenPort"]; }
- set { this["ListenPort"] = value; }
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService.Core/Data/AutoIdElement.cs b/SocketService.Core/Data/AutoIdElement.cs
deleted file mode 100644
index 95b11db..0000000
--- a/SocketService.Core/Data/AutoIdElement.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-
-namespace SocketServer.Core.Data
-{
- public class AutoIdElement
- {
- private static readonly object LockObject = new object();
-
- private static long _nextId = -1;
-
- public static long GetNextID()
- {
- lock (LockObject)
- {
- if (_nextId == -1) _nextId = DateTime.UtcNow.Ticks; else _nextId++;
- return _nextId;
- }
- }
- }
-}
diff --git a/SocketService.Core/Data/DatabaseContextFactory.cs b/SocketService.Core/Data/DatabaseContextFactory.cs
deleted file mode 100644
index 5d58db0..0000000
--- a/SocketService.Core/Data/DatabaseContextFactory.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace SocketServer.Core.Data
-{
- public class DatabaseContextFactory
- {
- private static ServerDataEntities _context;
- public static ServerDataEntities Context
- {
- get { return _context ?? (_context = new ServerDataEntities()); }
- }
- }
-}
diff --git a/SocketService.Core/Data/Room.cs b/SocketService.Core/Data/Room.cs
deleted file mode 100644
index cbbbf76..0000000
--- a/SocketService.Core/Data/Room.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace SocketServer.Core.Data
-{
- public partial class Room
- {
- public Room()
- {
- Id = AutoIdElement.GetNextID();
- }
- }
-}
diff --git a/SocketService.Core/Data/RoomVariable.cs b/SocketService.Core/Data/RoomVariable.cs
deleted file mode 100644
index 340bb3f..0000000
--- a/SocketService.Core/Data/RoomVariable.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace SocketServer.Core.Data
-{
- public partial class RoomVariable
- {
- public RoomVariable()
- {
- Id = AutoIdElement.GetNextID();
- }
- }
-}
diff --git a/SocketService.Core/Data/ServerDataModel.Designer.cs b/SocketService.Core/Data/ServerDataModel.Designer.cs
deleted file mode 100644
index db619f5..0000000
--- a/SocketService.Core/Data/ServerDataModel.Designer.cs
+++ /dev/null
@@ -1,1480 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated from a template.
-//
-// Manual changes to this file may cause unexpected behavior in your application.
-// Manual changes to this file will be overwritten if the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-using System;
-using System.Data.Objects;
-using System.Data.Objects.DataClasses;
-using System.Data.EntityClient;
-using System.ComponentModel;
-using System.Xml.Serialization;
-using System.Runtime.Serialization;
-
-[assembly: EdmSchemaAttribute()]
-#region EDM Relationship Metadata
-
-[assembly: EdmRelationshipAttribute("ServerDataModel", "ZoneRoom", "Zone", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(SocketServer.Core.Data.Zone), "Room", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(SocketServer.Core.Data.Room), true)]
-[assembly: EdmRelationshipAttribute("ServerDataModel", "RoomUser", "Room", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(SocketServer.Core.Data.Room), "User", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(SocketServer.Core.Data.User), true)]
-[assembly: EdmRelationshipAttribute("ServerDataModel", "RoomRoomVariable", "Room", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(SocketServer.Core.Data.Room), "RoomVariable", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(SocketServer.Core.Data.RoomVariable), true)]
-[assembly: EdmRelationshipAttribute("ServerDataModel", "UserUserVariable", "User", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(SocketServer.Core.Data.User), "UserVariable", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(SocketServer.Core.Data.UserVariable), true)]
-[assembly: EdmRelationshipAttribute("ServerDataModel", "ExtensionPlugin", "Extension", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(SocketServer.Core.Data.Extension), "Plugin", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(SocketServer.Core.Data.Plugin), true)]
-[assembly: EdmRelationshipAttribute("ServerDataModel", "RoomPlugin", "Room", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(SocketServer.Core.Data.Room), "Plugin", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(SocketServer.Core.Data.Plugin), true)]
-
-#endregion
-
-namespace SocketServer.Core.Data
-{
- #region Contexts
-
- ///
- /// No Metadata Documentation available.
- ///
- public partial class ServerDataEntities : ObjectContext
- {
- #region Constructors
-
- ///
- /// Initializes a new ServerDataEntities object using the connection string found in the 'ServerDataEntities' section of the application configuration file.
- ///
- public ServerDataEntities() : base("name=ServerDataEntities", "ServerDataEntities")
- {
- this.ContextOptions.LazyLoadingEnabled = true;
- OnContextCreated();
- }
-
- ///
- /// Initialize a new ServerDataEntities object.
- ///
- public ServerDataEntities(string connectionString) : base(connectionString, "ServerDataEntities")
- {
- this.ContextOptions.LazyLoadingEnabled = true;
- OnContextCreated();
- }
-
- ///
- /// Initialize a new ServerDataEntities object.
- ///
- public ServerDataEntities(EntityConnection connection) : base(connection, "ServerDataEntities")
- {
- this.ContextOptions.LazyLoadingEnabled = true;
- OnContextCreated();
- }
-
- #endregion
-
- #region Partial Methods
-
- partial void OnContextCreated();
-
- #endregion
-
- #region ObjectSet Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- public ObjectSet Zones
- {
- get
- {
- if ((_Zones == null))
- {
- _Zones = base.CreateObjectSet("Zones");
- }
- return _Zones;
- }
- }
- private ObjectSet _Zones;
-
- ///
- /// No Metadata Documentation available.
- ///
- public ObjectSet Rooms
- {
- get
- {
- if ((_Rooms == null))
- {
- _Rooms = base.CreateObjectSet("Rooms");
- }
- return _Rooms;
- }
- }
- private ObjectSet _Rooms;
-
- ///
- /// No Metadata Documentation available.
- ///
- public ObjectSet Users
- {
- get
- {
- if ((_Users == null))
- {
- _Users = base.CreateObjectSet("Users");
- }
- return _Users;
- }
- }
- private ObjectSet _Users;
-
- ///
- /// No Metadata Documentation available.
- ///
- public ObjectSet Variables
- {
- get
- {
- if ((_Variables == null))
- {
- _Variables = base.CreateObjectSet("Variables");
- }
- return _Variables;
- }
- }
- private ObjectSet _Variables;
-
- ///
- /// No Metadata Documentation available.
- ///
- public ObjectSet Extensions
- {
- get
- {
- if ((_Extensions == null))
- {
- _Extensions = base.CreateObjectSet("Extensions");
- }
- return _Extensions;
- }
- }
- private ObjectSet _Extensions;
-
- ///
- /// No Metadata Documentation available.
- ///
- public ObjectSet Plugins
- {
- get
- {
- if ((_Plugins == null))
- {
- _Plugins = base.CreateObjectSet("Plugins");
- }
- return _Plugins;
- }
- }
- private ObjectSet _Plugins;
-
- #endregion
- #region AddTo Methods
-
- ///
- /// Deprecated Method for adding a new object to the Zones EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead.
- ///
- public void AddToZones(Zone zone)
- {
- base.AddObject("Zones", zone);
- }
-
- ///
- /// Deprecated Method for adding a new object to the Rooms EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead.
- ///
- public void AddToRooms(Room room)
- {
- base.AddObject("Rooms", room);
- }
-
- ///
- /// Deprecated Method for adding a new object to the Users EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead.
- ///
- public void AddToUsers(User user)
- {
- base.AddObject("Users", user);
- }
-
- ///
- /// Deprecated Method for adding a new object to the Variables EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead.
- ///
- public void AddToVariables(Variable variable)
- {
- base.AddObject("Variables", variable);
- }
-
- ///
- /// Deprecated Method for adding a new object to the Extensions EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead.
- ///
- public void AddToExtensions(Extension extension)
- {
- base.AddObject("Extensions", extension);
- }
-
- ///
- /// Deprecated Method for adding a new object to the Plugins EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead.
- ///
- public void AddToPlugins(Plugin plugin)
- {
- base.AddObject("Plugins", plugin);
- }
-
- #endregion
- }
-
-
- #endregion
-
- #region Entities
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmEntityTypeAttribute(NamespaceName="ServerDataModel", Name="Extension")]
- [Serializable()]
- [DataContractAttribute(IsReference=true)]
- public partial class Extension : EntityObject
- {
- #region Factory Method
-
- ///
- /// Create a new Extension object.
- ///
- /// Initial value of the Id property.
- /// Initial value of the Name property.
- public static Extension CreateExtension(global::System.Int64 id, global::System.String name)
- {
- Extension extension = new Extension();
- extension.Id = id;
- extension.Name = name;
- return extension;
- }
-
- #endregion
- #region Primitive Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 Id
- {
- get
- {
- return _Id;
- }
- set
- {
- if (_Id != value)
- {
- OnIdChanging(value);
- ReportPropertyChanging("Id");
- _Id = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("Id");
- OnIdChanged();
- }
- }
- }
- private global::System.Int64 _Id;
- partial void OnIdChanging(global::System.Int64 value);
- partial void OnIdChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.String Name
- {
- get
- {
- return _Name;
- }
- set
- {
- OnNameChanging(value);
- ReportPropertyChanging("Name");
- _Name = StructuralObject.SetValidValue(value, false);
- ReportPropertyChanged("Name");
- OnNameChanged();
- }
- }
- private global::System.String _Name;
- partial void OnNameChanging(global::System.String value);
- partial void OnNameChanged();
-
- #endregion
-
- #region Navigation Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "ExtensionPlugin", "Plugin")]
- public EntityCollection Plugins
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection("ServerDataModel.ExtensionPlugin", "Plugin");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection("ServerDataModel.ExtensionPlugin", "Plugin", value);
- }
- }
- }
-
- #endregion
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmEntityTypeAttribute(NamespaceName="ServerDataModel", Name="Plugin")]
- [Serializable()]
- [DataContractAttribute(IsReference=true)]
- public partial class Plugin : EntityObject
- {
- #region Factory Method
-
- ///
- /// Create a new Plugin object.
- ///
- /// Initial value of the Id property.
- /// Initial value of the Handle property.
- /// Initial value of the ExtensionId property.
- /// Initial value of the RoomId property.
- public static Plugin CreatePlugin(global::System.Int64 id, global::System.String handle, global::System.Int64 extensionId, global::System.Int64 roomId)
- {
- Plugin plugin = new Plugin();
- plugin.Id = id;
- plugin.Handle = handle;
- plugin.ExtensionId = extensionId;
- plugin.RoomId = roomId;
- return plugin;
- }
-
- #endregion
- #region Primitive Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 Id
- {
- get
- {
- return _Id;
- }
- set
- {
- if (_Id != value)
- {
- OnIdChanging(value);
- ReportPropertyChanging("Id");
- _Id = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("Id");
- OnIdChanged();
- }
- }
- }
- private global::System.Int64 _Id;
- partial void OnIdChanging(global::System.Int64 value);
- partial void OnIdChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.String Handle
- {
- get
- {
- return _Handle;
- }
- set
- {
- OnHandleChanging(value);
- ReportPropertyChanging("Handle");
- _Handle = StructuralObject.SetValidValue(value, false);
- ReportPropertyChanged("Handle");
- OnHandleChanged();
- }
- }
- private global::System.String _Handle;
- partial void OnHandleChanging(global::System.String value);
- partial void OnHandleChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 ExtensionId
- {
- get
- {
- return _ExtensionId;
- }
- set
- {
- OnExtensionIdChanging(value);
- ReportPropertyChanging("ExtensionId");
- _ExtensionId = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("ExtensionId");
- OnExtensionIdChanged();
- }
- }
- private global::System.Int64 _ExtensionId;
- partial void OnExtensionIdChanging(global::System.Int64 value);
- partial void OnExtensionIdChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 RoomId
- {
- get
- {
- return _RoomId;
- }
- set
- {
- OnRoomIdChanging(value);
- ReportPropertyChanging("RoomId");
- _RoomId = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("RoomId");
- OnRoomIdChanged();
- }
- }
- private global::System.Int64 _RoomId;
- partial void OnRoomIdChanging(global::System.Int64 value);
- partial void OnRoomIdChanged();
-
- #endregion
-
- #region Navigation Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "ExtensionPlugin", "Extension")]
- public Extension Extension
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.ExtensionPlugin", "Extension").Value;
- }
- set
- {
- ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.ExtensionPlugin", "Extension").Value = value;
- }
- }
- ///
- /// No Metadata Documentation available.
- ///
- [BrowsableAttribute(false)]
- [DataMemberAttribute()]
- public EntityReference ExtensionReference
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.ExtensionPlugin", "Extension");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference("ServerDataModel.ExtensionPlugin", "Extension", value);
- }
- }
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "RoomPlugin", "Room")]
- public Room Room
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.RoomPlugin", "Room").Value;
- }
- set
- {
- ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.RoomPlugin", "Room").Value = value;
- }
- }
- ///
- /// No Metadata Documentation available.
- ///
- [BrowsableAttribute(false)]
- [DataMemberAttribute()]
- public EntityReference RoomReference
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.RoomPlugin", "Room");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference("ServerDataModel.RoomPlugin", "Room", value);
- }
- }
- }
-
- #endregion
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmEntityTypeAttribute(NamespaceName="ServerDataModel", Name="Room")]
- [Serializable()]
- [DataContractAttribute(IsReference=true)]
- public partial class Room : EntityObject
- {
- #region Factory Method
-
- ///
- /// Create a new Room object.
- ///
- /// Initial value of the Id property.
- /// Initial value of the Name property.
- /// Initial value of the IsPersistable property.
- /// Initial value of the Capacity property.
- /// Initial value of the IsPrivate property.
- /// Initial value of the Password property.
- /// Initial value of the ZoneId property.
- public static Room CreateRoom(global::System.Int64 id, global::System.String name, global::System.Boolean isPersistable, global::System.Int32 capacity, global::System.Boolean isPrivate, global::System.String password, global::System.Int64 zoneId)
- {
- Room room = new Room();
- room.Id = id;
- room.Name = name;
- room.IsPersistable = isPersistable;
- room.Capacity = capacity;
- room.IsPrivate = isPrivate;
- room.Password = password;
- room.ZoneId = zoneId;
- return room;
- }
-
- #endregion
- #region Primitive Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 Id
- {
- get
- {
- return _Id;
- }
- set
- {
- if (_Id != value)
- {
- OnIdChanging(value);
- ReportPropertyChanging("Id");
- _Id = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("Id");
- OnIdChanged();
- }
- }
- }
- private global::System.Int64 _Id;
- partial void OnIdChanging(global::System.Int64 value);
- partial void OnIdChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.String Name
- {
- get
- {
- return _Name;
- }
- set
- {
- OnNameChanging(value);
- ReportPropertyChanging("Name");
- _Name = StructuralObject.SetValidValue(value, false);
- ReportPropertyChanged("Name");
- OnNameChanged();
- }
- }
- private global::System.String _Name;
- partial void OnNameChanging(global::System.String value);
- partial void OnNameChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Boolean IsPersistable
- {
- get
- {
- return _IsPersistable;
- }
- set
- {
- OnIsPersistableChanging(value);
- ReportPropertyChanging("IsPersistable");
- _IsPersistable = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("IsPersistable");
- OnIsPersistableChanged();
- }
- }
- private global::System.Boolean _IsPersistable;
- partial void OnIsPersistableChanging(global::System.Boolean value);
- partial void OnIsPersistableChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int32 Capacity
- {
- get
- {
- return _Capacity;
- }
- set
- {
- OnCapacityChanging(value);
- ReportPropertyChanging("Capacity");
- _Capacity = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("Capacity");
- OnCapacityChanged();
- }
- }
- private global::System.Int32 _Capacity;
- partial void OnCapacityChanging(global::System.Int32 value);
- partial void OnCapacityChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Boolean IsPrivate
- {
- get
- {
- return _IsPrivate;
- }
- set
- {
- OnIsPrivateChanging(value);
- ReportPropertyChanging("IsPrivate");
- _IsPrivate = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("IsPrivate");
- OnIsPrivateChanged();
- }
- }
- private global::System.Boolean _IsPrivate;
- partial void OnIsPrivateChanging(global::System.Boolean value);
- partial void OnIsPrivateChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.String Password
- {
- get
- {
- return _Password;
- }
- set
- {
- OnPasswordChanging(value);
- ReportPropertyChanging("Password");
- _Password = StructuralObject.SetValidValue(value, false);
- ReportPropertyChanged("Password");
- OnPasswordChanged();
- }
- }
- private global::System.String _Password;
- partial void OnPasswordChanging(global::System.String value);
- partial void OnPasswordChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 ZoneId
- {
- get
- {
- return _ZoneId;
- }
- set
- {
- OnZoneIdChanging(value);
- ReportPropertyChanging("ZoneId");
- _ZoneId = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("ZoneId");
- OnZoneIdChanged();
- }
- }
- private global::System.Int64 _ZoneId;
- partial void OnZoneIdChanging(global::System.Int64 value);
- partial void OnZoneIdChanged();
-
- #endregion
-
- #region Navigation Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "ZoneRoom", "Zone")]
- public Zone Zone
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.ZoneRoom", "Zone").Value;
- }
- set
- {
- ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.ZoneRoom", "Zone").Value = value;
- }
- }
- ///
- /// No Metadata Documentation available.
- ///
- [BrowsableAttribute(false)]
- [DataMemberAttribute()]
- public EntityReference ZoneReference
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.ZoneRoom", "Zone");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference("ServerDataModel.ZoneRoom", "Zone", value);
- }
- }
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "RoomUser", "User")]
- public EntityCollection Users
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection("ServerDataModel.RoomUser", "User");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection("ServerDataModel.RoomUser", "User", value);
- }
- }
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "RoomRoomVariable", "RoomVariable")]
- public EntityCollection RoomVariables
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection("ServerDataModel.RoomRoomVariable", "RoomVariable");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection("ServerDataModel.RoomRoomVariable", "RoomVariable", value);
- }
- }
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "RoomPlugin", "Plugin")]
- public EntityCollection Plugins
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection("ServerDataModel.RoomPlugin", "Plugin");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection("ServerDataModel.RoomPlugin", "Plugin", value);
- }
- }
- }
-
- #endregion
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmEntityTypeAttribute(NamespaceName="ServerDataModel", Name="RoomVariable")]
- [Serializable()]
- [DataContractAttribute(IsReference=true)]
- public partial class RoomVariable : Variable
- {
- #region Factory Method
-
- ///
- /// Create a new RoomVariable object.
- ///
- /// Initial value of the Id property.
- /// Initial value of the Name property.
- /// Initial value of the Value property.
- /// Initial value of the RoomId property.
- public static RoomVariable CreateRoomVariable(global::System.Int64 id, global::System.String name, global::System.Byte[] value, global::System.Int64 roomId)
- {
- RoomVariable roomVariable = new RoomVariable();
- roomVariable.Id = id;
- roomVariable.Name = name;
- roomVariable.Value = value;
- roomVariable.RoomId = roomId;
- return roomVariable;
- }
-
- #endregion
- #region Primitive Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 RoomId
- {
- get
- {
- return _RoomId;
- }
- set
- {
- OnRoomIdChanging(value);
- ReportPropertyChanging("RoomId");
- _RoomId = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("RoomId");
- OnRoomIdChanged();
- }
- }
- private global::System.Int64 _RoomId;
- partial void OnRoomIdChanging(global::System.Int64 value);
- partial void OnRoomIdChanged();
-
- #endregion
-
- #region Navigation Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "RoomRoomVariable", "Room")]
- public Room Room
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.RoomRoomVariable", "Room").Value;
- }
- set
- {
- ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.RoomRoomVariable", "Room").Value = value;
- }
- }
- ///
- /// No Metadata Documentation available.
- ///
- [BrowsableAttribute(false)]
- [DataMemberAttribute()]
- public EntityReference RoomReference
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.RoomRoomVariable", "Room");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference("ServerDataModel.RoomRoomVariable", "Room", value);
- }
- }
- }
-
- #endregion
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmEntityTypeAttribute(NamespaceName="ServerDataModel", Name="User")]
- [Serializable()]
- [DataContractAttribute(IsReference=true)]
- public partial class User : EntityObject
- {
- #region Factory Method
-
- ///
- /// Create a new User object.
- ///
- /// Initial value of the Id property.
- /// Initial value of the Name property.
- /// Initial value of the ClientKey property.
- /// Initial value of the RoomId property.
- public static User CreateUser(global::System.Int64 id, global::System.String name, global::System.Guid clientKey, global::System.Int64 roomId)
- {
- User user = new User();
- user.Id = id;
- user.Name = name;
- user.ClientKey = clientKey;
- user.RoomId = roomId;
- return user;
- }
-
- #endregion
- #region Primitive Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 Id
- {
- get
- {
- return _Id;
- }
- set
- {
- if (_Id != value)
- {
- OnIdChanging(value);
- ReportPropertyChanging("Id");
- _Id = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("Id");
- OnIdChanged();
- }
- }
- }
- private global::System.Int64 _Id;
- partial void OnIdChanging(global::System.Int64 value);
- partial void OnIdChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.String Name
- {
- get
- {
- return _Name;
- }
- set
- {
- OnNameChanging(value);
- ReportPropertyChanging("Name");
- _Name = StructuralObject.SetValidValue(value, false);
- ReportPropertyChanged("Name");
- OnNameChanged();
- }
- }
- private global::System.String _Name;
- partial void OnNameChanging(global::System.String value);
- partial void OnNameChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Guid ClientKey
- {
- get
- {
- return _ClientKey;
- }
- set
- {
- OnClientKeyChanging(value);
- ReportPropertyChanging("ClientKey");
- _ClientKey = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("ClientKey");
- OnClientKeyChanged();
- }
- }
- private global::System.Guid _ClientKey;
- partial void OnClientKeyChanging(global::System.Guid value);
- partial void OnClientKeyChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 RoomId
- {
- get
- {
- return _RoomId;
- }
- set
- {
- OnRoomIdChanging(value);
- ReportPropertyChanging("RoomId");
- _RoomId = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("RoomId");
- OnRoomIdChanged();
- }
- }
- private global::System.Int64 _RoomId;
- partial void OnRoomIdChanging(global::System.Int64 value);
- partial void OnRoomIdChanged();
-
- #endregion
-
- #region Navigation Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "RoomUser", "Room")]
- public Room Room
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.RoomUser", "Room").Value;
- }
- set
- {
- ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.RoomUser", "Room").Value = value;
- }
- }
- ///
- /// No Metadata Documentation available.
- ///
- [BrowsableAttribute(false)]
- [DataMemberAttribute()]
- public EntityReference RoomReference
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.RoomUser", "Room");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference("ServerDataModel.RoomUser", "Room", value);
- }
- }
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "UserUserVariable", "UserVariable")]
- public EntityCollection UserVariables
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection("ServerDataModel.UserUserVariable", "UserVariable");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection("ServerDataModel.UserUserVariable", "UserVariable", value);
- }
- }
- }
-
- #endregion
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmEntityTypeAttribute(NamespaceName="ServerDataModel", Name="UserVariable")]
- [Serializable()]
- [DataContractAttribute(IsReference=true)]
- public partial class UserVariable : Variable
- {
- #region Factory Method
-
- ///
- /// Create a new UserVariable object.
- ///
- /// Initial value of the Id property.
- /// Initial value of the Name property.
- /// Initial value of the Value property.
- /// Initial value of the UserId property.
- public static UserVariable CreateUserVariable(global::System.Int64 id, global::System.String name, global::System.Byte[] value, global::System.Int64 userId)
- {
- UserVariable userVariable = new UserVariable();
- userVariable.Id = id;
- userVariable.Name = name;
- userVariable.Value = value;
- userVariable.UserId = userId;
- return userVariable;
- }
-
- #endregion
- #region Primitive Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 UserId
- {
- get
- {
- return _UserId;
- }
- set
- {
- OnUserIdChanging(value);
- ReportPropertyChanging("UserId");
- _UserId = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("UserId");
- OnUserIdChanged();
- }
- }
- private global::System.Int64 _UserId;
- partial void OnUserIdChanging(global::System.Int64 value);
- partial void OnUserIdChanged();
-
- #endregion
-
- #region Navigation Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "UserUserVariable", "User")]
- public User User
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.UserUserVariable", "User").Value;
- }
- set
- {
- ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.UserUserVariable", "User").Value = value;
- }
- }
- ///
- /// No Metadata Documentation available.
- ///
- [BrowsableAttribute(false)]
- [DataMemberAttribute()]
- public EntityReference UserReference
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference("ServerDataModel.UserUserVariable", "User");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference("ServerDataModel.UserUserVariable", "User", value);
- }
- }
- }
-
- #endregion
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmEntityTypeAttribute(NamespaceName="ServerDataModel", Name="Variable")]
- [Serializable()]
- [DataContractAttribute(IsReference=true)]
- [KnownTypeAttribute(typeof(RoomVariable))]
- [KnownTypeAttribute(typeof(UserVariable))]
- public partial class Variable : EntityObject
- {
- #region Factory Method
-
- ///
- /// Create a new Variable object.
- ///
- /// Initial value of the Id property.
- /// Initial value of the Name property.
- /// Initial value of the Value property.
- public static Variable CreateVariable(global::System.Int64 id, global::System.String name, global::System.Byte[] value)
- {
- Variable variable = new Variable();
- variable.Id = id;
- variable.Name = name;
- variable.Value = value;
- return variable;
- }
-
- #endregion
- #region Primitive Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 Id
- {
- get
- {
- return _Id;
- }
- set
- {
- if (_Id != value)
- {
- OnIdChanging(value);
- ReportPropertyChanging("Id");
- _Id = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("Id");
- OnIdChanged();
- }
- }
- }
- private global::System.Int64 _Id;
- partial void OnIdChanging(global::System.Int64 value);
- partial void OnIdChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.String Name
- {
- get
- {
- return _Name;
- }
- set
- {
- OnNameChanging(value);
- ReportPropertyChanging("Name");
- _Name = StructuralObject.SetValidValue(value, false);
- ReportPropertyChanged("Name");
- OnNameChanged();
- }
- }
- private global::System.String _Name;
- partial void OnNameChanging(global::System.String value);
- partial void OnNameChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Byte[] Value
- {
- get
- {
- return StructuralObject.GetValidValue(_Value);
- }
- set
- {
- OnValueChanging(value);
- ReportPropertyChanging("Value");
- _Value = StructuralObject.SetValidValue(value, false);
- ReportPropertyChanged("Value");
- OnValueChanged();
- }
- }
- private global::System.Byte[] _Value;
- partial void OnValueChanging(global::System.Byte[] value);
- partial void OnValueChanged();
-
- #endregion
-
- }
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmEntityTypeAttribute(NamespaceName="ServerDataModel", Name="Zone")]
- [Serializable()]
- [DataContractAttribute(IsReference=true)]
- public partial class Zone : EntityObject
- {
- #region Factory Method
-
- ///
- /// Create a new Zone object.
- ///
- /// Initial value of the Id property.
- /// Initial value of the Name property.
- public static Zone CreateZone(global::System.Int64 id, global::System.String name)
- {
- Zone zone = new Zone();
- zone.Id = id;
- zone.Name = name;
- return zone;
- }
-
- #endregion
- #region Primitive Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.Int64 Id
- {
- get
- {
- return _Id;
- }
- set
- {
- if (_Id != value)
- {
- OnIdChanging(value);
- ReportPropertyChanging("Id");
- _Id = StructuralObject.SetValidValue(value);
- ReportPropertyChanged("Id");
- OnIdChanged();
- }
- }
- }
- private global::System.Int64 _Id;
- partial void OnIdChanging(global::System.Int64 value);
- partial void OnIdChanged();
-
- ///
- /// No Metadata Documentation available.
- ///
- [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
- [DataMemberAttribute()]
- public global::System.String Name
- {
- get
- {
- return _Name;
- }
- set
- {
- OnNameChanging(value);
- ReportPropertyChanging("Name");
- _Name = StructuralObject.SetValidValue(value, false);
- ReportPropertyChanged("Name");
- OnNameChanged();
- }
- }
- private global::System.String _Name;
- partial void OnNameChanging(global::System.String value);
- partial void OnNameChanged();
-
- #endregion
-
- #region Navigation Properties
-
- ///
- /// No Metadata Documentation available.
- ///
- [XmlIgnoreAttribute()]
- [SoapIgnoreAttribute()]
- [DataMemberAttribute()]
- [EdmRelationshipNavigationPropertyAttribute("ServerDataModel", "ZoneRoom", "Room")]
- public EntityCollection Rooms
- {
- get
- {
- return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection("ServerDataModel.ZoneRoom", "Room");
- }
- set
- {
- if ((value != null))
- {
- ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection("ServerDataModel.ZoneRoom", "Room", value);
- }
- }
- }
-
- #endregion
- }
-
- #endregion
-
-}
diff --git a/SocketService.Core/Data/User.cs b/SocketService.Core/Data/User.cs
deleted file mode 100644
index 5f0285b..0000000
--- a/SocketService.Core/Data/User.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace SocketServer.Core.Data
-{
- public partial class User
- {
- public User()
- {
- Id = AutoIdElement.GetNextID();
- }
-
- }
-}
diff --git a/SocketService.Core/Data/Zone.cs b/SocketService.Core/Data/Zone.cs
deleted file mode 100644
index 2551d48..0000000
--- a/SocketService.Core/Data/Zone.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace SocketServer.Core.Data
-{
- public partial class Zone
- {
- public Zone()
- {
- Id = AutoIdElement.GetNextID();
- }
- }
-}
diff --git a/SocketService.Core/Messaging/BaseMessageHandler.cs b/SocketService.Core/Messaging/BaseMessageHandler.cs
deleted file mode 100644
index 5336cda..0000000
--- a/SocketService.Core/Messaging/BaseMessageHandler.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using log4net;
-using System.Reflection;
-
-namespace SocketServer.Core.Messaging
-{
- [Serializable]
- public abstract class BaseMessageHandler : ICommand
- {
- protected static ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- public abstract void Execute();
- }
-}
diff --git a/SocketService.Core/Messaging/ICommand.cs b/SocketService.Core/Messaging/ICommand.cs
deleted file mode 100644
index f785506..0000000
--- a/SocketService.Core/Messaging/ICommand.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace SocketServer.Core.Messaging
-{
- public interface ICommand
- {
- void Execute();
- }
-}
diff --git a/SocketService.Core/Messaging/MSMQQueueWatcher.cs b/SocketService.Core/Messaging/MSMQQueueWatcher.cs
deleted file mode 100644
index 5607694..0000000
--- a/SocketService.Core/Messaging/MSMQQueueWatcher.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using System;
-using System.Messaging;
-using log4net;
-using System.Reflection;
-
-namespace SocketServer.Core.Messaging
-{
- public class MSMQQueueWatcher : IDisposable
- {
- private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private readonly MessageQueue _receiveQueue;
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// Name of the queue.
- public MSMQQueueWatcher(string queueName)
- {
- // open the queue
- _receiveQueue = new MessageQueue(queueName) {Formatter = new BinaryMessageFormatter()};
- }
-
- ///
- /// Closes the queue.
- ///
- public void CloseQueue()
- {
- _receiveQueue.Close();
- }
-
- ///
- /// Recieves the message.
- ///
- ///
- /// The milliseconds.
- ///
- public T RecieveMessage(int milliseconds) where T : class
- {
- var t = default(T);
- try
- {
- var myMessage = _receiveQueue.Receive(TimeSpan.FromMilliseconds(milliseconds));
- if (myMessage != null) t = myMessage.Body as T;
- }
- catch (MessageQueueException e)
- {
- // if MessageQueue.Receive times out, we'll ignore the exception
- // otherwise, do something useful with the error (log, display, etc.)
- if (e.MessageQueueErrorCode != MessageQueueErrorCode.IOTimeout)
- {
- Log.ErrorFormat("Error: ({0}) {1}", e.ErrorCode, e.Message);
- }
- }
- return t;
- }
-
- ///
- /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
- ///
- public void Dispose()
- {
- CloseQueue();
- }
- }
-}
diff --git a/SocketService.Core/Messaging/MSMQQueueWrapper.cs b/SocketService.Core/Messaging/MSMQQueueWrapper.cs
deleted file mode 100644
index 7c4ed3c..0000000
--- a/SocketService.Core/Messaging/MSMQQueueWrapper.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Messaging;
-using System.Configuration;
-using log4net;
-using System.Reflection;
-
-namespace SocketServer.Core.Messaging
-{
- public class MSMQQueueWrapper
- {
- // private static readonly string QueuePath;
- private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- static MSMQQueueWrapper()
- {
- // QueuePath = ConfigurationManager.AppSettings["ServerMessageQueue"];
- }
-
- ///
- /// Queues the command.
- ///
- /// The c.
- public static void QueueCommand(string queuePath, ICommand c)
- {
- try
- {
- // open the queue
- var mq = new MessageQueue(queuePath)
- {DefaultPropertiesToSend = {Recoverable = true}, Formatter = new BinaryMessageFormatter()};
-
- // set the message to durable.
-
- // set the formatter to Binary, default is XML
-
- // send the command object
- mq.Send(c, "Command Message");
- mq.Close();
- }
- catch (Exception e)
- {
- Log.ErrorFormat("Error: {0}", e.Message);
- }
- }
-
- }
-}
diff --git a/SocketService.Core/Messaging/MessageServer.cs b/SocketService.Core/Messaging/MessageServer.cs
deleted file mode 100644
index c7be728..0000000
--- a/SocketService.Core/Messaging/MessageServer.cs
+++ /dev/null
@@ -1,96 +0,0 @@
-using System;
-using System.Messaging;
-using System.Threading;
-using System.Configuration;
-using System.Reflection;
-using log4net;
-
-namespace SocketServer.Core.Messaging
-{
- public class MessageServer : MSMQQueueWatcher
- {
- private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private readonly ManualResetEvent _stopEvent = new ManualResetEvent(false);
-
- private bool _running;
-
- private readonly string _queueName;
- ///
- /// Initializes a new instance of the class.
- ///
- public MessageServer(string queueName, string queuePath)
- : base(queuePath)
- {
- _queueName = queueName;
-
- // create queue, if it doesn't exist
- if (!MessageQueue.Exists(queuePath))
- MessageQueue.Create(queuePath);
- }
-
- ///
- /// Starts this instance.
- ///
- public void Start()
- {
- if (_running) return;
-
- _stopEvent.Reset();
- _running = true;
-
- var numProcessors = Environment.ProcessorCount;
- const double numThreadsPerProcessor = 1.5;
- var numThreads = (int)(numProcessors * numThreadsPerProcessor) + 1;
-
- for (int i = 0; i < numThreads; i++)
- {
- var serverThread = new Thread(Serve);
- serverThread.Start();
- }
- }
-
- ///
- /// Stops this instance.
- ///
- public void Stop()
- {
- _stopEvent.Set();
- _running = false;
- }
-
- ///
- /// Pauses this instance.
- ///
- public void Pause()
- {
- // TODO: Implement Pause
- }
-
- ///
- /// Resumes this instance.
- ///
- public void Resume()
- {
- // TODO: Implement Resume
- }
-
- protected void Serve()
- {
- while (!_stopEvent.WaitOne(50))
- {
- var command = RecieveMessage(500);
- if (command == null) continue;
-
- try
- {
- command.Execute();
- }
- catch (Exception e)
- {
- Log.ErrorFormat("Error: {0}", e.Message);
- }
- }
- }
- }
-}
diff --git a/SocketService.Core/Properties/AssemblyInfo.cs b/SocketService.Core/Properties/AssemblyInfo.cs
deleted file mode 100644
index 710769d..0000000
--- a/SocketService.Core/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("SocketService.Framework")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Microsoft")]
-[assembly: AssemblyProduct("SocketService.Framework")]
-[assembly: AssemblyCopyright("Copyright © Microsoft 2011")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("9c7d6078-99b8-4145-b9b7-8744625cb764")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// 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.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/SocketService.Core/ServiceHandlerLib/BaseHandler.cs b/SocketService.Core/ServiceHandlerLib/BaseHandler.cs
deleted file mode 100644
index 0b08396..0000000
--- a/SocketService.Core/ServiceHandlerLib/BaseHandler.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-
-namespace SocketServer.Core.ServiceHandlerLib
-{
- [Serializable]
- public abstract class BaseHandler : IServiceHandler where T : class
- {
- public bool HandleRequest(object request, object state)
- {
- return HandleRequest(request as T, (TState)state);
- }
-
- public abstract bool HandleRequest(T request, TState state);
- }
-}
diff --git a/SocketService.Core/ServiceHandlerLib/IServiceHandler.cs b/SocketService.Core/ServiceHandlerLib/IServiceHandler.cs
deleted file mode 100644
index c232131..0000000
--- a/SocketService.Core/ServiceHandlerLib/IServiceHandler.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace SocketServer.Core.ServiceHandlerLib
-{
- public interface IServiceHandler
- {
- bool HandleRequest(object request, object state);
- }
-}
diff --git a/SocketService.Core/ServiceHandlerLib/IServiceHandlerMetaData.cs b/SocketService.Core/ServiceHandlerLib/IServiceHandlerMetaData.cs
deleted file mode 100644
index 977a358..0000000
--- a/SocketService.Core/ServiceHandlerLib/IServiceHandlerMetaData.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-
-namespace SocketServer.Core.ServiceHandlerLib
-{
- public interface IServiceHandlerMetaData
- {
- Type HandlerType
- {
- get;
- }
- }
-}
diff --git a/SocketService.Core/ServiceHandlerLib/IServiceHandlerRepository.cs b/SocketService.Core/ServiceHandlerLib/IServiceHandlerRepository.cs
deleted file mode 100644
index f0f3bdc..0000000
--- a/SocketService.Core/ServiceHandlerLib/IServiceHandlerRepository.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SocketService.Framework.ServiceHandlerLib
-{
- public interface IServiceHandlerRepository
- {
- ///
- /// Gets the handler list by type.
- ///
- /// The type.
- ///
- List GetHandlerListByType(Type type);
-
- ///
- /// Loads the handlers.
- ///
- /// The handler path.
- void LoadHandlers();
-
- }
-}
diff --git a/SocketService.Core/ServiceHandlerLib/ServiceHandlerRepository.cs b/SocketService.Core/ServiceHandlerLib/ServiceHandlerRepository.cs
deleted file mode 100644
index f378f88..0000000
--- a/SocketService.Core/ServiceHandlerLib/ServiceHandlerRepository.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.ComponentModel.Composition;
-using System.ComponentModel.Composition.Hosting;
-using System.Reflection;
-using System.IO;
-using System.Configuration;
-using SocketService.Framework.Configuration;
-using SocketService.Framework.ServiceHandlerLib;
-
-namespace SocketService.Framework.ServiceHandlerLib
-{
- public class ServiceHandlerRepository : IServiceHandlerRepository
- {
- [ImportMany]
- protected IEnumerable> _handlerList;
-
- private static ServiceHandlerRepository _instance = null;
-
- ///
- /// Initializes the class.
- ///
- static ServiceHandlerRepository()
- {
- Instance.LoadHandlers();
- }
-
- ///
- /// Gets the instance.
- ///
- public static ServiceHandlerRepository Instance
- {
- get
- {
- if (_instance == null)
- {
- _instance = new ServiceHandlerRepository();
- }
-
- return _instance;
- }
- }
-
- protected ServiceHandlerRepository()
- {
- //string handlerPath
- }
-
- ///
- /// Gets the handler list by type.
- ///
- /// The type.
- ///
- public List GetHandlerListByType(Type type)
- {
- List serviceHandlers = new List();
-
- serviceHandlers = _handlerList
- .Where((h) => h.Metadata.HandlerType == type)
- .Select((lz) => lz.Value)
- .ToList();
-
- return serviceHandlers;
- }
-
- ///
- /// Loads the handlers.
- ///
- /// The handler path.
- public void LoadHandlers()
- {
- SocketServiceConfiguration config = null;
-
- try
- { config = (SocketServiceConfiguration)ConfigurationManager.GetSection("SocketServerConfiguration"); }
- catch (Exception ex)
- { }
-
- var aggregateCatalog = new AggregateCatalog();
-
- Assembly callingAssembly = Assembly.GetExecutingAssembly();
-
- // an assembly catalog to load information about parts from this assembly
- var assemblyCatalog = new AssemblyCatalog(callingAssembly);
- var directoryCatalog = new DirectoryCatalog(Path.GetDirectoryName(callingAssembly.Location), "*.dll");
-
- aggregateCatalog.Catalogs.Add(assemblyCatalog);
- aggregateCatalog.Catalogs.Add(directoryCatalog);
-
- // create a container for our catalogs
- var container = new CompositionContainer(aggregateCatalog);
-
- // finally, compose the parts
- container.ComposeParts(this);
- }
- }
-}
diff --git a/SocketService.Core/ServiceHandlerLib/ServiceHandlerTypeAttribute.cs b/SocketService.Core/ServiceHandlerLib/ServiceHandlerTypeAttribute.cs
deleted file mode 100644
index 0b05080..0000000
--- a/SocketService.Core/ServiceHandlerLib/ServiceHandlerTypeAttribute.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System;
-using System.ComponentModel.Composition;
-
-namespace SocketServer.Core.ServiceHandlerLib
-{
- [MetadataAttribute]
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = false)]
- public class ServiceHandlerTypeAttribute : ExportAttribute, IServiceHandlerMetaData
- {
- ///
- /// Initializes a new instance of the class.
- ///
- public ServiceHandlerTypeAttribute()
- : this(null)
- {
- }
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// Type of the handler.
- public ServiceHandlerTypeAttribute(Type handlerType)
- : base(typeof(IServiceHandler))
- {
- HandlerType = handlerType;
- }
-
- #region IHandlerType Members
-
- public Type HandlerType
- {
- get;
- set;
- }
-
- #endregion
- }
-}
diff --git a/SocketService.Core/SocketServer.Core.csproj b/SocketService.Core/SocketServer.Core.csproj
deleted file mode 100644
index e8c5e3d..0000000
--- a/SocketService.Core/SocketServer.Core.csproj
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 8.0.30703
- 2.0
- {A0CAE0A0-EFA9-452B-98FB-5FE3172FCD1B}
- Library
- Properties
- SocketServer.Core
- SocketServer.Core
- v4.0
- 512
- publish\
- true
- Disk
- false
- Foreground
- 7
- Days
- false
- false
- true
- 0
- 1.0.0.%2a
- false
- false
- true
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
- ..\References\log4net.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- True
- ServerDataModel.edmx
-
-
-
-
-
-
- False
- Microsoft .NET Framework 4 %28x86 and x64%29
- true
-
-
- False
- .NET Framework 3.5 SP1 Client Profile
- false
-
-
- False
- .NET Framework 3.5 SP1
- false
-
-
- False
- SQL Server Compact 3.5 SP2
- true
-
-
- False
- Windows Installer 3.1
- true
-
-
-
-
- EntityModelCodeGenerator
- ServerDataModel.Designer.cs
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/SocketService.Core/Util/SingletonBase.cs b/SocketService.Core/Util/SingletonBase.cs
deleted file mode 100644
index 10a37e6..0000000
--- a/SocketService.Core/Util/SingletonBase.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace SocketServer.Core.Util
-{
- public class SingletonBase where T : class, new()
- {
- private static T _instance;
-
- ///
- /// Gets the instance.
- ///
- public static T Instance
- {
- get { return _instance ?? (_instance = new T()); }
- }
- }
-}
diff --git a/SocketService.Framework/SocketServiceBase.cs b/SocketService.Framework/SocketServiceBase.cs
deleted file mode 100644
index 7736be4..0000000
--- a/SocketService.Framework/SocketServiceBase.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration.Install;
-using System.Linq;
-using System.Reflection;
-using System.ServiceProcess;
-using System.Text;
-using System.Threading;
-using log4net;
-
-namespace SocketService.Framework
-{
- public class SocketServiceBase : ServiceBase
- {
- protected static ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- public SocketServiceBase()
- {
- CanStop = true;
- CanPauseAndContinue = false;
- AutoLog = true;
- RunAsService = true;
- }
-
- public bool RunAsService { get; set; }
-
- ///
- /// Override in subclasses to start your application code. The code will automatically
- /// be started as either a service or an application depending on the RunAsService property.
- ///
- public virtual void StartService() { }
-
- ///
- /// APSServiceBase default implementation for OnStart. This will only be called if RunAsService is set to true.
- /// Implementers should not override this method. Instead, they should put all service start code in StartService.
- /// The APSServiceBase will handle starting and stopping appropriately depending on whether RunAsService is set or not.
- ///
- ///
- protected override void OnStart(string[] args)
- {
- var thread = new Thread(StartService) { Name = "ServiceThread", IsBackground = false};
- thread.Start();
- }
-
- ///
- /// Override in subclasses to stop your application code. This will only be called if RunAsService is true.
- ///
- public virtual void StopService() { }
-
- ///
- /// APSServiceBase default implementation for OnStop. This will only be called if RunAsService is set to true.
- /// Implementers should not override this method. Instead, they should put all service shutdown code in StopService.
- /// The APSServiceBase will handle starting and stopping appropriately depending on whether RunAsService is set or not.
- ///
- protected override void OnStop()
- {
- StopService();
- }
-
- public void Run()
- {
- // Set working directory to application directory.
- // Otherwise Windows/System32 is used.
- Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;
-
- // We must start the server appropriately depending on whether we are a service or not.
- if (RunAsService)
- {
- Run(this);
- }
- else
- {
- StartService();
- }
- }
- }
-}
diff --git a/SocketService/Command/BaseCommandHandler.cs b/SocketService/Command/BaseCommandHandler.cs
deleted file mode 100644
index 113b003..0000000
--- a/SocketService/Command/BaseCommandHandler.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using log4net;
-using System.Reflection;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public abstract class BaseCommandHandler : ICommand
- {
- protected static ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- public abstract void Execute();
- }
-}
diff --git a/SocketService/Command/BroadcastMessageCommand.cs b/SocketService/Command/BroadcastMessageCommand.cs
deleted file mode 100644
index fe28cb2..0000000
--- a/SocketService/Command/BroadcastMessageCommand.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System;
-using System.Linq;
-using System.Reflection;
-using log4net;
-using SocketServer.Net;
-using SocketServer.Shared;
-using SocketServer.Shared.Serialization;
-using SocketServer.Shared.Header;
-using SocketServer.Net.Client;
-
-namespace SocketServer.Command
-{
- [Serializable]
- class BroadcastMessageCommand : BaseCommandHandler
- {
- private readonly static ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private readonly Guid[] _clientList;
- private readonly string _response;
- private readonly CompressionTypes _compressionType;
- private readonly EncryptionTypes _encryptionType;
- private readonly ResponseTypes _responseType;
-
- public BroadcastMessageCommand(Guid[] clientList, string response, ResponseTypes responseType, MessageHeader header)
- {
- _clientList = clientList;
- _response = response;
- _responseType = responseType;
- _compressionType = header.CompressionType;
- _encryptionType = header.EncryptionHeader.EncryptionType;
- }
-
- public override void Execute()
- {
- foreach (var connection in ConnectionRepository.Instance.Query(c => _clientList.Contains(c.ClientId)))
- {
- try
- {
- ResponseHeader responseHeader = ResponseBuilder.BuildResponseHeader(_encryptionType, _compressionType, _responseType);
-
- //connection. .ClientSocket.SendData(
- // XmlSerializationHelper
- // .Serialize(responseHeader)
- // .SerializeUTF());
-
-
- //connection.ClientSocket.SendData(
- // ResponseBuilder.ProcessResponse(
- // connection.ServerAuthority,
- // connection
- // .RequestHeader
- // .MessageHeader
- // .EncryptionHeader
- // .PublicKey,
- // responseHeader,
- // _response).SerializeUTF());
- }
- catch (Exception ex)
- {
- Log.Error(ex);
- }
- }
- }
- }
-}
diff --git a/SocketService/Command/ClientConnectCommand.cs b/SocketService/Command/ClientConnectCommand.cs
deleted file mode 100644
index 1276574..0000000
--- a/SocketService/Command/ClientConnectCommand.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Net.Sockets;
-
-namespace SocketService.Command
-{
- [Serializable()]
- public class ClientConnectCommand : BaseCommand
- {
- private readonly Guid _clientId;
- public ClientConnectCommand(Guid clientId)
- {
- _clientId = clientId;
- }
-
- public override void Execute()
- {
- ZipSocket rawSocket = SocketRepository.Instance.FindByClientId(_clientId);
-
- if (rawSocket != null)
- {
- Connection connection = ConnectionRepository.Instance.FindConnectionByClientId(_clientId);
- if (connection != null)
- {
- connection.ConnectionState = ConnectionState.NegotiateKeyPair;
- }
- }
- }
- }
-}
diff --git a/SocketService/Command/ClientConnectingCommand.cs b/SocketService/Command/ClientConnectingCommand.cs
deleted file mode 100644
index e4903f1..0000000
--- a/SocketService/Command/ClientConnectingCommand.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Net.Sockets;
-using SocketServer.Messaging;
-using SocketServer.Net;
-using SocketServer.Net.Client;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class ClientConnectingCommand : BaseMessageHandler
- {
- private Guid clientId;
-
- public ClientConnectingCommand(Guid clientId)
- {
- this.clientId = clientId;
- }
-
- public override void Execute()
- {
- var connection = ConnectionRepository.Instance.NewConnection();
- connection.ClientId = clientId;
- }
- }
-}
diff --git a/SocketService/Command/CommandServer.cs b/SocketService/Command/CommandServer.cs
deleted file mode 100644
index e5c437d..0000000
--- a/SocketService/Command/CommandServer.cs
+++ /dev/null
@@ -1,96 +0,0 @@
-using System;
-using System.Messaging;
-using System.Threading;
-using System.Configuration;
-using System.Reflection;
-using log4net;
-
-namespace SocketServer.Command
-{
- public class CommandServer : MSMQQueueWatcher
- {
- private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private readonly ManualResetEvent _stopEvent = new ManualResetEvent(false);
-
- private bool _running;
-
- private readonly string _queueName;
- ///
- /// Initializes a new instance of the class.
- ///
- public CommandServer(string queueName, string queuePath)
- : base(queuePath)
- {
- _queueName = queueName;
-
- // create queue, if it doesn't exist
- if (!MessageQueue.Exists(queuePath))
- MessageQueue.Create(queuePath);
- }
-
- ///
- /// Starts this instance.
- ///
- public void Start()
- {
- if (_running) return;
-
- _stopEvent.Reset();
- _running = true;
-
- var numProcessors = Environment.ProcessorCount;
- const double numThreadsPerProcessor = 1.5;
- var numThreads = (int)(numProcessors * numThreadsPerProcessor) + 1;
-
- for (int i = 0; i < numThreads; i++)
- {
- var serverThread = new Thread(Serve);
- serverThread.Start();
- }
- }
-
- ///
- /// Stops this instance.
- ///
- public void Stop()
- {
- _stopEvent.Set();
- _running = false;
- }
-
- ///
- /// Pauses this instance.
- ///
- public void Pause()
- {
- // TODO: Implement Pause
- }
-
- ///
- /// Resumes this instance.
- ///
- public void Resume()
- {
- // TODO: Implement Resume
- }
-
- protected void Serve()
- {
- while (!_stopEvent.WaitOne(50))
- {
- var command = RecieveMessage(500);
- if (command == null) continue;
-
- try
- {
- command.Execute();
- }
- catch (Exception e)
- {
- Log.Error(e);
- }
- }
- }
- }
-}
diff --git a/SocketService/Command/CreateRoomCommand.cs b/SocketService/Command/CreateRoomCommand.cs
deleted file mode 100644
index 9f01abd..0000000
--- a/SocketService/Command/CreateRoomCommand.cs
+++ /dev/null
@@ -1,124 +0,0 @@
-using System;
-using System.Linq;
-using SocketServer.Actions;
-using SocketServer.Repository;
-using SocketServer.Shared.Serialization;
-using SocketServer.Shared;
-using SocketServer.Net.Client;
-using SocketServer.Shared.Event;
-
-namespace SocketServer.Command
-{
- [Serializable]
- class CreateRoomCommand : BaseCommandHandler
- {
- private readonly Guid _clientId;
- private readonly string _roomName;
- private readonly string _zoneName;
- public CreateRoomCommand(Guid clientId, string zoneName, string roomName)
- {
- _clientId = clientId;
- _roomName = roomName;
- _zoneName = zoneName;
- }
-
- public override void Execute()
- {
- var newZone = ZoneActionEngine.Instance.CreateZone(_zoneName);
- var connection = ConnectionRepository.Instance.Query(c => c.ClientId == _clientId).FirstOrDefault();
-
- if( newZone != null && connection != null)
- {
- var newRoom = RoomActionEngine.Instance.CreateRoom(_roomName, newZone);
- if (newRoom != null && UserActionEngine.Instance.ClientChangeRoom(_clientId, _roomName))
- {
- JoinRoomEvent evt = new JoinRoomEvent()
- {
- RoomName = newRoom.Name,
- RoomId = newRoom.Id,
- Capacity = newRoom.Capacity,
- Hidden = newRoom.IsPrivate,
- Protected = newRoom.IsPersistable,
- RoomDescription = string.Empty,
- Users = newRoom.Users.Select( u => u.Name ).ToList()};
-
- MSMQQueueWrapper.QueueCommand(
- new SendServerResponseCommand(
- _clientId,
- XmlSerializationHelper.Serialize(evt),
- ResponseTypes.JoinRoomEvent,
- connection.RequestHeader.MessageHeader));
- }
- }
-
- //Zone newZone = ZoneActionEngine.Instance.CreateZone(_zoneName);
-
- //if (user != null && user.Room.Name != _roomName)
- //{
- // Room oldRoom = user.Room;
-
- // if (oldRoom.Id != newRoom.Id)
- // {
- // newRoom.AddUser(new UserListEntry() { UserName = user.UserName });
- // oldRoom.RemoveUser(new UserListEntry() { UserName = user.UserName });
-
- // UserActionEngine.Instance.ClientChangeRoom(_clientId, _roomName);
-
- // // tell client that they are leaving a room
- // MSMQQueueWrapper.QueueCommand(
- // new SendObjectCommand(_clientId,
- // new LeaveRoomEvent()
- // {
- // RoomId = oldRoom.Id,
- // UserName = user.UserName
- // }
- // )
- // );
-
- // // now tell client they are arriving at a new room
- // MSMQQueueWrapper.QueueCommand(
- // new SendObjectCommand(_clientId,
- // new JoinRoomEvent()
- // {
- // RoomName = newRoom.Name,
- // RoomId = newRoom.Id,
- // Protected = false,
- // Hidden = false,
- // Capacity = -1,
- // RoomDescription = "",
- // RoomVariables = newRoom.Variables.ToArray(),
- // Users = newRoom.Users.ToArray()
- // }
- // )
- // );
-
- // // tell clients to add user to room
- // MSMQQueueWrapper.QueueCommand(
- // new BroadcastObjectCommand(
- // UserRepository.Instance.FindClientKeysByRoomFiltered(_roomName, _clientId).ToArray(),
- // new RoomUserUpdateEvent()
- // {
- // Action = RoomUserUpdateAction.AddUser,
- // RoomId = newRoom.Id,
- // UserName = user.UserName
- // }
- // )
- // );
-
- // // tell clients to remove user from room
- // MSMQQueueWrapper.QueueCommand(
- // new BroadcastObjectCommand(
- // UserRepository.Instance.FindClientKeysByRoomFiltered(oldRoom.Name, _clientId).ToArray(),
- // new RoomUserUpdateEvent()
- // {
- // Action = RoomUserUpdateAction.DeleteUser,
- // RoomId = oldRoom.Id,
- // UserName = user.UserName
- // }
- // )
- // );
- // }
- //}
- }
- }
-}
diff --git a/SocketService/Command/CreateRoomVariableCommand.cs b/SocketService/Command/CreateRoomVariableCommand.cs
deleted file mode 100644
index 800f4b7..0000000
--- a/SocketService/Command/CreateRoomVariableCommand.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using System;
-using System.Linq;
-using SocketServer.Actions;
-using SocketServer.Repository;
-using SocketServer.Shared;
-
-namespace SocketServer.Command
-{
- [Serializable]
- internal class CreateRoomVariableCommand : BaseCommandHandler
- {
- private readonly Guid _clientId;
- private readonly string _name;
- private readonly long _roomId;
- private readonly object _so;
- private readonly int _zoneId;
-
- public CreateRoomVariableCommand(Guid clientId, int zoneId, long roomId, string name, object so)
- {
- _clientId = clientId;
- _zoneId = zoneId;
- _roomId = roomId;
- _name = name;
- _so = so;
- }
-
- public override void Execute()
- {
- //var room = RoomRepository.Instance.Find(_roomId);
- //if (room == null) return;
-
- ////RoomActionEngine.Instance.CreateRoomVariable(room, _name, ObjectSerialize.Serialize(_so));
-
- //MSMQQueueWrapper.QueueCommand(
- // new BroadcastMessageCommand(
- // room.Users.Select( u => u.ClientKey ).ToArray(),
- // new RoomVariableUpdateEvent() { Action = RoomVariableUpdateAction.Add, Name = _name, RoomId = _roomId, Value = _so, ZoneId = _zoneId }
- // )
- // );
-
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService/Command/DeleteRoomVariableCommand.cs b/SocketService/Command/DeleteRoomVariableCommand.cs
deleted file mode 100644
index 42fec17..0000000
--- a/SocketService/Command/DeleteRoomVariableCommand.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class DeleteRoomVariableCommand : BaseCommandHandler
- {
- private readonly Guid _clientId;
- private readonly int _zoneId;
- private readonly int _roomId;
- private readonly string _name;
- public DeleteRoomVariableCommand(Guid clientId, int zoneId, int roomId, string name)
- {
- _zoneId = zoneId;
- _clientId = clientId;
- _roomId = roomId;
- _name = name;
- }
-
- public override void Execute()
- {
-
- //Room room = RoomActionEngine.Instance.GetRoomByName(_roomName);
- //RoomActionEngine.Instance.DeleteRoomVariable(room.Id, _name);
-
- //MSMQQueueWrapper.QueueCommand(
- // new BroadcastObjectCommand(
- // UserRepository.Instance.FindClientKeysByRoom(_roomName).ToArray(),
- // new RoomVariableUpdateEvent()
- // {
- // RoomId = room.Id,
- // Name = _name,
- // Action = RoomVariableUpdateAction.Delete
- // }
- // )
- //);
-
- //MSMQQueueWrapper.QueueCommand(
- // new SendObjectCommand(
- // _clientId,
- // new DeleteRoomVariableResponse()
- // {
- // Room = _roomName,
- // Name = _name,
- // }
- // )
- //);
-
- }
- }
-}
diff --git a/SocketService/Command/GetCentralAuthorityCommand.cs b/SocketService/Command/GetCentralAuthorityCommand.cs
deleted file mode 100644
index 9132a3a..0000000
--- a/SocketService/Command/GetCentralAuthorityCommand.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Linq;
-using SocketServer.Core.Messaging;
-using SocketServer.Crypto;
-using SocketServer.Net.Client;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class GetCentralAuthorityCommand : BaseMessageHandler
- {
- private readonly Guid _clientId;
- public GetCentralAuthorityCommand(Guid clientId)
- {
- _clientId = clientId;
- }
-
- public override void Execute()
- {
- var ca = new CentralAuthority(CAKeyProtocol.DH256);
-
- ClientConnection connection =
- ConnectionRepository.Instance.Query(c => c.ClientId == _clientId).FirstOrDefault();
- if (connection == null) return;
-
- connection.SecureKeyProvider = ca.GetProvider();
- MSMQQueueWrapper.QueueCommand(new SendObjectCommand(_clientId, ca));
- }
- }
-}
diff --git a/SocketService/Command/GetCentralAuthorityCommand.cs.orig b/SocketService/Command/GetCentralAuthorityCommand.cs.orig
deleted file mode 100644
index b3225e3..0000000
--- a/SocketService/Command/GetCentralAuthorityCommand.cs.orig
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-<<<<<<< Updated upstream
-using SocketService.Core.Crypto;
-using SocketService.Core.Messaging;
-=======
-using System.Linq;
-using SocketService.Framework.Messaging;
-using SocketService.Crypto;
->>>>>>> Stashed changes
-using SocketService.Net.Client;
-
-namespace SocketService.Command
-{
- [Serializable]
- public class GetCentralAuthorityCommand : BaseMessageHandler
- {
- private readonly Guid _clientId;
- public GetCentralAuthorityCommand(Guid clientId)
- {
- _clientId = clientId;
- }
-
- public override void Execute()
- {
- var ca = new CentralAuthority(CAKeyProtocol.DH64);
-
- ClientConnection connection =
- ConnectionRepository.Instance.Query(c => c.ClientId == _clientId).FirstOrDefault();
- if (connection == null) return;
-
- connection.SecureKeyProvider = ca.GetProvider();
- MSMQQueueWrapper.QueueCommand(new SendObjectCommand(_clientId, ca));
- }
- }
-}
diff --git a/SocketService/Command/GetKeyParametersCommand.cs b/SocketService/Command/GetKeyParametersCommand.cs
deleted file mode 100644
index a85ab96..0000000
--- a/SocketService/Command/GetKeyParametersCommand.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using SocketServer.Net.Client;
-using Org.BouncyCastle.Crypto.Generators;
-using Org.BouncyCastle.Security;
-using Org.BouncyCastle.Crypto.Parameters;
-using SocketServer.Crypto;
-using SocketServer.Shared.Response;
-using SocketServer.Shared.Network;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class GetKeyParametersCommand : BaseCommandHandler
- {
- private readonly Guid _clientId;
- public GetKeyParametersCommand(Guid clientId)
- {
- _clientId = clientId;
- }
-
- public override void Execute()
- {
- ClientConnection connection = ConnectionRepository.Instance.Query(c => c.ClientId == _clientId).FirstOrDefault();
- if (connection != null)
- {
- //connection.Provider = new DHProvider(DHParameterHelper.GenerateParameters());
-
- //connection.Provider.Parameters = DHParameterHelper.GenerateParameters();
-
- //MSMQQueueWrapper.QueueCommand(
- // new SendMessageCommand(_clientId,
- // new GetKeyParametersResponse { G = connection.Provider.Parameters.G.ToByteArray(), P = connection.Provider.Parameters.P.ToByteArray() })
- // );
-
- }
-
- }
- }
-}
diff --git a/SocketService/Command/GetRoomVariableCommand.cs b/SocketService/Command/GetRoomVariableCommand.cs
deleted file mode 100644
index 91832f5..0000000
--- a/SocketService/Command/GetRoomVariableCommand.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Linq;
-using SocketServer.Data;
-using SocketServer.Repository;
-using SocketServer.Shared;
-using SocketServer.Shared.Response;
-using SocketServer.Shared.Serialization;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class GetRoomVariableCommand : BaseCommandHandler
- {
- private readonly int _zoneId;
- private readonly int _roomId;
- private readonly string _name;
- private readonly Guid _clientId;
-
- public GetRoomVariableCommand(Guid clientId, int zoneId, int roomId, string name)
- {
- _clientId = clientId;
- _zoneId = zoneId;
- _roomId = roomId;
- _name = name;
- }
-
- public override void Execute()
- {
- Room room = RoomRepository.Instance.Find(_roomId);
- if (room != null)
- {
- var var = room.RoomVariables.FirstOrDefault(
- target => target.Id == _roomId);
-
- object so = null;
- if( var != null)
- so = var.Value;
-
- //MSMQQueueWrapper.QueueCommand(
- // new SendMessageCommand(_clientId,
- // XmlSerializationHelper.Serialize( new GetRoomVariableResponse { ZoneId = _zoneId, RoomId = room.Id, Name = _name, Value = so } ))
- //);
- }
- }
- }
-}
diff --git a/SocketService/Command/HandleClientRequestCommand.cs b/SocketService/Command/HandleClientRequestCommand.cs
deleted file mode 100644
index 16cebf0..0000000
--- a/SocketService/Command/HandleClientRequestCommand.cs
+++ /dev/null
@@ -1,95 +0,0 @@
-using System;
-using System.Linq;
-using System.Collections.Generic;
-using SocketServer.Shared.Header;
-using SocketServer.Shared.Reflection;
-using SocketServer.Shared;
-using SocketServer.Shared.Serialization;
-using System.Reflection;
-using log4net;
-using SocketServer.Shared.Request;
-using SocketServer.Repository;
-using SocketServer.Net.Client;
-using SocketServer.Crypto;
-using Org.BouncyCastle.Crypto;
-using Org.BouncyCastle.Crypto.Parameters;
-using Org.BouncyCastle.Math;
-using Org.BouncyCastle.Security;
-using SocketServer.Shared.Network;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class HandleClientRequestCommand : BaseCommandHandler
- {
- private readonly Guid _clientId;
- private readonly string _request;
- private readonly string _requestType;
- private readonly string _handlerName;
-
- private static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- public HandleClientRequestCommand(Guid id, string handlerName, string requestType, string request)
- {
- _clientId = id;
- _handlerName = handlerName;
- _requestType = requestType;
- _request = request;
- }
-
- public override void Execute()
- {
- ClientConnection client = ConnectionRepository.Instance.Query( c => c.ClientId == _clientId ).FirstOrDefault();
-
- if (client != null)
- {
- string requestString = ProcessRawRequest(client, _request);
-
- object requestObject
- = DeSerializeRequest(
- _requestType,
- ProcessRawRequest(client, _request));
-
- if (requestObject != null)
- {
- ServiceHandlerRepository.Instance.InvokeHandler(_handlerName, requestObject, _clientId);
- }
- }
- }
-
- private object DeSerializeRequest(string requestTypeString, string requestString)
- {
- Type requestType = ReflectionHelper.FindType(requestTypeString);
- if (requestType != null)
- {
- return XmlSerializationHelper.DeSerialize(requestString, requestType);
- }
- return null;
- }
-
- private string ProcessRawRequest(ClientConnection client, string requestString)
- {
- if (client.RequestHeader.MessageHeader.CompressionType != CompressionTypes.None)
- {
- // decompress
- }
-
- if (client.RequestHeader.MessageHeader.EncryptionHeader.EncryptionType != EncryptionTypes.None)
- {
- // decrypt
- byte [] publicKeyEncoded = client.RequestHeader.MessageHeader.EncryptionHeader.PublicKey;
-
- DHPublicKeyParameters publicKey = new DHPublicKeyParameters(
- ((DHPublicKeyParameters)PublicKeyFactory.CreateKey(publicKeyEncoded)).Y, client.ServerAuthority.Parameters);
-
- BigInteger agreementValue = client.ServerAuthority.GenerateAgreementValue(publicKey);
-
- RijndaelCrypto crypto = new RijndaelCrypto();
- return crypto.Decrypt(requestString, agreementValue.ToString(16));
- }
-
- return requestString;
- }
-
- }
-}
diff --git a/SocketService/Command/ICommand.cs b/SocketService/Command/ICommand.cs
deleted file mode 100644
index 1596286..0000000
--- a/SocketService/Command/ICommand.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace SocketServer.Command
-{
- public interface ICommand
- {
- void Execute();
- }
-}
diff --git a/SocketService/Command/ListUsersInRoomCommand.cs b/SocketService/Command/ListUsersInRoomCommand.cs
deleted file mode 100644
index 268f134..0000000
--- a/SocketService/Command/ListUsersInRoomCommand.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using SocketService.Framework.Messaging;
-using SocketService.Framework.Client.Data.Domain;
-using SocketService.Framework.Client.Data;
-using SocketService.Framework.SharedObjects;
-using SocketService.Framework.Client.Response;
-
-namespace SocketService.Command
-{
- [Serializable]
- public class ListUsersInRoomCommand : BaseMessageHandler
- {
- private readonly string _room;
- private readonly Guid _clientId;
- public ListUsersInRoomCommand(string room, Guid clientId)
- {
- _room = room;
- _clientId = clientId;
- }
-
-
- public override void Execute()
- {
- User user = UserRepository.Instance.FindUserByClientKey(_clientId);
- if (user != null)
- {
- List userList = new List();
- if (string.IsNullOrEmpty(_room))
- {
- userList = UserRepository.Instance.FindUsersByRoom(user.Room);
- }
- else
- {
- userList = UserRepository.Instance.FindUsersByRoom(_room);
- }
-
- var query = from u in userList
- select new ServerUser() { Name = u.UserName };
-
- MSMQQueueWrapper.QueueCommand(
- new SendObjectCommand(_clientId,
- new ListUsersInRoomResponse() { Users = query.ToArray() })
- );
- }
- }
- }
-}
diff --git a/SocketService/Command/LoginUserCommand.cs b/SocketService/Command/LoginUserCommand.cs
deleted file mode 100644
index cf1adbe..0000000
--- a/SocketService/Command/LoginUserCommand.cs
+++ /dev/null
@@ -1,170 +0,0 @@
-using System;
-using System.Linq;
-using SocketServer.Actions;
-using SocketServer.Data;
-using SocketServer.Repository;
-using SocketServer.Shared;
-using SocketServer.Shared.Response;
-using SocketServer.Shared.Serialization;
-using SocketServer.Net.Client;
-using SocketServer.Shared.Event;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class LoginUserCommand : BaseCommandHandler
- {
- private readonly Guid _clientId;
- private readonly string _username;
-
- public LoginUserCommand(Guid clientId, string username)
- {
- _clientId = clientId;
- _username = username;
- }
-
- public override void Execute()
- {
- Logger.InfoFormat("Client {0} logging in.", _clientId);
-
- // get/create default zone
- var defaultZone = ZoneActionEngine.Instance.CreateZone(ZoneActionEngine.DefaultZone);
-
- // get/create default room
- var defaultRoom = RoomActionEngine.Instance.CreateRoom(RoomActionEngine.DefaultRoom, defaultZone);
-
- var connection = ConnectionRepository.Instance.Query( c => c.ClientId == _clientId ).FirstOrDefault();
-
- if (connection != null)
- {
- // authenticate
- bool success = UserActionEngine.Instance.LoginUser(_clientId, _username, defaultRoom);
- LoginResponse response = new LoginResponse() { Success = success, UserName = _username };
- MSMQQueueWrapper.QueueCommand(
- new SendServerResponseCommand(
- _clientId,
- XmlSerializationHelper.Serialize(response),
- ResponseTypes.LoginResponse,
- connection.RequestHeader.MessageHeader));
-
- if (success)
- {
- MSMQQueueWrapper
- .QueueCommand
- (
- new CreateRoomCommand(
- _clientId,
- ZoneActionEngine.DefaultZone,
- RoomActionEngine.DefaultRoom)
- );
-
- // success = UserActionEngine.Instance.ClientChangeRoom(_clientId, defaultRoom.Name);
-
-
-
- //if (success)
- //{
- // var user = UserRepository.Instance.Query(u => u.ClientKey == _clientId).FirstOrDefault();
-
- // // send join room event
- // JoinRoomEvent evt = new JoinRoomEvent()
- // {
- // RoomName = defaultRoom.Name,
- // RoomId = defaultRoom.Id,
- // Capacity = defaultRoom.Capacity,
- // Hidden = defaultRoom.IsPrivate,
- // Protected = defaultRoom.IsPersistable,
- // RoomDescription = string.Empty,
- // Users = defaultRoom.Users.Select(u => u.Name).ToList()
- // };
-
- // MSMQQueueWrapper.QueueCommand(
- // new SendServerResponseCommand(
- // _clientId,
- // XmlSerializationHelper.Serialize(evt),
- // ResponseTypes.JoinRoomEvent,
- // connection.RequestHeader.MessageHeader));
-
- // RoomUserUpdateEvent roomUpdateEvent = new RoomUserUpdateEvent()
- // {
- // RoomName = defaultRoom.Name,
- // RoomId = defaultRoom.Id,
- // Action = RoomUserUpdateAction.AddUser,
- // UserName = user.Name,
- // ZoneId = defaultZone.Id
- // };
-
- // MSMQQueueWrapper.QueueCommand(
- // new BroadcastMessageCommand(
- // ConnectionRepository
- // .Instance
- // .Query(c => c.ClientId != _clientId)
- // .Select(c1 => c1.ClientId).ToArray(),
- // XmlSerializationHelper.Serialize(roomUpdateEvent),
- // ResponseTypes.RoomUserUpdateEvent,
- // connection.RequestHeader.MessageHeader));
-
- }
- }
-
-
- //User user = UserRepository.Instance.Query(u => u.ClientKey.Equals(_clientId)).FirstOrDefault();
- //if (user != null)
- //{
-
-
- //UserActionEngine.Instance.ClientChangeRoom(_clientId, RoomActionEngine.DefaultRoom);
-
- // tell clients about new user
- //if (room != null)
- // MSMQQueueWrapper.QueueCommand(
- // new BroadcastMessageCommand(
- // room.Users.Where(u =>
- // {
- // if (u == null) throw new ArgumentNullException("u");
- // return u.ClientKey != _clientId;
- // }).
- // Select(u => u != null ? u.ClientKey : new Guid()).
- // ToArray(),
- // new RoomUserUpdateEvent
- // {
- // Action = RoomUserUpdateAction.AddUser,
- // RoomId = room.Id,
- // RoomName = room.Name,
- // UserName = user.Name
- // }
- // )
- // );
-
-
- // send login response
- //MSMQQueueWrapper.QueueCommand(
- // new SendMessageCommand(_clientId,
- // XmlSerializationHelper.Serialize(new LoginResponse {UserName = _username, Success = true}))
- // );
-
- // finally send a join room event to user
- //if (room != null)
- // MSMQQueueWrapper.QueueCommand(
- // new SendObjectCommand(_clientId,
- // new JoinRoomEvent
- // {
- // RoomName = room.Name,
- // RoomId = room.Id,
- // Protected = false,
- // Hidden = false,
- // Capacity = -1,
- // RoomDescription = "",
- // RoomVariables = room.RoomVariables.Select(
- // rv =>
- // ObjectSerialize.Deserialize(rv.Value)).
- // ToArray(),
- // Users = room.Users.Select(
- // u => u.Name
- // ).ToArray()
- // }
- // )
- // );
- }
- }
-}
diff --git a/SocketService/Command/LogoutUserCommand.cs b/SocketService/Command/LogoutUserCommand.cs
deleted file mode 100644
index 16215ec..0000000
--- a/SocketService/Command/LogoutUserCommand.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using System;
-using System.Linq;
-using SocketServer.Actions;
-using SocketServer.Net;
-using SocketServer.Net.Client;
-using SocketServer.Repository;
-
-namespace SocketServer.Command
-{
- [Serializable]
- internal class LogoutUserCommand : BaseCommandHandler
- {
- private readonly Guid _clientId;
-
- public LogoutUserCommand(Guid clientId)
- {
- _clientId = clientId;
- }
-
- public override void Execute()
- {
- Logger.InfoFormat("Client {0} logging out.", _clientId);
-
- var connection = ConnectionRepository.Instance.Query( c => c.ClientId == _clientId).FirstOrDefault();
- if (connection != null)
- ConnectionRepository.Instance.RemoveConnection(connection);
-
- var clientSocket = SocketRepository.Instance.FindByClientId(_clientId);
- if (clientSocket != null)
- {
- try
- {
- clientSocket.Close();
- }
- catch (Exception ex)
- {
- Logger.Error(ex.ToString());
- }
- }
-
- var user = UserRepository.Instance.Query(u => u.ClientKey == _clientId).FirstOrDefault();
- if (user != null && user.Room != null)
- {
- //var userList = user.Room.Users.Select(u => u.ClientKey);
- //MSMQQueueWrapper.QueueCommand(
- // new BroadcastMessageCommand(userList.ToArray(),
- // new PublicMessageEvent
- // {
- // RoomId = (int) user.RoomId,
- // UserName = string.Empty,
- // Message = string.Format("{0} has logged out.", user.Name),
- // ZoneId = (int) user.Room.ZoneId
- // })
- // );
- }
-
- UserActionEngine.Instance.LogoutUser(_clientId);
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService/Command/LogoutUserCommand.cs.orig b/SocketService/Command/LogoutUserCommand.cs.orig
deleted file mode 100644
index 49b463b..0000000
--- a/SocketService/Command/LogoutUserCommand.cs.orig
+++ /dev/null
@@ -1,69 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using SocketService.Actions;
-<<<<<<< Updated upstream
-using SocketService.Core.Messaging;
-=======
-using SocketService.Framework.Client.Event;
-using SocketService.Framework.Client.Sockets;
-using SocketService.Framework.Data;
-using SocketService.Framework.Messaging;
-using SocketService.Net;
->>>>>>> Stashed changes
-using SocketService.Net.Client;
-using SocketService.Repository;
-
-namespace SocketService.Command
-{
- [Serializable]
- internal class LogoutUserCommand : BaseMessageHandler
- {
- private readonly Guid _clientId;
-
- public LogoutUserCommand(Guid clientId)
- {
- _clientId = clientId;
- }
-
- public override void Execute()
- {
- Logger.InfoFormat("Client {0} logging out.", _clientId);
-
- var connection = ConnectionRepository.Instance.Query( c => c.ClientId == _clientId).FirstOrDefault();
- if (connection != null)
- ConnectionRepository.Instance.RemoveConnection(connection);
-
- var clientSocket = SocketRepository.Instance.FindByClientId(_clientId);
- if (clientSocket != null)
- {
- try
- {
- clientSocket.Close();
- }
- catch (Exception ex)
- {
- Logger.Error(ex.ToString());
- }
- }
-
- var user = UserRepository.Instance.Query(u => u.ClientKey == _clientId).FirstOrDefault();
- if (user != null && user.Room != null)
- {
- var userList = user.Room.Users.Select(u => u.ClientKey);
- MSMQQueueWrapper.QueueCommand(
- new BroadcastObjectCommand(userList.ToArray(),
- new PublicMessageEvent
- {
- RoomId = (int) user.RoomId,
- UserName = string.Empty,
- Message = string.Format("{0} has logged out.", user.Name),
- ZoneId = (int) user.Room.ZoneId
- })
- );
- }
-
- UserActionEngine.Instance.LogoutUser(_clientId);
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService/Command/MSMQQueueWatcher.cs b/SocketService/Command/MSMQQueueWatcher.cs
deleted file mode 100644
index 434f841..0000000
--- a/SocketService/Command/MSMQQueueWatcher.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using System;
-using System.Messaging;
-using log4net;
-using System.Reflection;
-
-namespace SocketServer.Command
-{
- public class MSMQQueueWatcher : IDisposable
- {
- private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private readonly MessageQueue _receiveQueue;
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// Name of the queue.
- public MSMQQueueWatcher(string queueName)
- {
- // open the queue
- _receiveQueue = new MessageQueue(queueName) {Formatter = new BinaryMessageFormatter()};
- }
-
- ///
- /// Closes the queue.
- ///
- public void CloseQueue()
- {
- _receiveQueue.Close();
- }
-
- ///
- /// Recieves the message.
- ///
- ///
- /// The milliseconds.
- ///
- public T RecieveMessage(int milliseconds) where T : class
- {
- var t = default(T);
- try
- {
- var myMessage = _receiveQueue.Receive(TimeSpan.FromMilliseconds(milliseconds));
- if (myMessage != null) t = myMessage.Body as T;
- }
- catch (MessageQueueException e)
- {
- // if MessageQueue.Receive times out, we'll ignore the exception
- // otherwise, do something useful with the error (log, display, etc.)
- if (e.MessageQueueErrorCode != MessageQueueErrorCode.IOTimeout)
- {
- Log.ErrorFormat("Error: ({0}) {1}", e.ErrorCode, e.Message);
- }
- }
- return t;
- }
-
- ///
- /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
- ///
- public void Dispose()
- {
- CloseQueue();
- }
- }
-}
diff --git a/SocketService/Command/MSMQQueueWrapper.cs b/SocketService/Command/MSMQQueueWrapper.cs
deleted file mode 100644
index dfa007b..0000000
--- a/SocketService/Command/MSMQQueueWrapper.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System;
-using System.Messaging;
-using System.Configuration;
-using log4net;
-using System.Reflection;
-using SocketServer.Configuration;
-
-namespace SocketServer.Command
-{
- public class MSMQQueueWrapper
- {
- private static readonly string QueuePath;
- private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- static MSMQQueueWrapper()
- {
- SocketServerConfiguration config = ServerConfigurationHelper.GetServerConfiguration();
-
- if (config.Queues.Count > 0)
- {
- QueuePath = config.Queues[0].QueuePath;
- }
- else
- {
- throw new Exception("No queues specified in configuration.");
- }
- }
-
- ///
- /// Queues the command.
- ///
- /// The c.
- public static void QueueCommand(ICommand c)
- {
- try
- {
- // open the queue
- var mq = new MessageQueue(QueuePath)
- {DefaultPropertiesToSend = {Recoverable = true}, Formatter = new BinaryMessageFormatter()};
-
- // set the message to durable.
-
- // set the formatter to Binary, default is XML
-
- // send the command object
- mq.Send(c, "Command Message");
- mq.Close();
- }
- catch (Exception e)
- {
- Log.ErrorFormat("Error: {0}", e.Message);
- }
- }
-
- }
-}
diff --git a/SocketService/Command/NegotiateKeysCommand.cs b/SocketService/Command/NegotiateKeysCommand.cs
deleted file mode 100644
index ca879ef..0000000
--- a/SocketService/Command/NegotiateKeysCommand.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using SocketServer.Net.Client;
-using SocketServer.Shared.Response;
-using SocketServer.Crypto;
-using Org.BouncyCastle.Crypto.Generators;
-using Org.BouncyCastle.Security;
-using Org.BouncyCastle.Crypto.Parameters;
-using Org.BouncyCastle.X509;
-using Org.BouncyCastle.Math;
-using Org.BouncyCastle.Crypto;
-using Org.BouncyCastle.Asn1.X509;
-using SocketServer.Shared;
-using SocketServer.Shared.Serialization;
-using SocketServer.Shared.Network;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class NegotiateKeysCommand : BaseCommandHandler
- {
- private readonly Guid _clientGuid;
- public NegotiateKeysCommand(Guid clientGuid)
- {
- _clientGuid = clientGuid;
- }
-
- ///
- /// Executes this instance.
- ///
- public override void Execute()
- {
-
- ClientConnection connection = ConnectionRepository.Instance.Query(c => c.ClientId == _clientGuid).FirstOrDefault();
- if (connection != null)
- {
- //SubjectPublicKeyInfo publicKeyInfo
- // = SubjectPublicKeyInfoFactory
- // .CreateSubjectPublicKeyInfo(connection.ServerAuthority.GetPublicKeyParameter());
-
- //NegotiateKeysResponse response = new NegotiateKeysResponse()
- //{
- // ServerPublicKey = publicKeyInfo.ToAsn1Object().GetDerEncoded(),
- // Prime = connection.ServerAuthority.P.ToString(16),
- // G = connection.ServerAuthority.G.ToString(16)
- //};
-
- //MSMQQueueWrapper.QueueCommand(
- // new SendServerResponseCommand(
- // _clientGuid,
- // XmlSerializationHelper.Serialize(response),
- // ResponseTypes.NegotiateKeysResponse,
- // connection.RequestHeader.MessageHeader));
-
- }
- }
- }
-}
diff --git a/SocketService/Command/ParseRequestCommand.cs b/SocketService/Command/ParseRequestCommand.cs
deleted file mode 100644
index 1e6fec0..0000000
--- a/SocketService/Command/ParseRequestCommand.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-using System;
-using System.Linq;
-using SocketServer.Messaging;
-using SocketServer.Crypto;
-using SocketServer.Net.Client;
-using SocketServer.Repository;
-using SocketServer.Shared;
-using SocketServer.Shared.Request;
-
-namespace SocketServer.Command
-{
- [Serializable]
- class ParseRequestCommand : BaseMessageHandler
- {
- private readonly byte[] _serialized;
- private readonly Guid _clientId;
-
- public ParseRequestCommand(Guid clientId, byte[] serialized)
- {
- _serialized = serialized;
- _clientId = clientId;
- }
-
- public override void Execute()
- {
- //var requestWrapper = ObjectSerialize.Deserialize(_serialized);
- //var payload = DecryptRequest(requestWrapper);
-
- //var handlerType = payload.GetType();
- //var handlerList = ServiceHandlerLookup.Instance.GetHandlerListByType(handlerType);
-
- //MSMQQueueWrapper.QueueCommand(
- // new HandleClientRequestCommand(_clientId, payload, handlerList)
- //);
- }
-
- //private object DecryptRequest(ClientRequest requestWrapper)
- //{
- // //// switch on encryption type, and create a decryptor for that type
- // //// with the remote private key and iv as salt
- // //var algorithm = AlgorithmType.AES;
-
- // //switch (requestWrapper.Encryption)
- // //{
- // // case EncryptionType.DES:
- // // algorithm = AlgorithmType.DES;
- // // break;
-
- // // case EncryptionType.TripleDES:
- // // algorithm = AlgorithmType.TripleDES;
- // // break;
-
- // // case EncryptionType.None:
- // // algorithm = AlgorithmType.None;
- // // break;
- // //}
-
-
- // //if (algorithm == AlgorithmType.None)
- // //{
- // // return ObjectSerialize.Deserialize(requestWrapper.RequestData);
- // //}
-
- // //var connection = ConnectionRepository.Instance.Query( c => c.ClientId == _clientId).FirstOrDefault();
- // //if (connection == null)
- // //{
- // // return null;
- // //}
-
- // //var privateKey = connection.Provider.Agree();
- // //using (var cryptoWrapper = CryptoManager.CreateDecryptor(algorithm, privateKey, requestWrapper.EncryptionPublicKey))
- // //{
- // // return ObjectSerialize.Deserialize(cryptoWrapper.Decrypt(requestWrapper.RequestData));
- // //}
-
- // //var privateKey = connection.SecureKeyProvider.CreatePrivateKey(connection.RemotePublicKey);
- // //using (var cryptoWrapper = CryptoManager.CreateDecryptor(algorithm,
- // // privateKey.ToByteArray(),
- // // requestWrapper.EncryptionPublicKey))
- // //{
- // // return ObjectSerialize.Deserialize(cryptoWrapper.Decrypt(requestWrapper.RequestData));
- // //}
-
- // return null;
- //}
- }
-}
diff --git a/SocketService/Command/ParseRequestCommand.cs.orig b/SocketService/Command/ParseRequestCommand.cs.orig
deleted file mode 100644
index 6f585c2..0000000
--- a/SocketService/Command/ParseRequestCommand.cs.orig
+++ /dev/null
@@ -1,86 +0,0 @@
-using System;
-<<<<<<< Updated upstream
-using SocketService.Client.Core.Request;
-using SocketService.Core.Crypto;
-using SocketService.Core.Messaging;
-=======
-using System.Linq;
-using SocketService.Framework.Client.Request;
-using SocketService.Framework.Messaging;
-using SocketService.Framework.Client.Serialize;
-using SocketService.Crypto;
->>>>>>> Stashed changes
-using SocketService.Net.Client;
-using SocketService.Repository;
-using SocketService.Shared;
-
-namespace SocketService.Command
-{
- [Serializable]
- class ParseRequestCommand : BaseMessageHandler
- {
- private readonly byte[] _serialized;
- private readonly Guid _clientId;
-
- public ParseRequestCommand(Guid clientId, byte[] serialized)
- {
- _serialized = serialized;
- _clientId = clientId;
- }
-
- public override void Execute()
- {
- var requestWrapper = ObjectSerialize.Deserialize(_serialized);
- var payload = DecryptRequest(requestWrapper);
-
- var handlerType = payload.GetType();
- var handlerList = ServiceHandlerLookup.Instance.GetHandlerListByType(handlerType);
-
- MSMQQueueWrapper.QueueCommand(
- new HandleClientRequestCommand(_clientId, payload, handlerList)
- );
- }
-
- private object DecryptRequest(ClientRequestWrapper requestWrapper)
- {
- // switch on encryption type, and create a decryptor for that type
- // with the remote private key and iv as salt
- var algorithm = AlgorithmType.AES;
-
- switch (requestWrapper.Encryption)
- {
- case EncryptionType.DES:
- algorithm = AlgorithmType.DES;
- break;
-
- case EncryptionType.TripleDES:
- algorithm = AlgorithmType.TripleDES;
- break;
-
- case EncryptionType.None:
- algorithm = AlgorithmType.None;
- break;
- }
-
-
- if (algorithm == AlgorithmType.None)
- {
- return ObjectSerialize.Deserialize(requestWrapper.RequestData);
- }
-
- var connection = ConnectionRepository.Instance.Query( c => c.ClientId == _clientId).FirstOrDefault();
- if (connection == null)
- {
- return null;
- }
-
- var privateKey = connection.SecureKeyProvider.CreatePrivateKey(connection.RemotePublicKey);
- using (var cryptoWrapper = Wrapper.CreateDecryptor(algorithm,
- privateKey.ToByteArray(),
- requestWrapper.EncryptionPublicKey))
- {
- return ObjectSerialize.Deserialize(cryptoWrapper.Decrypt(requestWrapper.RequestData));
- }
- }
- }
-}
diff --git a/SocketService/Command/PublicMessageCommand.cs b/SocketService/Command/PublicMessageCommand.cs
deleted file mode 100644
index 8fa6ac2..0000000
--- a/SocketService/Command/PublicMessageCommand.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-using System;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class PublicMessageCommand : BaseCommandHandler
- {
- private readonly string _message;
- private readonly int _roomId;
- private readonly string _user;
- private readonly int _zoneId;
-
- public PublicMessageCommand(int zoneId, int roomId, string user, string message)
- {
- _zoneId = zoneId;
- _roomId = roomId;
- _user = user;
- _message = message;
- }
-
- public override void Execute()
- {
- //Room room =
- //MSMQQueueWrapper.QueueCommand(
- // new BroadcastObjectCommand(UserRepository.Instance.Find(.ToArray(),
- // new PublicMessageEvent() { ZoneId = _zoneId, RoomId = _roomId, UserName = _user, Message = _message }
- // )
- //);
-
- //// check if room has any plugins, call the plugin UserSendPublicMessage event
- //Room room = RoomRepository.Instance.FindByName(_room);
- //if (room != null)
- //{
- // ChainAction lastAction = ChainAction.NoAction;
- // foreach (IPlugin plugin in room.GetRoomPlugins())
- // {
- // lastAction = plugin.UserSendPublicMessage(new UserPublicMessageContext() { Zone = _zone, Room = _room, User = _user, Message = _message });
- // if ( lastAction == ChainAction.Fail || lastAction == ChainAction.Stop)
- // {
- // // we are done
- // break;
- // }
- // }
-
- // // now check for last action
- // if (lastAction == ChainAction.Fail)
- // {
- // // we had a fail action, handle it somehow?
- // }
- //}
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService/Command/SendMessageCommand.cs b/SocketService/Command/SendMessageCommand.cs
deleted file mode 100644
index eeebe3a..0000000
--- a/SocketService/Command/SendMessageCommand.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using SocketServer.Messaging;
-using SocketServer.Net;
-using SocketServer.Shared;
-using SocketServer.Shared.Sockets;
-using SocketServer.Shared.Interop.Java;
-using System.Xml.Serialization;
-using System.Text;
-using System.IO;
-using SocketServer.Shared.Serialization;
-
-namespace SocketServer.Command
-{
- [Serializable]
- internal class SendMessageCommand : BaseMessageHandler
- {
- private readonly Guid _clientId;
- private readonly string _message;
-
- public SendMessageCommand(Guid clientId, string message)
- {
- _clientId = clientId;
- _message = message;
- }
-
- public override void Execute()
- {
- ZipSocket connection = SocketRepository.Instance.FindByClientId(_clientId);
- if (connection != null)
- {
- connection.SendData(_message.SerializeUTF());
- }
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService/Command/SendServerResponseCommand.cs b/SocketService/Command/SendServerResponseCommand.cs
deleted file mode 100644
index 1bbc00d..0000000
--- a/SocketService/Command/SendServerResponseCommand.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using SocketServer.Shared;
-using SocketServer.Shared.Header;
-using SocketServer.Net.Client;
-using SocketServer.Crypto;
-using SocketServer.Shared.Serialization;
-using Org.BouncyCastle.Crypto.Parameters;
-using Org.BouncyCastle.Math;
-using Org.BouncyCastle.Security;
-using SocketServer.Shared.Sockets;
-using SocketServer.Net;
-using SocketServer.Shared.Network;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class SendServerResponseCommand : BaseCommandHandler
- {
- private readonly Guid _clientId;
- private readonly string _response;
- private readonly CompressionTypes _compressionType;
- private readonly EncryptionTypes _encryptionType;
- private readonly ResponseTypes _responseType;
-
- public SendServerResponseCommand(Guid clientId, string response, ResponseTypes responseType, MessageHeader header)
- {
- _clientId = clientId;
- _response = response;
- _responseType = responseType;
- _compressionType = header.CompressionType;
- _encryptionType = header.EncryptionHeader.EncryptionType;
- }
-
-
- public override void Execute()
- {
- ClientConnection client = ConnectionRepository.Instance.Query(c => c.ClientId == _clientId).FirstOrDefault();
- if (client != null)
- {
- ResponseHeader responseHeader = ResponseBuilder.BuildResponseHeader(_encryptionType, _compressionType, _responseType);
- ZipSocket connection = SocketRepository.Instance.FindByClientId(_clientId);
- if (connection != null)
- {
- connection.SendData(
- XmlSerializationHelper
- .Serialize(responseHeader)
- .SerializeUTF());
-
-
- connection.SendData(
- ResponseBuilder.ProcessResponse(
- client.ServerAuthority,
- client
- .RequestHeader
- .MessageHeader
- .EncryptionHeader
- .PublicKey,
- responseHeader,
- _response).SerializeUTF());
- }
- }
- }
- }
-}
diff --git a/SocketService/Command/ServerMessageCommand.cs b/SocketService/Command/ServerMessageCommand.cs
deleted file mode 100644
index cbd6e6a..0000000
--- a/SocketService/Command/ServerMessageCommand.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using SocketService.Framework.Messaging;
-
-namespace SocketService.Command
-{
- public class ServerMessageCommand : ICommand
- {
- private IServerMessage _message;
-
- public ServerMessageCommand(IServerMessage message)
- {
- _message = message;
- }
-
- public void Execute()
- {
- // execution is simple, just call process message
- // pass in the server context, ah, that's the trick isn't it?
- _message.ProcessMessage();
- }
- }
-}
diff --git a/SocketService/Command/ServerStartingCommand.cs b/SocketService/Command/ServerStartingCommand.cs
deleted file mode 100644
index c0f48e8..0000000
--- a/SocketService/Command/ServerStartingCommand.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System;
-using SocketServer.Actions;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class ServerStartingCommand : BaseCommandHandler
- {
- public override void Execute()
- {
- // remove all users first
- UserActionEngine.Instance.RemoveAllUsers();
-
- // remove all non-persistent rooms
- RoomActionEngine.Instance.RemoveNonPersistentRooms();
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService/Command/UpdateRoomVariableCommand.cs b/SocketService/Command/UpdateRoomVariableCommand.cs
deleted file mode 100644
index 2e25666..0000000
--- a/SocketService/Command/UpdateRoomVariableCommand.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using System;
-using System.Linq;
-using SocketServer.Data;
-using SocketServer.Repository;
-
-namespace SocketServer.Command
-{
- [Serializable]
- public class UpdateRoomVariableCommand : BaseCommandHandler
- {
- private readonly Guid _clientId;
- private readonly string _name;
- private readonly int _roomId;
- private readonly object _so;
- private readonly int _zoneId;
-
- public UpdateRoomVariableCommand(Guid clientId, int zoneId, int roomId, string name, object value)
- {
- _zoneId = zoneId;
- _roomId = roomId;
- _name = name;
- _so = value;
- _clientId = clientId;
- }
-
-
- public override void Execute()
- {
- Room room = RoomRepository.Instance.Find(_roomId);
-
- //RoomActionEngine.Instance.UpdateRoomVariable(room.Id, _name, _so);
-
- //MSMQQueueWrapper.QueueCommand(
- // new BroadcastMessageCommand(
- // room.Users.Select(u => u == null ? new Guid() : u.ClientKey).ToArray(),
- // new RoomVariableUpdateEvent
- // {
- // ZoneId = _zoneId,
- // RoomId = room.Id,
- // Name = _name,
- // Value = _so,
- // Action = RoomVariableUpdateAction.Update
- // }
- // )
- // );
-
- //MSMQQueueWrapper.QueueCommand(
- // new SendObjectCommand(
- // _clientId,
- // new UpdateRoomVariableResponse()
- // {
- // Room = _roomName,
- // Name = _name,
- // Value = _so,
- // }
- // )
- //);
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService/Configuration/MessageQueueCollection.cs b/SocketService/Configuration/MessageQueueCollection.cs
deleted file mode 100644
index 3fafcb4..0000000
--- a/SocketService/Configuration/MessageQueueCollection.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Configuration;
-
-namespace SocketServer.Configuration
-{
- public class MessageQueueCollection : ConfigurationElementCollection
- {
- public MessageQueueCollection()
- {
- }
-
- public MessageQueueConfigurationElement this[int index]
- {
- get { return (MessageQueueConfigurationElement)BaseGet(index); }
- set
- {
- if (BaseGet(index) != null)
- {
- BaseRemoveAt(index);
- }
- BaseAdd(index, value);
- }
- }
-
- public void Add(MessageQueueConfigurationElement element)
- {
- BaseAdd(element);
- }
-
- public void Clear()
- {
- BaseClear();
- }
-
- protected override ConfigurationElement CreateNewElement()
- {
- return new MessageQueueConfigurationElement();
- }
-
- protected override object GetElementKey(ConfigurationElement element)
- {
- return ((MessageQueueConfigurationElement)element).QueueName;
- }
-
- public void Remove(MessageQueueConfigurationElement element)
- {
- BaseRemove(element.QueueName);
- }
-
- public void RemoveAt(int index)
- {
- BaseRemoveAt(index);
- }
-
- public void Remove(string name)
- {
- BaseRemove(name);
- }
- }
-}
diff --git a/SocketService/Configuration/MessageQueueConfigurationElement.cs b/SocketService/Configuration/MessageQueueConfigurationElement.cs
deleted file mode 100644
index 3ede4f9..0000000
--- a/SocketService/Configuration/MessageQueueConfigurationElement.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Configuration;
-
-namespace SocketServer.Configuration
-{
- public class MessageQueueConfigurationElement : ConfigurationElement
- {
- public MessageQueueConfigurationElement()
- {
- }
-
- public MessageQueueConfigurationElement(String queueKey, String queueName)
- {
- QueueName = queueKey;
- QueuePath = queueName;
- }
-
- [ConfigurationProperty("name", IsRequired = true)]
- public String QueueName
- {
- get
- { return (String)this["name"]; }
- set
- { this["name"] = value; }
- }
-
- [ConfigurationProperty("path", IsRequired = true)]
- public String QueuePath
- {
- get
- { return (String)this["path"]; }
- set
- { this["path"] = value; }
- }
-
- }
-}
diff --git a/SocketService/Configuration/PluginInfoInstanceCollection.cs b/SocketService/Configuration/PluginInfoInstanceCollection.cs
deleted file mode 100644
index c6a7412..0000000
--- a/SocketService/Configuration/PluginInfoInstanceCollection.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System.Configuration;
-
-namespace SocketServer.Configuration
-{
- public class PluginInfoInstanceCollection : ConfigurationElementCollection
- {
- protected override ConfigurationElement CreateNewElement()
- {
- return new PluginInfoInstanceElement();
- }
-
- protected override object GetElementKey(ConfigurationElement element)
- {
- return ((PluginInfoInstanceElement) element).Name;
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService/Configuration/PluginInfoInstanceElement.cs b/SocketService/Configuration/PluginInfoInstanceElement.cs
deleted file mode 100644
index df297d2..0000000
--- a/SocketService/Configuration/PluginInfoInstanceElement.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System.Configuration;
-
-namespace SocketServer.Configuration
-{
- public class PluginInfoInstanceElement : ConfigurationElement
- {
- [ConfigurationProperty("name", IsKey = true, IsRequired = true)]
- public string Name
- {
- get { return (string) base["name"]; }
- set { base["name"] = value; }
- }
-
- [ConfigurationProperty("path", IsRequired = true)]
- public string Path
- {
- get { return (string) base["path"]; }
- set { base["path"] = value; }
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService/Configuration/RequestHandlerCollection.cs b/SocketService/Configuration/RequestHandlerCollection.cs
deleted file mode 100644
index a55fa51..0000000
--- a/SocketService/Configuration/RequestHandlerCollection.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Configuration;
-
-namespace SocketServer.Configuration
-{
- public class RequestHandlerCollection : ConfigurationElementCollection
- {
- public RequestHandlerCollection()
- {
- }
-
- public RequestHandlerConfigurationElement this[int index]
- {
- get { return (RequestHandlerConfigurationElement)BaseGet(index); }
- set
- {
- if (BaseGet(index) != null)
- {
- BaseRemoveAt(index);
- }
- BaseAdd(index, value);
- }
- }
-
- public void Add(RequestHandlerConfigurationElement serviceConfig)
- {
- BaseAdd(serviceConfig);
- }
-
- public void Clear()
- {
- BaseClear();
- }
-
- protected override ConfigurationElement CreateNewElement()
- {
- return new RequestHandlerConfigurationElement();
- }
-
- protected override object GetElementKey(ConfigurationElement element)
- {
- return ((RequestHandlerConfigurationElement)element).RequestType;
- }
-
- public void Remove(RequestHandlerConfigurationElement serviceConfig)
- {
- BaseRemove(serviceConfig.RequestType);
- }
-
- public void RemoveAt(int index)
- {
- BaseRemoveAt(index);
- }
-
- public void Remove(string name)
- {
- BaseRemove(name);
- }
- }
-}
diff --git a/SocketService/Configuration/RequestHandlerConfigurationElement.cs b/SocketService/Configuration/RequestHandlerConfigurationElement.cs
deleted file mode 100644
index 7c5fdd6..0000000
--- a/SocketService/Configuration/RequestHandlerConfigurationElement.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Configuration;
-
-namespace SocketServer.Configuration
-{
- public class RequestHandlerConfigurationElement : ConfigurationElement
- {
- public RequestHandlerConfigurationElement()
- {
- }
-
- public RequestHandlerConfigurationElement(String requestTypeTag, String requestType, String handlerType)
- {
- Key = requestTypeTag;
- HandlerType = handlerType;
- RequestType = requestType;
- }
-
- [ConfigurationProperty("key", IsRequired = true)]
- public String Key
- {
- get
- { return (String)this["key"]; }
- set
- { this["key"] = value; }
- }
-
- [ConfigurationProperty("requestType", IsRequired = true)]
- public String RequestType
- {
- get
- { return (String)this["requestType"]; }
- set
- { this["requestType"] = value; }
- }
-
- [ConfigurationProperty("handlerType", IsRequired = true)]
- public String HandlerType
- {
- get
- { return (String)this["handlerType"]; }
- set
- { this["handlerType"] = value; }
- }
- }
-}
diff --git a/SocketService/Configuration/RequestHandlerConfigurationSection.cs b/SocketService/Configuration/RequestHandlerConfigurationSection.cs
deleted file mode 100644
index 0bd697e..0000000
--- a/SocketService/Configuration/RequestHandlerConfigurationSection.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Configuration;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SocketServer.Core.Configuration
-{
- public class RequestHandlerConfigurationSection : ConfigurationSection
- {
- [ConfigurationProperty("Handlers", IsDefaultCollection = false)]
- [ConfigurationCollection(typeof(RequestHandlerCollection),
- AddItemName = "add",
- ClearItemsName = "clear",
- RemoveItemName = "remove")]
- public RequestHandlerCollection Handlers
- {
- get
- {
- return (RequestHandlerCollection)base["Handlers"];
- }
- }
- }
-}
diff --git a/SocketService/Configuration/ServerConfigurationHelper.cs b/SocketService/Configuration/ServerConfigurationHelper.cs
deleted file mode 100644
index a9324ea..0000000
--- a/SocketService/Configuration/ServerConfigurationHelper.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Configuration;
-
-namespace SocketServer.Configuration
-{
- public static class ServerConfigurationHelper
- {
- public static SocketServerConfiguration GetServerConfiguration()
- {
- return (SocketServerConfiguration)ConfigurationManager.
- GetSection("socketServerConfiguration");
- }
- }
-}
diff --git a/SocketService/Configuration/SocketServerConfiguration.cs b/SocketService/Configuration/SocketServerConfiguration.cs
deleted file mode 100644
index 515112c..0000000
--- a/SocketService/Configuration/SocketServerConfiguration.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System.Configuration;
-
-namespace SocketServer.Configuration
-{
- public class SocketServerConfiguration : ConfigurationSection
- {
- [ConfigurationProperty("plugins", IsRequired = true, IsDefaultCollection = true)]
- public PluginInfoInstanceCollection Plugins
- {
- get { return (PluginInfoInstanceCollection)this["plugins"]; }
- set { this["plugins"] = value; }
- }
-
- [ConfigurationProperty("listenPort", IsRequired = true)]
- public int ListenPort
- {
- get { return (int)this["listenPort"]; }
- set { this["listenPort"] = value; }
- }
-
- [ConfigurationProperty("handlers", IsDefaultCollection = false)]
- [ConfigurationCollection(typeof(RequestHandlerCollection),
- AddItemName = "add",
- ClearItemsName = "clear",
- RemoveItemName = "remove")]
- public RequestHandlerCollection Handlers
- {
- get
- {
- return (RequestHandlerCollection)base["handlers"];
- }
- }
-
- [ConfigurationProperty("queues", IsDefaultCollection = false)]
- [ConfigurationCollection(typeof(MessageQueueCollection),
- AddItemName = "add",
- ClearItemsName = "clear",
- RemoveItemName = "remove")]
- public MessageQueueCollection Queues
- {
- get
- {
- return (MessageQueueCollection)base["queues"];
- }
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService/Data/IRepository.cs b/SocketService/Data/IRepository.cs
deleted file mode 100644
index d467c01..0000000
--- a/SocketService/Data/IRepository.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Linq.Expressions;
-
-namespace SocketService.Framework.Data
-{
- public interface IRepository
- {
- T Find(int id);
- T[] GetAll();
- IQueryable Query(Expression> filter);
- }
-}
diff --git a/SocketService/Data/ServerDataModel.edmx b/SocketService/Data/ServerDataModel.edmx
deleted file mode 100644
index 746e3ff..0000000
--- a/SocketService/Data/ServerDataModel.edmx
+++ /dev/null
@@ -1,534 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/SocketService/Data/ServerDataModel.edmx.sqlce b/SocketService/Data/ServerDataModel.edmx.sqlce
deleted file mode 100644
index 8c6adc3..0000000
--- a/SocketService/Data/ServerDataModel.edmx.sqlce
+++ /dev/null
@@ -1,284 +0,0 @@
-
--- --------------------------------------------------
--- Entity Designer DDL Script for SQL Server Compact Edition
--- --------------------------------------------------
--- Date Created: 09/26/2011 18:46:02
--- Generated from EDMX file: C:\Users\MonkeyBreath\Desktop\SocketServer\SocketService.Framework\Data\ServerDataModel.edmx
--- --------------------------------------------------
-
-
--- --------------------------------------------------
--- Dropping existing FOREIGN KEY constraints
--- NOTE: if the constraint does not exist, an ignorable error will be reported.
--- --------------------------------------------------
-
- ALTER TABLE [Rooms] DROP CONSTRAINT [FK_ZoneRoom];
-GO
- ALTER TABLE [Users] DROP CONSTRAINT [FK_RoomUser];
-GO
- ALTER TABLE [Variables_RoomVariable] DROP CONSTRAINT [FK_RoomRoomVariable];
-GO
- ALTER TABLE [Variables_UserVariable] DROP CONSTRAINT [FK_UserUserVariable];
-GO
- ALTER TABLE [Plugins] DROP CONSTRAINT [FK_ExtensionPlugin];
-GO
- ALTER TABLE [Plugins] DROP CONSTRAINT [FK_RoomPlugin];
-GO
- ALTER TABLE [Variables_RoomVariable] DROP CONSTRAINT [FK_RoomVariable_inherits_Variable];
-GO
- ALTER TABLE [Variables_UserVariable] DROP CONSTRAINT [FK_UserVariable_inherits_Variable];
-GO
-
--- --------------------------------------------------
--- Dropping existing tables
--- NOTE: if the table does not exist, an ignorable error will be reported.
--- --------------------------------------------------
-
- DROP TABLE [Zones];
-GO
- DROP TABLE [Rooms];
-GO
- DROP TABLE [Users];
-GO
- DROP TABLE [Variables];
-GO
- DROP TABLE [Extensions];
-GO
- DROP TABLE [Plugins];
-GO
- DROP TABLE [Variables_RoomVariable];
-GO
- DROP TABLE [Variables_UserVariable];
-GO
-
--- --------------------------------------------------
--- Creating all tables
--- --------------------------------------------------
-
--- Creating table 'Zones'
-CREATE TABLE [Zones] (
- [Id] bigint NOT NULL,
- [Name] nvarchar(4000) NOT NULL
-);
-GO
-
--- Creating table 'Rooms'
-CREATE TABLE [Rooms] (
- [Id] bigint NOT NULL,
- [Name] nvarchar(4000) NOT NULL,
- [IsPersistable] bit NOT NULL,
- [Capacity] int NOT NULL,
- [IsPrivate] bit NOT NULL,
- [Password] nvarchar(4000) NOT NULL,
- [ZoneId] bigint NOT NULL
-);
-GO
-
--- Creating table 'Users'
-CREATE TABLE [Users] (
- [Id] bigint NOT NULL,
- [Name] nvarchar(4000) NOT NULL,
- [ClientKey] uniqueidentifier NOT NULL,
- [RoomId] bigint NOT NULL
-);
-GO
-
--- Creating table 'Variables'
-CREATE TABLE [Variables] (
- [Id] bigint NOT NULL,
- [Name] nvarchar(4000) NOT NULL,
- [Value] varbinary(8000) NOT NULL
-);
-GO
-
--- Creating table 'Extensions'
-CREATE TABLE [Extensions] (
- [Id] bigint NOT NULL,
- [Name] nvarchar(4000) NOT NULL
-);
-GO
-
--- Creating table 'Plugins'
-CREATE TABLE [Plugins] (
- [Id] bigint IDENTITY(1,1) NOT NULL,
- [Handle] nvarchar(4000) NOT NULL,
- [ExtensionId] bigint NOT NULL,
- [RoomId] bigint NOT NULL
-);
-GO
-
--- Creating table 'Variables_RoomVariable'
-CREATE TABLE [Variables_RoomVariable] (
- [RoomId] bigint NOT NULL,
- [Id] bigint NOT NULL
-);
-GO
-
--- Creating table 'Variables_UserVariable'
-CREATE TABLE [Variables_UserVariable] (
- [UserId] bigint NOT NULL,
- [Id] bigint NOT NULL
-);
-GO
-
--- --------------------------------------------------
--- Creating all PRIMARY KEY constraints
--- --------------------------------------------------
-
--- Creating primary key on [Id] in table 'Zones'
-ALTER TABLE [Zones]
-ADD CONSTRAINT [PK_Zones]
- PRIMARY KEY ([Id] );
-GO
-
--- Creating primary key on [Id] in table 'Rooms'
-ALTER TABLE [Rooms]
-ADD CONSTRAINT [PK_Rooms]
- PRIMARY KEY ([Id] );
-GO
-
--- Creating primary key on [Id] in table 'Users'
-ALTER TABLE [Users]
-ADD CONSTRAINT [PK_Users]
- PRIMARY KEY ([Id] );
-GO
-
--- Creating primary key on [Id] in table 'Variables'
-ALTER TABLE [Variables]
-ADD CONSTRAINT [PK_Variables]
- PRIMARY KEY ([Id] );
-GO
-
--- Creating primary key on [Id] in table 'Extensions'
-ALTER TABLE [Extensions]
-ADD CONSTRAINT [PK_Extensions]
- PRIMARY KEY ([Id] );
-GO
-
--- Creating primary key on [Id] in table 'Plugins'
-ALTER TABLE [Plugins]
-ADD CONSTRAINT [PK_Plugins]
- PRIMARY KEY ([Id] );
-GO
-
--- Creating primary key on [Id] in table 'Variables_RoomVariable'
-ALTER TABLE [Variables_RoomVariable]
-ADD CONSTRAINT [PK_Variables_RoomVariable]
- PRIMARY KEY ([Id] );
-GO
-
--- Creating primary key on [Id] in table 'Variables_UserVariable'
-ALTER TABLE [Variables_UserVariable]
-ADD CONSTRAINT [PK_Variables_UserVariable]
- PRIMARY KEY ([Id] );
-GO
-
--- --------------------------------------------------
--- Creating all FOREIGN KEY constraints
--- --------------------------------------------------
-
--- Creating foreign key on [ZoneId] in table 'Rooms'
-ALTER TABLE [Rooms]
-ADD CONSTRAINT [FK_ZoneRoom]
- FOREIGN KEY ([ZoneId])
- REFERENCES [Zones]
- ([Id])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
-
--- Creating non-clustered index for FOREIGN KEY 'FK_ZoneRoom'
-CREATE INDEX [IX_FK_ZoneRoom]
-ON [Rooms]
- ([ZoneId]);
-GO
-
--- Creating foreign key on [RoomId] in table 'Users'
-ALTER TABLE [Users]
-ADD CONSTRAINT [FK_RoomUser]
- FOREIGN KEY ([RoomId])
- REFERENCES [Rooms]
- ([Id])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
-
--- Creating non-clustered index for FOREIGN KEY 'FK_RoomUser'
-CREATE INDEX [IX_FK_RoomUser]
-ON [Users]
- ([RoomId]);
-GO
-
--- Creating foreign key on [RoomId] in table 'Variables_RoomVariable'
-ALTER TABLE [Variables_RoomVariable]
-ADD CONSTRAINT [FK_RoomRoomVariable]
- FOREIGN KEY ([RoomId])
- REFERENCES [Rooms]
- ([Id])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
-
--- Creating non-clustered index for FOREIGN KEY 'FK_RoomRoomVariable'
-CREATE INDEX [IX_FK_RoomRoomVariable]
-ON [Variables_RoomVariable]
- ([RoomId]);
-GO
-
--- Creating foreign key on [UserId] in table 'Variables_UserVariable'
-ALTER TABLE [Variables_UserVariable]
-ADD CONSTRAINT [FK_UserUserVariable]
- FOREIGN KEY ([UserId])
- REFERENCES [Users]
- ([Id])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
-
--- Creating non-clustered index for FOREIGN KEY 'FK_UserUserVariable'
-CREATE INDEX [IX_FK_UserUserVariable]
-ON [Variables_UserVariable]
- ([UserId]);
-GO
-
--- Creating foreign key on [ExtensionId] in table 'Plugins'
-ALTER TABLE [Plugins]
-ADD CONSTRAINT [FK_ExtensionPlugin]
- FOREIGN KEY ([ExtensionId])
- REFERENCES [Extensions]
- ([Id])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
-
--- Creating non-clustered index for FOREIGN KEY 'FK_ExtensionPlugin'
-CREATE INDEX [IX_FK_ExtensionPlugin]
-ON [Plugins]
- ([ExtensionId]);
-GO
-
--- Creating foreign key on [RoomId] in table 'Plugins'
-ALTER TABLE [Plugins]
-ADD CONSTRAINT [FK_RoomPlugin]
- FOREIGN KEY ([RoomId])
- REFERENCES [Rooms]
- ([Id])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
-
--- Creating non-clustered index for FOREIGN KEY 'FK_RoomPlugin'
-CREATE INDEX [IX_FK_RoomPlugin]
-ON [Plugins]
- ([RoomId]);
-GO
-
--- Creating foreign key on [Id] in table 'Variables_RoomVariable'
-ALTER TABLE [Variables_RoomVariable]
-ADD CONSTRAINT [FK_RoomVariable_inherits_Variable]
- FOREIGN KEY ([Id])
- REFERENCES [Variables]
- ([Id])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
-GO
-
--- Creating foreign key on [Id] in table 'Variables_UserVariable'
-ALTER TABLE [Variables_UserVariable]
-ADD CONSTRAINT [FK_UserVariable_inherits_Variable]
- FOREIGN KEY ([Id])
- REFERENCES [Variables]
- ([Id])
- ON DELETE NO ACTION ON UPDATE NO ACTION;
-GO
-
--- --------------------------------------------------
--- Script has ended
--- --------------------------------------------------
\ No newline at end of file
diff --git a/SocketService/Handler/EnableEncryptionHandler.cs b/SocketService/Handler/EnableEncryptionHandler.cs
deleted file mode 100644
index b0b2e2a..0000000
--- a/SocketService/Handler/EnableEncryptionHandler.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using SocketServer.Messages;
-using SocketServer.Shared.Network;
-using Org.BouncyCastle.Crypto.Generators;
-using Org.BouncyCastle.Crypto;
-using Org.BouncyCastle.Security;
-using Org.BouncyCastle.Crypto.Parameters;
-using SocketServer.Crypto;
-using SocketServer.Shared.Messaging;
-
-namespace SocketServer.Handler
-{
- public class EnableEncryptionHandler : IRequestHandler
- {
- public void HandleRequest(EnableEncryptionMessage request, ClientConnection connection)
- {
-
- connection.Send(
- new EnableEncryptionResponse()
- {
- MessageID = "EnableEncryptionResponse",
- Enabled = true
- });
-
- // replace 0 envelope with a new encrypted message envelope
- connection.Envelope = new EncryptedMessageEnvelope(new SharedKeyCrypto(connection.ServerAuthority.Parameters, connection.ServerAuthority.KeyPair, request.PublicKeyInfo));
-
- }
- }
-}
diff --git a/SocketService/Handler/LoginRequestHandler.cs b/SocketService/Handler/LoginRequestHandler.cs
deleted file mode 100644
index 4bf7a98..0000000
--- a/SocketService/Handler/LoginRequestHandler.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using SocketServer.Command;
-using SocketServer.Shared.Request;
-
-namespace SocketServer.Handler
-{
- public class LoginRequestHandler : IRequestHandler
- {
- public void HandleRequest(LoginRequest request, Guid connectionId)
- {
- if (request != null)
- {
- MSMQQueueWrapper.QueueCommand(
- new LoginUserCommand(connectionId, request.LoginName)
- );
-
- }
-
- }
-
- public void HandleRequest(LoginRequest request, Shared.Network.ClientConnection connection)
- {
- throw new NotImplementedException();
- }
- }
-}
diff --git a/SocketService/Net/INetworkListener.cs b/SocketService/Net/INetworkListener.cs
deleted file mode 100644
index 5c69ce5..0000000
--- a/SocketService/Net/INetworkListener.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace SocketServer
-{
- public interface INetworkListener
- {
- void Initialize(int port);
-
- INetworkTransport AcceptClient();
-
- void Start();
-
- void Stop();
- }
-}
diff --git a/SocketService/Net/INetworkTransport.cs b/SocketService/Net/INetworkTransport.cs
deleted file mode 100644
index 69146e0..0000000
--- a/SocketService/Net/INetworkTransport.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Net;
-using System.IO;
-
-namespace SocketServer
-{
- public interface INetworkTransport
- {
- string Address { get; set; }
- int Port { get; set; }
-
- EndPoint RemoteEndPoint { get; }
-
- void Connect();
- void Disconnect(bool force);
- bool IsConnected { get; }
- bool HasConnection { get; }
- Stream Stream { get; }
-
- int SendTimeout { get; set; }
- int ReceiveTimeout { get; set; }
- }
-}
diff --git a/SocketService/Net/SocketManager.cs b/SocketService/Net/SocketManager.cs
deleted file mode 100644
index a02340d..0000000
--- a/SocketService/Net/SocketManager.cs
+++ /dev/null
@@ -1,225 +0,0 @@
-using System;
-using System.IO;
-using System.Linq;
-using System.Configuration;
-using System.Reflection;
-using log4net;
-using SocketServer.Command;
-using SocketServer.Configuration;
-using SocketServer.Net.Client;
-using SocketServer.Crypto;
-using System.Xml.Serialization;
-using SocketServer.Shared.Header;
-using SocketServer.Shared;
-using System.Collections.Generic;
-using SocketServer.Shared.Serialization;
-using SocketServer.Shared.Reflection;
-using SocketServer.Shared.Network;
-using SocketServer.Repository;
-using SocketServer.Messages;
-
-namespace SocketServer.Net
-{
- public class SocketManager //: IServerContext
- {
- private static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- private Dictionary requestHandlers = new Dictionary();
-
- private readonly object handlerLock = new object();
-
- private readonly SocketServer _socketServer;
-
- //public event EventHandler ClientRequestReceived;
-
- ///
- /// Initializes a new instance of the class.
- ///
- public SocketManager(SocketServerConfiguration config)
- {
- LoadHandlers(config);
-
- _socketServer = new SocketServer();
- _socketServer.ClientConnected += SocketServerClientConnecting;
- _socketServer.ClientDisconnected += SocketServerClientDisconnecting;
- _socketServer.MessageReceived += new EventHandler(socketServer_MessageReceived);
- }
-
- void socketServer_MessageReceived(object sender, MessageEventArgs e)
- {
- lock (handlerLock)
- {
- if (requestHandlers.ContainsKey(e.Message.MessageID))
- {
- ServiceHandlerRepository.Instance.InvokeHandler(e.Message.MessageID, e.Message, e.ClientConnection);
- //ServiceHandlerRepository
- //requestHandlers[e.Message.MessageID]
- }
- }
- }
-
- //protected void SocketServerDataRecieved(object sender, DataRecievedArgs e)
- //{
- // var connection = ConnectionRepository.Instance.Query( c => c.ClientId == e.ClientId).FirstOrDefault();
- // if (connection != null)
- // {
- // // update client buffer with new data
- // connection.ClientBuffer.Write(e.Data);
-
- // bool done = false;
- // while (!done)
- // {
- // done = true;
-
- // MemoryStream stream = new MemoryStream(connection.ClientBuffer.Buffer);
- // switch (connection.CurrentState)
- // {
- // case ProtocolState.WaitingForHeader:
- // {
- // // check if there is a utf string available for reading
- // // low level protocol is all utf strings
- // string utfString = stream.ReadUTF();
- // if (utfString != null)
- // {
- // //TextReader reader = new StringReader(utfString);
- // connection.RequestHeader
- // = XmlSerializationHelper
- // .DeSerialize(utfString);
-
- // // if we got a valid request header, move to next state
- // // otherwise wait until we get a valid request header
- // if (connection.RequestHeader != null)
- // {
- // connection.CurrentState = ProtocolState.WaitingForBody;
- // }
- // }
- // }
- // break;
-
- // case ProtocolState.WaitingForBody:
- // {
- // string rawRequestString = stream.ReadUTF();
- // if (rawRequestString != null)
- // {
- // if (_configuration.ContainsKey(connection.RequestHeader.RequestType.ToString()))
- // {
- // string key = connection.RequestHeader.RequestType.ToString();
-
- // string requestHandlerType = _configuration[key].HandlerType;
- // string requestType = _configuration[key].RequestType;
- // string requestString = rawRequestString;
-
- // MSMQQueueWrapper.QueueCommand(
- // new HandleClientRequestCommand(
- // connection.ClientId,
- // key,
- // requestType,
- // requestString));
- // }
-
- // connection.CurrentState = ProtocolState.WaitingForHeader;
- // }
- // }
- // break;
- // }
-
- // // fix up buffers
- // connection.ClientBuffer = new ClientBuffer();
-
- // // if any data left, fix up buffers
- // if (stream.Length > stream.Position)
- // {
- // // left over bytes
- // byte[] leftover = stream.Read((int)(stream.Length - stream.Position));
- // connection.ClientBuffer.Write(leftover);
-
- // // we are not done reading
- // done = false;
- // }
- // }
- // }
- //}
-
-
-
- protected void SocketServerClientConnecting(object sender, ConnectArgs e)
- {
- Logger.InfoFormat("Client {0} connecting from {1}", e.ClientId, e.RemoteAddress);
-
- // send message to client
- e.Connection.Send(
- new ServerConnectionResponse()
- {
- MessageID = "ServerConnectionMessage",
- DiffieHellmanInfo = new DiffieHellmanInfo()
- {
- G = e.Connection.ServerAuthority.G.ToString(16),
- P = e.Connection.ServerAuthority.P.ToString(16),
- PublicKeyInfo = e.Connection.ServerAuthority.GenerateEncodedPublicKeyInfo()
- }
- });
- }
-
- protected void SocketServerClientDisconnecting(object sender, DisconnectedArgs e)
- {
- MSMQQueueWrapper.QueueCommand(new LogoutUserCommand(e.ClientId));
- }
-
- //protected virtual void OnClientRequestReceived(Guid clientId, RequestHeader header, object request)
- //{
- // EventHandler clientRequestReceived = ClientRequestReceived;
- // if (clientRequestReceived != null)
- // {
- // var args = new ClientRequestEventArgs(clientId, header, request);
- // clientRequestReceived(this, args);
- // }
- //}
-
- ///
- /// Starts the server.
- ///
- public void StartServer()
- {
- SocketServerConfiguration configuration = null;
- try
- {
- configuration = ServerConfigurationHelper.GetServerConfiguration();
- }
- catch (Exception exception)
- {
- Logger.Error(exception.ToString());
- }
-
- if (configuration != null)
- {
- MSMQQueueWrapper.QueueCommand(new ServerStartingCommand());
-
- _socketServer.StartServer(configuration.ListenPort);
-
- Logger.InfoFormat("Server started and listening on {0}", configuration.ListenPort);
- }
- }
-
- ///
- /// Stops the server.
- ///
- public void StopServer()
- {
- _socketServer.StopServer();
- }
-
- //private static void ParseRequest(Guid clientId, byte[] requestData)
- //{
- // MSMQQueueWrapper.QueueCommand(new ParseRequestCommand(clientId, requestData));
- //}
-
-
- private void LoadHandlers(SocketServerConfiguration config)
- {
- foreach (RequestHandlerConfigurationElement element in config.Handlers)
- {
- // try to find enum type first
- requestHandlers.Add(element.Key, element);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/SocketService/Net/SocketServer.cs b/SocketService/Net/SocketServer.cs
deleted file mode 100644
index c820a2d..0000000
--- a/SocketService/Net/SocketServer.cs
+++ /dev/null
@@ -1,482 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-using System.Net.Sockets;
-using System.Reflection;
-using System.Threading;
-using SocketServer.Net.Client;
-using SocketServer.Shared.Sockets;
-using log4net;
-using SocketServer.Shared;
-using SocketServer.Crypto;
-using Org.BouncyCastle.Crypto.Generators;
-using Org.BouncyCastle.Security;
-using Org.BouncyCastle.Crypto;
-using Org.BouncyCastle.Crypto.Parameters;
-using SocketServer.Shared.Messaging;
-using SocketServer.Shared.Network;
-
-namespace SocketServer.Net
-{
- public class SocketServer
- {
- private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private readonly object clientSync = new object();
- //private readonly Mutex _clientListLock = new Mutex();
-
- private readonly Dictionary _connectionList = new Dictionary();
- private readonly ManualResetEvent _stopEvent = new ManualResetEvent(false);
- //private Socket _listenSocket;
-
- //private readonly IPAddress address = IPAddress.Any;
- //private TcpListener listener;
- private bool _stopped = true;
-
- private readonly INetworkListener listener;
- public SocketServer(IPAddress address)
- {
- listener = new SocketListener(address);
- }
-
- public SocketServer()
- {
- listener = new SocketListener();
- }
-
- ///
- /// Gets or sets a value indicating whether this instance is stopped.
- ///
- ///
- /// true if this instance is stopped; otherwise, false.
- ///
- public bool IsStopped
- {
- get
- {
- Thread.MemoryBarrier();
- return _stopped;
- }
-
- set
- {
- _stopped = value;
- Thread.MemoryBarrier();
- }
- }
-
- #region Events
-
- ///
- /// Raised when a Channel has disconnected remotely
- ///
- public event EventHandler ClientConnected;
-
- ///
- /// Raised when a new incoming Channel has established a connection.
- ///
- public event EventHandler ClientDisconnected;
-
- ///
- /// Event Raised whenever an incoming message is received
- ///
- public event EventHandler MessageReceived;
- //{
- // add
- // {
- // lock (clientSync)
- // {
- // foreach (ClientConnection connection in _connectionList.Values)
- // connection.MessageReceived += value;
- // }
- // }
- // remove
- // {
- // lock (clientSync)
- // {
- // foreach (ClientConnection connection in _connectionList.Values)
- // connection.MessageReceived -= value;
- // }
- // }
- //}
-
- /////
- ///// Event Raised whenever an outgoing message is sent
- /////
- //public event EventHandler MessageSent
- //{
- // add
- // {
- // lock (clientSync)
- // {
- // foreach (ClientConnection channel in clients)
- // channel.MessageSent += value;
- // }
- // }
- // remove
- // {
- // lock (clientSync)
- // {
- // foreach (ClientConnection channel in clients)
- // channel.MessageSent -= value;
- // }
- // }
- //}
-
- #endregion Events
-
- public void StartServer(int serverPort)
- {
- if (IsStopped)
- {
- _stopEvent.Reset();
-
- IsStopped = false;
-
- listener.Initialize(serverPort);
-
- var serverThread = new Thread(new ThreadStart(ServerMain));
- serverThread.Start();
- }
- }
-
- ///
- /// Stops the server.
- ///
- public void StopServer()
- {
- _stopEvent.Set();
-
- IsStopped = true;
- DisconnectAllClients();
- }
-
- ///
- /// Disconnects the client.
- ///
- ///
- public void DisconnectClient(Guid clientId)
- {
- OnClientDisconnected(this, new DisconnectedArgs() { ClientId = clientId });
- //lock (clientSync)
- //{
- // try
- // {
- // if (_connectionList.ContainsKey(clientId))
- // {
- // _connectionList[clientId].ClientSocket.Close();
- // OnClientDisconnected(clientId);
-
- // _connectionList.Remove(clientId);
- // }
- // }
- // catch (Exception ex)
- // {
- // Log.ErrorFormat("Error: {0}", ex.Message);
- // }
- //}
- }
-
- //protected virtual void OnDataRecieved(Guid clientId, byte[] data)
- //{
- // EventHandler dataRecieved = DataRecieved;
- // if (dataRecieved != null)
- // {
- // var args = new DataRecievedArgs(clientId, data);
- // dataRecieved(this, args);
- // }
- //}
-
- protected virtual void OnClientConnected(Guid clientId, ClientConnection connection, string remoteAddress)
- {
- EventHandler clientConnected = ClientConnected;
- if (clientConnected != null)
- {
- var args = new ConnectArgs(clientId, connection, remoteAddress);
- clientConnected(this, args);
- }
- }
-
- protected virtual void OnClientDisconnected(object sender, DisconnectedArgs args)
- {
- lock (clientSync)
- {
- // remove channel from our internal list
- for (int i = 0; i < _connectionList.Count; i++)
- {
- if (_connectionList.ContainsKey(args.ClientId))
- {
- _connectionList.Remove(args.ClientId);
- break;
- }
- }
-
- EventHandler handler = ClientDisconnected;
- if (handler != null)
- handler(this, args);
- }
-
- }
-
- private void DisconnectAllClients()
- {
- //lock (clientSync)
- {
- try
- {
- foreach (Guid key in _connectionList.Keys)
- {
- _connectionList[key].Transport.Disconnect(true);
- //OnClientDisconnected(this, key);
- }
-
- //_connectionList.Clear();
- }
- catch (Exception ex)
- {
- Log.ErrorFormat("Error: {0}", ex.Message);
- }
- }
- }
-
- private void ServerMain()
- {
- listener.Start();
-
- while (!IsStopped)
- {
- try
- {
- INetworkTransport client = listener.AcceptClient();
-
- if (client != null)
- {
-
- //DHParametersGenerator generator = new DHParametersGenerator();
- //generator.Init(256, 30, new SecureRandom());
- //var sharedParameters = generator.GenerateParameters();
-
- //IAsymmetricCipherKeyPairGenerator keyGen = GeneratorUtilities.GetKeyPairGenerator("DH");
- //keyGen.Init(new DHKeyGenerationParameters(new SecureRandom(), sharedParameters));
-
- //var keyPair = keyGen.GenerateKeyPair();
-
- ClientConnection channel = ClientConnection.CreateClientConnection(
- new PlainEnvelope(),
- client);
-
- channel.ClientId = Guid.NewGuid();
-
- Log.Info("New connection from : " + client.RemoteEndPoint);
-
- lock (clientSync)
- {
- _connectionList.Add(channel.ClientId, channel);
- }
-
- OnClientConnected(channel.ClientId, channel, client.RemoteEndPoint.ToString());
-
- channel.ClientClosed += OnClientDisconnected;
- channel.MessageReceived += OnMessageReceived;
- }
- }
- catch (SocketException)
- {
- // This is here because AcceptTcpClient throws an exception when we tell it
- // stop listening.
- Log.Debug("SocketServer shutdown. No longer accepting connections");
- }
- }
-
- //var port = (int) threadParam;
-
- //listener = new TcpListener(port);
-
- //var localEndPoint = new IPEndPoint(IPAddress.Any, port);
- //_listenSocket.Bind(localEndPoint);
- //_listenSocket.Listen(30);
-
- //_listenSocket.BeginAccept(OnBeginAccept, null);
-
- //var pollThread = new Thread(Poll);
- //pollThread.Start();
- }
-
- protected void OnMessageReceived(object sender, MessageEventArgs args)
- {
- EventHandler function = MessageReceived;
- if (function != null)
- {
- function(sender, args);
- }
- }
-
- //private void OnBeginAccept(IAsyncResult result)
- //{
- // if (result.IsCompleted)
- // {
- // Socket socket = null;
-
- // try
- // {
- // socket = _listenSocket.EndAccept(result);
- // }
- // catch (Exception ex)
- // {
- // Log.ErrorFormat("Error: {0}", ex.Message);
- // }
-
- // _listenSocket.BeginAccept(OnBeginAccept, null);
-
- // if (socket != null)
- // {
- // Guid clientId = Guid.NewGuid();
- // var client = new ZipSocket(socket);
-
- // ClientConnection connection = ClientConnection.CreateClientConnection(new EncryptedMessageEnvelope(), new ZipSocket(socket));
- // OnClientConnected(clientId, connection, ((IPEndPoint) socket.RemoteEndPoint).Address.ToString());
- // AddConnection(clientId, connection);
- // }
- // }
- // else
- // {
- // _listenSocket.BeginAccept(OnBeginAccept, null);
- // }
- //}
-
- ///
- /// Retrieves the guid (clientId) associated with this socket
- ///
- ///
- ///
- ///
- //private ClientConnection FindClientBySocket(Socket socket, out Guid clientId)
- //{
- // //clientId = Guid.Empty;
-
- // //lock (clientSync)
- // //{
- // // try
- // // {
- // // IEnumerable> query = from li in _connectionList
- // // where li.Value.Transport. == socket
- // // select li;
-
- // // KeyValuePair kvp = query.FirstOrDefault();
- // // clientId = kvp.Key;
- // // return kvp.Value;
- // // }
- // // catch (Exception ex)
- // // {
- // // Log.ErrorFormat("Error: {0}", ex.Message);
- // // return null;
- // // }
- // //}
-
- // return null;
- //}
-
- //private void Poll()
- //{
- // while (!_stopEvent.WaitOne(20))
- // {
- // IList readList = BuildSocketList();
- // if (readList.Count > 0)
- // {
- // Socket.Select(readList, null, null, 0);
- // ProcessSelectedSockets(readList);
- // }
- // }
-
- // //_listenSocket.Shutdown(SocketShutdown.Both);
- // listener.Stop();
- // //_listenSocket.Close();
-
- // IsStopped = true;
- //}
-
- //private void ProcessSelectedSockets(IList readList)
- //{
- // foreach (object listObject in readList)
- // {
- // var socket = listObject as Socket;
- // if (socket != null && !IsStopped)
- // {
- // Guid clientId;
- // ClientConnection client = FindClientBySocket(socket, out clientId);
- // if (client != null)
- // {
- // if (socket.Connected)
- // {
- // int availableBytes = socket.Available;
-
- // if (availableBytes > 0)
- // {
- // var data = new byte[availableBytes];
- // socket.Receive(data);
- // //OnDataRecieved(clientId, data);
- // }
- // else
- // {
- // DisconnectClient(clientId);
- // }
- // }
- // else
- // {
- // //log.Debug(string.Format("SocketServer.ProcessReadList => Zombie socket, client id {0}", FindClientIdForSocket(socket)) );
- // DisconnectClient(clientId);
- // }
- // }
- // }
- // }
- //}
-
- //private List BuildSocketList()
- //{
- // var clientList = new List();
-
- // Socket[] socketArray = null;
-
- // lock (clientSync)
- // {
- // try
- // {
- // socketArray = new Socket[_connectionList.Count];
-
- // IEnumerable q = from nvp in _connectionList
- // select nvp.Value.ClientSocket.RawSocket;
-
- // q.ToArray().CopyTo(socketArray, 0);
- // }
- // catch (Exception ex)
- // {
- // Log.ErrorFormat("Error: {0}", ex.Message);
- // }
- // }
-
- // if (socketArray != null)
- // {
- // clientList.AddRange(socketArray);
- // }
-
- // return clientList;
- //}
-
- //private void AddConnection(Guid clientId, ClientConnection clientConnection)
- //{
- // lock (clientSync)
- // {
- // try
- // {
- // _connectionList.Add(clientId, clientConnection);
- // }
- // catch (Exception ex)
- // {
- // Log.ErrorFormat("Error: {0}", ex.Message);
- // }
- // }
- //}
- }
-}
\ No newline at end of file
diff --git a/TestServer/Addressbook.cs b/TestServer/Addressbook.cs
new file mode 100644
index 0000000..7312c24
--- /dev/null
+++ b/TestServer/Addressbook.cs
@@ -0,0 +1,1156 @@
+// Generated by ProtoGen, Version=2.4.1.473, Culture=neutral, PublicKeyToken=55f7125234beb589. DO NOT EDIT!
+#pragma warning disable 1591, 0612
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace tutorial {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public static partial class Addressbook {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_tutorial_Person__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_Person__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_tutorial_Person_PhoneNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_tutorial_AddressBook__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_AddressBook__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static Addressbook() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "ChFhZGRyZXNzYm9vay5wcm90bxIIdHV0b3JpYWwi2gEKBlBlcnNvbhIMCgRu" +
+ "YW1lGAEgAigJEgoKAmlkGAIgAigFEg0KBWVtYWlsGAMgASgJEisKBXBob25l" +
+ "GAQgAygLMhwudHV0b3JpYWwuUGVyc29uLlBob25lTnVtYmVyGk0KC1Bob25l" +
+ "TnVtYmVyEg4KBm51bWJlchgBIAIoCRIuCgR0eXBlGAIgASgOMhoudHV0b3Jp" +
+ "YWwuUGVyc29uLlBob25lVHlwZToESE9NRSIrCglQaG9uZVR5cGUSCgoGTU9C" +
+ "SUxFEAASCAoESE9NRRABEggKBFdPUksQAiIvCgtBZGRyZXNzQm9vaxIgCgZw" +
+ "ZXJzb24YASADKAsyEC50dXRvcmlhbC5QZXJzb25CKQoUY29tLmV4YW1wbGUu" +
+ "dHV0b3JpYWxCEUFkZHJlc3NCb29rUHJvdG9z");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_tutorial_Person__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_tutorial_Person__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_Person__Descriptor,
+ new string[] { "Name", "Id", "Email", "Phone", });
+ internal__static_tutorial_Person_PhoneNumber__Descriptor = internal__static_tutorial_Person__Descriptor.NestedTypes[0];
+ internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_Person_PhoneNumber__Descriptor,
+ new string[] { "Number", "Type", });
+ internal__static_tutorial_AddressBook__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_tutorial_AddressBook__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_AddressBook__Descriptor,
+ new string[] { "Person", });
+ return null;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Person : pb::GeneratedMessage {
+ private Person() { }
+ private static readonly Person defaultInstance = new Person().MakeReadOnly();
+ private static readonly string[] _personFieldNames = new string[] { "email", "id", "name", "phone" };
+ private static readonly uint[] _personFieldTags = new uint[] { 26, 16, 10, 34 };
+ public static Person DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Person DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Person ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::tutorial.Addressbook.internal__static_tutorial_Person__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::tutorial.Addressbook.internal__static_tutorial_Person__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public static class Types {
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public enum PhoneType {
+ MOBILE = 0,
+ HOME = 1,
+ WORK = 2,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class PhoneNumber : pb::GeneratedMessage {
+ private PhoneNumber() { }
+ private static readonly PhoneNumber defaultInstance = new PhoneNumber().MakeReadOnly();
+ private static readonly string[] _phoneNumberFieldNames = new string[] { "number", "type" };
+ private static readonly uint[] _phoneNumberFieldTags = new uint[] { 10, 16 };
+ public static PhoneNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override PhoneNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::tutorial.Addressbook.internal__static_tutorial_Person_PhoneNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::tutorial.Addressbook.internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private string number_ = "";
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public string Number {
+ get { return number_; }
+ }
+
+ public const int TypeFieldNumber = 2;
+ private bool hasType;
+ private global::tutorial.Person.Types.PhoneType type_ = global::tutorial.Person.Types.PhoneType.HOME;
+ public bool HasType {
+ get { return hasType; }
+ }
+ public global::tutorial.Person.Types.PhoneType Type {
+ get { return type_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasNumber) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _phoneNumberFieldNames;
+ if (hasNumber) {
+ output.WriteString(1, field_names[0], Number);
+ }
+ if (hasType) {
+ output.WriteEnum(2, field_names[1], (int) Type, Type);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasNumber) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Number);
+ }
+ if (hasType) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2, (int) Type);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static PhoneNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private PhoneNumber MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(PhoneNumber prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(PhoneNumber cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private PhoneNumber result;
+
+ private PhoneNumber PrepareBuilder() {
+ if (resultIsReadOnly) {
+ PhoneNumber original = result;
+ result = new PhoneNumber();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override PhoneNumber MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::tutorial.Person.Types.PhoneNumber.Descriptor; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return global::tutorial.Person.Types.PhoneNumber.DefaultInstance; }
+ }
+
+ public override PhoneNumber BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is PhoneNumber) {
+ return MergeFrom((PhoneNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(PhoneNumber other) {
+ if (other == global::tutorial.Person.Types.PhoneNumber.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasNumber) {
+ Number = other.Number;
+ }
+ if (other.HasType) {
+ Type = other.Type;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_phoneNumberFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _phoneNumberFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasNumber = input.ReadString(ref result.number_);
+ break;
+ }
+ case 16: {
+ object unknown;
+ if(input.ReadEnum(ref result.type_, out unknown)) {
+ result.hasType = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2, (ulong)(int)unknown);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasNumber {
+ get { return result.hasNumber; }
+ }
+ public string Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ PrepareBuilder();
+ result.hasNumber = false;
+ result.number_ = "";
+ return this;
+ }
+
+ public bool HasType {
+ get { return result.hasType; }
+ }
+ public global::tutorial.Person.Types.PhoneType Type {
+ get { return result.Type; }
+ set { SetType(value); }
+ }
+ public Builder SetType(global::tutorial.Person.Types.PhoneType value) {
+ PrepareBuilder();
+ result.hasType = true;
+ result.type_ = value;
+ return this;
+ }
+ public Builder ClearType() {
+ PrepareBuilder();
+ result.hasType = false;
+ result.type_ = global::tutorial.Person.Types.PhoneType.HOME;
+ return this;
+ }
+ }
+ static PhoneNumber() {
+ object.ReferenceEquals(global::tutorial.Addressbook.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int IdFieldNumber = 2;
+ private bool hasId;
+ private int id_;
+ public bool HasId {
+ get { return hasId; }
+ }
+ public int Id {
+ get { return id_; }
+ }
+
+ public const int EmailFieldNumber = 3;
+ private bool hasEmail;
+ private string email_ = "";
+ public bool HasEmail {
+ get { return hasEmail; }
+ }
+ public string Email {
+ get { return email_; }
+ }
+
+ public const int PhoneFieldNumber = 4;
+ private pbc::PopsicleList phone_ = new pbc::PopsicleList();
+ public scg::IList PhoneList {
+ get { return phone_; }
+ }
+ public int PhoneCount {
+ get { return phone_.Count; }
+ }
+ public global::tutorial.Person.Types.PhoneNumber GetPhone(int index) {
+ return phone_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasName) return false;
+ if (!hasId) return false;
+ foreach (global::tutorial.Person.Types.PhoneNumber element in PhoneList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _personFieldNames;
+ if (hasName) {
+ output.WriteString(1, field_names[2], Name);
+ }
+ if (hasId) {
+ output.WriteInt32(2, field_names[1], Id);
+ }
+ if (hasEmail) {
+ output.WriteString(3, field_names[0], Email);
+ }
+ if (phone_.Count > 0) {
+ output.WriteMessageArray(4, field_names[3], phone_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ if (hasId) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Id);
+ }
+ if (hasEmail) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, Email);
+ }
+ foreach (global::tutorial.Person.Types.PhoneNumber element in PhoneList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static Person ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Person ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Person ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Person ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Person ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Person ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Person ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Person ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Person ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Person ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Person MakeReadOnly() {
+ phone_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Person prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Person cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Person result;
+
+ private Person PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Person original = result;
+ result = new Person();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Person MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::tutorial.Person.Descriptor; }
+ }
+
+ public override Person DefaultInstanceForType {
+ get { return global::tutorial.Person.DefaultInstance; }
+ }
+
+ public override Person BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Person) {
+ return MergeFrom((Person) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Person other) {
+ if (other == global::tutorial.Person.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.HasId) {
+ Id = other.Id;
+ }
+ if (other.HasEmail) {
+ Email = other.Email;
+ }
+ if (other.phone_.Count != 0) {
+ result.phone_.Add(other.phone_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_personFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _personFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ case 16: {
+ result.hasId = input.ReadInt32(ref result.id_);
+ break;
+ }
+ case 26: {
+ result.hasEmail = input.ReadString(ref result.email_);
+ break;
+ }
+ case 34: {
+ input.ReadMessageArray(tag, field_name, result.phone_, global::tutorial.Person.Types.PhoneNumber.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasId {
+ get { return result.hasId; }
+ }
+ public int Id {
+ get { return result.Id; }
+ set { SetId(value); }
+ }
+ public Builder SetId(int value) {
+ PrepareBuilder();
+ result.hasId = true;
+ result.id_ = value;
+ return this;
+ }
+ public Builder ClearId() {
+ PrepareBuilder();
+ result.hasId = false;
+ result.id_ = 0;
+ return this;
+ }
+
+ public bool HasEmail {
+ get { return result.hasEmail; }
+ }
+ public string Email {
+ get { return result.Email; }
+ set { SetEmail(value); }
+ }
+ public Builder SetEmail(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasEmail = true;
+ result.email_ = value;
+ return this;
+ }
+ public Builder ClearEmail() {
+ PrepareBuilder();
+ result.hasEmail = false;
+ result.email_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList PhoneList {
+ get { return PrepareBuilder().phone_; }
+ }
+ public int PhoneCount {
+ get { return result.PhoneCount; }
+ }
+ public global::tutorial.Person.Types.PhoneNumber GetPhone(int index) {
+ return result.GetPhone(index);
+ }
+ public Builder SetPhone(int index, global::tutorial.Person.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.phone_[index] = value;
+ return this;
+ }
+ public Builder SetPhone(int index, global::tutorial.Person.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.phone_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddPhone(global::tutorial.Person.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.phone_.Add(value);
+ return this;
+ }
+ public Builder AddPhone(global::tutorial.Person.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.phone_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangePhone(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.phone_.Add(values);
+ return this;
+ }
+ public Builder ClearPhone() {
+ PrepareBuilder();
+ result.phone_.Clear();
+ return this;
+ }
+ }
+ static Person() {
+ object.ReferenceEquals(global::tutorial.Addressbook.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class AddressBook : pb::GeneratedMessage {
+ private AddressBook() { }
+ private static readonly AddressBook defaultInstance = new AddressBook().MakeReadOnly();
+ private static readonly string[] _addressBookFieldNames = new string[] { "person" };
+ private static readonly uint[] _addressBookFieldTags = new uint[] { 10 };
+ public static AddressBook DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override AddressBook DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override AddressBook ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::tutorial.Addressbook.internal__static_tutorial_AddressBook__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::tutorial.Addressbook.internal__static_tutorial_AddressBook__FieldAccessorTable; }
+ }
+
+ public const int PersonFieldNumber = 1;
+ private pbc::PopsicleList person_ = new pbc::PopsicleList();
+ public scg::IList PersonList {
+ get { return person_; }
+ }
+ public int PersonCount {
+ get { return person_.Count; }
+ }
+ public global::tutorial.Person GetPerson(int index) {
+ return person_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::tutorial.Person element in PersonList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _addressBookFieldNames;
+ if (person_.Count > 0) {
+ output.WriteMessageArray(1, field_names[0], person_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ foreach (global::tutorial.Person element in PersonList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static AddressBook ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static AddressBook ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static AddressBook ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static AddressBook ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private AddressBook MakeReadOnly() {
+ person_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(AddressBook prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(AddressBook cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private AddressBook result;
+
+ private AddressBook PrepareBuilder() {
+ if (resultIsReadOnly) {
+ AddressBook original = result;
+ result = new AddressBook();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override AddressBook MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::tutorial.AddressBook.Descriptor; }
+ }
+
+ public override AddressBook DefaultInstanceForType {
+ get { return global::tutorial.AddressBook.DefaultInstance; }
+ }
+
+ public override AddressBook BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is AddressBook) {
+ return MergeFrom((AddressBook) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(AddressBook other) {
+ if (other == global::tutorial.AddressBook.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.person_.Count != 0) {
+ result.person_.Add(other.person_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_addressBookFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _addressBookFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadMessageArray(tag, field_name, result.person_, global::tutorial.Person.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList PersonList {
+ get { return PrepareBuilder().person_; }
+ }
+ public int PersonCount {
+ get { return result.PersonCount; }
+ }
+ public global::tutorial.Person GetPerson(int index) {
+ return result.GetPerson(index);
+ }
+ public Builder SetPerson(int index, global::tutorial.Person value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.person_[index] = value;
+ return this;
+ }
+ public Builder SetPerson(int index, global::tutorial.Person.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.person_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddPerson(global::tutorial.Person value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.person_.Add(value);
+ return this;
+ }
+ public Builder AddPerson(global::tutorial.Person.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.person_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangePerson(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.person_.Add(values);
+ return this;
+ }
+ public Builder ClearPerson() {
+ PrepareBuilder();
+ result.person_.Clear();
+ return this;
+ }
+ }
+ static AddressBook() {
+ object.ReferenceEquals(global::tutorial.Addressbook.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/TestServer/Program.cs b/TestServer/Program.cs
index f26bc1f..592d9a3 100644
--- a/TestServer/Program.cs
+++ b/TestServer/Program.cs
@@ -7,11 +7,11 @@
using log4net;
using System.Collections;
using TestServer.Configuration;
-using TestServer.Reflection;
using log4net.Config;
using log4net.Core;
-using TestServer.Network;
-using TestServer.Messaging;
+using SocketServer.Shared.Network;
+using SocketServer.Shared.Messaging;
+using SocketServer.Shared.Reflection;
namespace TestServer
{
@@ -57,7 +57,7 @@ var config
Type t = ReflectionHelper.FindType(messageConfiguration.TypeName);
if (t != null)
{
- MessageFactory.Register(messageConfiguration.Name, t);
+ // MessageFactory.Register(messageConfiguration.Name, t);
}
else
{
@@ -109,14 +109,16 @@ protected void ServerThread()
while (!stopEvent.WaitOne(100))
{
- INetworkTransport transport = listener.AcceptClient(0);
+ INetworkTransport transport = listener.AcceptClient();
if (transport != null)
{
// let's wrap this with a client connection
- ClientConnection connection = new ClientConnection(transport);
+ ClientConnection connection = ClientConnection.CreateClientConnection(new PlainEnvelope(), transport);
// start pumping messages on this connection
- connection.StartMessagePump();
+ //connection.StartMessagePump();
+
+ connection.MessageReceived += new EventHandler(connection_MessageReceived);
// add to client list
AddClient(connection);
@@ -126,31 +128,35 @@ protected void ServerThread()
listener.Stop();
}
- protected void AddClient(ClientConnection connection)
+ void connection_MessageReceived(object sender, MessageEventArgs e)
{
- lock (connectionListLock)
- {
- connectionList.Add(connection);
- }
}
- private List BuildSocketList()
+ protected void AddClient(ClientConnection connection)
{
- var clientList = new List();
-
lock (connectionListLock)
{
- try
- {
- clientList = connectionList.Select(c => c.Transport.Client).ToList();
- }
- catch (Exception ex)
- {
- Logger.ErrorFormat("Error: {0}", ex.Message);
- }
+ connectionList.Add(connection);
}
-
- return clientList;
}
+
+ //private List BuildSocketList()
+ //{
+ // var clientList = new List();
+
+ // lock (connectionListLock)
+ // {
+ // try
+ // {
+ // clientList = connectionList.Select(c => c.Transport.Client).ToList();
+ // }
+ // catch (Exception ex)
+ // {
+ // Logger.ErrorFormat("Error: {0}", ex.Message);
+ // }
+ // }
+
+ // return clientList;
+ //}
}
}
diff --git a/TestServer/TestMessageOne.cs b/TestServer/TestMessageOne.cs
index 812ec14..605c774 100644
--- a/TestServer/TestMessageOne.cs
+++ b/TestServer/TestMessageOne.cs
@@ -2,11 +2,11 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
-using TestServer.Messaging;
+using SocketServer.Shared.Messaging;
namespace TestServer
{
- public class TestMessageOne : IMessage
+ public class TestMessageOne : IValidatedMessage
{
public string MessageID
{
diff --git a/TestServer/TestMessageTwo.cs b/TestServer/TestMessageTwo.cs
index ddf8514..ff11a2b 100644
--- a/TestServer/TestMessageTwo.cs
+++ b/TestServer/TestMessageTwo.cs
@@ -2,11 +2,11 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
-using TestServer.Messaging;
+using SocketServer.Shared.Messaging;
namespace TestServer
{
- public class TestMessageTwo : IMessage
+ public class TestMessageTwo : IValidatedMessage
{
public string MessageID
{
diff --git a/TestServer/TestServer.csproj b/TestServer/TestServer.csproj
index 1512590..a39c7db 100644
--- a/TestServer/TestServer.csproj
+++ b/TestServer/TestServer.csproj
@@ -35,6 +35,12 @@
4
+
+ E:\dev\Libraries\protobuf\csharp\Debug\v4.0\Google.ProtocolBuffers.dll
+
+
+ E:\dev\Libraries\protobuf\csharp\Debug\v4.0\Google.ProtocolBuffers.Serialization.dll
+
..\References\log4net.dll
@@ -49,11 +55,10 @@
+
Code
-
-
@@ -62,32 +67,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ Always
+
diff --git a/TestServer/addressbook.desc b/TestServer/addressbook.desc
new file mode 100644
index 0000000..b4ee9f7
Binary files /dev/null and b/TestServer/addressbook.desc differ