Beispiel #1
0
 public ServerOverNetworkStream(
   IProtoBufSerializer serializer,
   IReceiveRequestsThread receiveThread,
   ISendResponsesThread sendThread,
   ITypedEventForwarder typedEventForwarder) {
   _serializer = serializer;
   _sendThread = sendThread;
   _typedEventForwarder = typedEventForwarder;
   _receiveThread = receiveThread;
 }
Beispiel #2
0
 public ServerOverNetworkStream(
     IProtoBufSerializer serializer,
     IReceiveRequestsThread receiveThread,
     ISendResponsesThread sendThread,
     ITypedEventForwarder typedEventForwarder)
 {
     _serializer          = serializer;
     _sendThread          = sendThread;
     _typedEventForwarder = typedEventForwarder;
     _receiveThread       = receiveThread;
 }
 public ServerProcessProxy(
   IServerProcessLauncher serverProcessLauncher,
   IProtoBufSerializer serializer,
   IReceiveResponsesThread receiveResponsesThread,
   IRequestQueue requestQueue,
   ISendRequestsThread sendRequestsThread) {
   _serializer = serializer;
   _receiveResponsesThread = receiveResponsesThread;
   _requestQueue = requestQueue;
   _sendRequestsThread = sendRequestsThread;
   _serverProcessLauncher = serverProcessLauncher;
 }
 public ServerProcessProxy(
     IServerProcessLauncher serverProcessLauncher,
     IProtoBufSerializer serializer,
     IReceiveResponsesThread receiveResponsesThread,
     IRequestQueue requestQueue,
     ISendRequestsThread sendRequestsThread)
 {
     _serializer             = serializer;
     _receiveResponsesThread = receiveResponsesThread;
     _requestQueue           = requestQueue;
     _sendRequestsThread     = sendRequestsThread;
     _serverProcessLauncher  = serverProcessLauncher;
 }
Beispiel #5
0
        private static void AssertRoundTrip(IProtoBufSerializer serializer, IpcMessage message)
        {
            var result = RoundTrip(serializer, message);

            Assert.AreEqual(message.GetType(), result.GetType());
            Assert.AreEqual(message.RequestId, result.RequestId);
            Assert.AreEqual(message.Protocol, result.Protocol);
            Assert.AreEqual(message.Data == null, result.Data == null);
            if (message.Data != null)
            {
                Assert.AreEqual(message.Data.GetType(), result.Data.GetType());
            }
        }
 public ServerProcessProxy(
     IServerProcessLauncher serverProcessLauncher,
     IProtoBufSerializer serializer,
     IReceiveResponsesThread receiveResponsesThread,
     IRequestQueue requestQueue,
     ISendRequestsThread sendRequestsThread)
 {
     _serializer             = serializer;
     _receiveResponsesThread = receiveResponsesThread;
     _requestQueue           = requestQueue;
     _sendRequestsThread     = sendRequestsThread;
     _serverProcessLauncher  = serverProcessLauncher;
     _createProcessTask      = new Lazy <Task>(CreateProcessLazyWorker, LazyThreadSafetyMode.ExecutionAndPublication);
 }
Beispiel #7
0
        private void DisplayTreeStats(IProtoBufSerializer serializer, GetFileSystemResponse response, bool verbose)
        {
            Trace.WriteLine("=====================================================================");
            Trace.WriteLine("FileSystem tree stats:");
            {
                var mem         = new MemoryStream();
                var sw          = new Stopwatch();
                var ipcResponse = new IpcResponse {
                    RequestId = 0,
                    Protocol  = IpcProtocols.TypedMessage,
                    Data      = response
                };
                sw.Start();
                serializer.Serialize(mem, ipcResponse);
                sw.Stop();
                Trace.WriteLine(string.Format("ProtoBuf request of {0:n0} bytes serialized in {1} msec.", mem.Length,
                                              sw.ElapsedMilliseconds));
            }

            var stats = new TreeStats();

            stats.ProcessTree(null, "", response.Tree.Root);
            Trace.WriteLine(string.Format("Directory count: {0:n0}", stats.DirectoryCount));
            Trace.WriteLine(string.Format("File count: {0:n0}", stats.FileCount));
            Trace.WriteLine(string.Format("Total File size: {0:n0} bytes", stats.TotalSize));
            if (verbose)
            {
                Trace.WriteLine("=====================================================================");
                Trace.WriteLine(" Files sorted by count");
                foreach (var item in stats.Extensions.OrderByDescending(x => x.Value.FileCount))
                {
                    Trace.WriteLine(string.Format("Extension \"{0}\": {1:n0} files, {2:n0} bytes", item.Key.ToUpperInvariant(),
                                                  item.Value.FileCount, item.Value.TotalSize));
                }

                Trace.WriteLine("=====================================================================");
                Trace.WriteLine(" Files sorted by total length");
                foreach (var item in stats.Extensions.OrderByDescending(x => x.Value.TotalSize))
                {
                    Trace.WriteLine(string.Format("Extension \"{0}\": {2:n0} bytes, {1:n0} files", item.Key.ToUpperInvariant(),
                                                  item.Value.FileCount, item.Value.TotalSize));
                }

                OutputDirectorytree(0, "", stats.RootDirectory);
            }
        }
Beispiel #8
0
        private static T RoundTrip <T>(IProtoBufSerializer serializer, T req) where T : IpcMessage
        {
            var sw     = Stopwatch.StartNew();
            var stream = new MemoryStream();

            serializer.Serialize(stream, req);
            sw.Stop();
            Trace.WriteLine(string.Format("Serialized message of type {0} into {1:n0} bytes in {2} msec.",
                                          req.Data.GetType().FullName, stream.Length, sw.ElapsedMilliseconds));

            stream.Position = 0;
            sw.Restart();
            var result = serializer.Deserialize(stream);

            sw.Stop();
            Trace.WriteLine(string.Format("Deserialized message of type {0} from {1:n0} bytes in {2} msec.",
                                          req.Data.GetType().FullName, stream.Length, sw.ElapsedMilliseconds));
            return((T)result);
        }
 public IpcStreamOverNetworkStream(IProtoBufSerializer serializer, NetworkStream stream)
 {
     _serializer = serializer;
     _stream     = stream;
 }
        private void DisplayTreeStats(IProtoBufSerializer serializer, GetFileSystemResponse response, bool verbose)
        {
            Trace.WriteLine("=====================================================================");
              Trace.WriteLine("FileSystem tree stats:");
              {
            var mem = new MemoryStream();
            var sw = new Stopwatch();
            var ipcResponse = new IpcResponse {
              RequestId = 0,
              Protocol = IpcProtocols.TypedMessage,
              Data = response
            };
            sw.Start();
            serializer.Serialize(mem, ipcResponse);
            sw.Stop();
            Trace.WriteLine(string.Format("ProtoBuf request of {0:n0} bytes serialized in {1} msec.", mem.Length,
                                      sw.ElapsedMilliseconds));
              }

              var stats = new TreeStats();
              stats.ProcessTree(null, "", response.Tree.Root);
              Trace.WriteLine(string.Format("Directory count: {0:n0}", stats.DirectoryCount));
              Trace.WriteLine(string.Format("File count: {0:n0}", stats.FileCount));
              Trace.WriteLine(string.Format("Total File size: {0:n0} bytes", stats.TotalSize));
              if (verbose) {
            Trace.WriteLine("=====================================================================");
            Trace.WriteLine(" Files sorted by count");
            foreach (var item in stats.Extensions.OrderByDescending(x => x.Value.FileCount)) {
              Trace.WriteLine(string.Format("Extension \"{0}\": {1:n0} files, {2:n0} bytes", item.Key.ToUpperInvariant(),
                                        item.Value.FileCount, item.Value.TotalSize));
            }

            Trace.WriteLine("=====================================================================");
            Trace.WriteLine(" Files sorted by total length");
            foreach (var item in stats.Extensions.OrderByDescending(x => x.Value.TotalSize)) {
              Trace.WriteLine(string.Format("Extension \"{0}\": {2:n0} bytes, {1:n0} files", item.Key.ToUpperInvariant(),
                                        item.Value.FileCount, item.Value.TotalSize));
            }

            OutputDirectorytree(0, "", stats.RootDirectory);
              }
        }