PipeDatabaseProxyEngine.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using InABox.Clients;
  2. using InABox.Core;
  3. using InABox.Rpc;
  4. using PRSServices;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace PRSServer;
  11. internal class PipeDatabaseProxyEngine : DatabaseProxyEngine<PipeDatabaseProxyProperties>
  12. {
  13. private string PipeName;
  14. RpcPipeProxyServer ProxyServer { get; set; }
  15. public override void Configure(Server server)
  16. {
  17. base.Configure(server);
  18. PipeName = DatabaseServerProperties.GetPipeName(server.Key, true);
  19. }
  20. protected override void RunProxy()
  21. {
  22. Logger.Send(LogType.Information, "", "Starting RPC Listener: Name=[" + PipeName + "]");
  23. try
  24. {
  25. ProxyServer = new RpcPipeProxyServer(PipeName, ServerTransport);
  26. ProxyServer.OnLog += Logger.Send;
  27. ProxyServer.Start();
  28. }
  29. catch (Exception eListen)
  30. {
  31. Logger.Send(LogType.Error, ClientFactory.UserID, eListen.Message);
  32. }
  33. }
  34. public override void Stop()
  35. {
  36. ProxyServer.Stop();
  37. }
  38. }