public IvxrPluginContext() { var seLog = new SeLog(alwaysFlush: true); seLog.Init("ivxr-plugin.log"); Log = seLog; var sessionController = new SessionController() { Log = Log }; m_sessionDispatcher = new SessionDispatcher(sessionController) { Log = Log }; m_server = new PluginServer(Log, m_sessionDispatcher, m_requestQueue); var observer = new Observer(m_gameSession); var controller = new CharacterController(m_gameSession); Dispatcher = new Dispatcher(m_requestQueue, observer, controller) { Log = Log }; }
public static void Create(string pRbrProcessFilePath, SessionDispatcher pSessionDispatcher) { try { if (channelListenerList != null) { throw new Exception("ChannelListenerFactory.Create was already called!"); } var _rbrBin = Path.Combine(pRbrProcessFilePath, "bin"); var _ivrDllPath = Path.Combine(_rbrBin, "Timok.Ivr.dll"); var _ivrAssembly = Utils.TryLoadIvrAssembly(_ivrDllPath); ivr = (IIVRPlugin)Activator.CreateInstance(_ivrAssembly.GetType("Timok_IVR.IVR")); ivr.Start(Configuration.Instance.IVR as IVRConfiguration); var _numberOfChannels = 0; channelListenerList = new ChannelListener[Configuration.Instance.IVR.MaxNumberOfCallsPerModule * Configuration.Instance.IVR.NumberOfModules]; for (var _countModules = 0; _countModules < Configuration.Instance.IVR.NumberOfModules; _countModules++) { for (var _countChannels = 0; _countChannels < Configuration.Instance.IVR.MaxNumberOfCallsPerModule; _countChannels++) { channelListenerList[_numberOfChannels] = new ChannelListener(ivr, _countModules, _numberOfChannels, pSessionDispatcher); _numberOfChannels++; } } Thread.Sleep(3000); } catch (Exception _ex) { throw new Exception(string.Format("ChannelListenerFactory.Start, exception: {0}", _ex)); } }
public Manager(Platform platform) { try { this.session = SessionDispatcher.NewSession(platform.ConnectionString); this.rx = new Repository(this.session); } catch (Exception ex) { throw ex; } }
public static void Main(string[] args) { var log = new ConsoleLog(); var sessionController = new MockSessionController() { Log = log }; var sessionDispatcher = new SessionDispatcher(sessionController) { Log = log }; using (var requestQueue = new RequestQueue()) { var server = new PluginServer(log, sessionDispatcher, requestQueue); server.Start(); var observer = new MockObserver(); var controller = new MockCharacterController() { Log = log }; var dispatcher = new Dispatcher(requestQueue, observer, controller); dispatcher.Log = log; while (true) { dispatcher.ProcessRequests(); /* * while (requestQueue.Requests.TryDequeue(out Request request)) * { * log.WriteLine("dequeued: " + request.Message); * * requestQueue.Replies.Add( * new Request(request.ClientStream, $"Got {request.Message.Length} bytes, thanks!")); * } */ Thread.Sleep(5); } // server.Start(waitForFinish: true); } }