protected AgentSessionBase(MessageTransceiver transceiver, string serverSessionId, string sessionClientId) { this.Transceiver = transceiver; this.ServerSessionId = serverSessionId; this.SessionClientId = sessionClientId; SessionId = Guid.NewGuid().ToString("N"); TimeCreated = DateTime.UtcNow; CacheSpan = TimeSpan.FromHours(1); LifeSpan = TimeSpan.FromHours(8); TokenSource = new CancellationTokenSource(); taskList = new ConcurrentDictionary <string, Task>(StringComparer.Ordinal); _log = new Lazy <ILog>(() => LogManager.GetLogger(GetType())); Output = new SessionOutput(transceiver, ServerSessionId, SessionClientId); WorkDirectory = Path.Combine(Configuration.WorkDirectory, SessionId); ContentDirectory = Path.Combine(WorkDirectory, "content"); BinDirectory = Path.Combine(WorkDirectory, "bin"); Packages = new PackageHost { ServerSessionId = serverSessionId, Transceiver = transceiver, }; Applications = new ApplicationHost(); }
public void MessagesCallback(Message [] messages, MessageTransceiver client, object state) { foreach (Message message in messages) { System.Console.WriteLine(message.ToString()); } }
public RuntimeEngine(IModuleConfigData configData) { _globalInfo = new ModuleGlobalInfo(configData); bool isSyncMessenger = _globalInfo.ConfigData.GetProperty <bool>("EngineSyncMessenger"); // TODO 暂时写死使用LocalTestMaintainer // 初始化消息收发器 MessageTransceiver messageTransceiver = MessageTransceiver.GetTransceiver(_globalInfo, isSyncMessenger); messageTransceiver.Clear(); _controller = new EngineFlowController(_globalInfo); _statusManager = new RuntimeStatusManager(_globalInfo); _syncManager = new SynchronousManager(_globalInfo); _callBackProcessor = new CallBackProcessor(_globalInfo); _debugManager = EnableDebug ? new DebugManager(_globalInfo) : null; _runtimeInfoSelector = new RuntimeInfoSelector(_globalInfo, this); _globalInfo.RuntimeInitialize(messageTransceiver, _debugManager); _runtimeObjectManager = new RuntimeObjectManager(_globalInfo); RuntimeStateMachine stateMachine = new RuntimeStateMachine(); _globalInfo.StateMachine = stateMachine; RegisterMessageHandler(); _globalInfo.LogService.Print(LogLevel.Info, CommonConst.PlatformLogSession, "RuntimeEngine constructed."); }
public SessionOutput(MessageTransceiver transceiver, string serverSessionId, string sessionClientId) { this.transceiver = transceiver; this.serverSessionId = serverSessionId; this.sessionClientId = sessionClientId; Writer = new ScriptOutput(); Writer.Changed += Output_OnChanged; }
public static void DoQuery(out IReadOnlyList <T> results) { MessageTransceiver <QueryMessage <T> > .Broadcast(new QueryMessage <T> { Query = _query }); results = _queryCache; }
public static void DoDelete(DeleteRequest req) { MessageTransceiver <DeleteMessage <T> > .Broadcast(new DeleteMessage <T> { Where = req.Where }); MessageTransceiver <OnDeleteMessage <T> > .Broadcast(new OnDeleteMessage <T>()); }
public static void DoInsert(InsertRequest req) { MessageTransceiver <InsertMessage <T> > .Broadcast(new InsertMessage <T> { Data = req.Data }); MessageTransceiver <OnInsertMessage <T> > .Broadcast(new OnInsertMessage <T>()); }
public void Wait() { if (_isWaiting) { MessageTransceiver <T> .RemoveListener(_onReceive); } _isWaiting = true; MessageTransceiver <T> .AddListener(_onReceive); }
public static void DoUpdate(UpdateRequest req) { MessageTransceiver <UpdateMessage <T> > .Broadcast(new UpdateMessage <T> { Where = req.Where, Update = req.Update }); MessageTransceiver <OnUpdateMessage <T> > .Broadcast(new OnUpdateMessage <T>()); }
private void OnReceive(T msg) { if (_isWaiting) { MessageTransceiver <T> .RemoveListener(_onReceive); _isWaiting = false; _msg = msg; _onComplete?.Invoke(); } }
public RuntimeEngine(IModuleConfigData configData) { _globalInfo = new ModuleGlobalInfo(configData); bool isSyncMessenger = _globalInfo.ConfigData.GetProperty <bool>("EngineSyncMessenger"); // TODO 暂时写死使用LocalTestMaintainer // 初始化消息收发器 MessageTransceiver messageTransceiver = MessageTransceiver.GetTransceiver(_globalInfo, isSyncMessenger); _controller = new EngineFlowController(_globalInfo); _statusManager = new RuntimeStatusManager(_globalInfo); _syncManager = new SynchronousManager(_globalInfo); _globalInfo.RuntimeInitialize(messageTransceiver, _controller.Debugger); _runtimeObjectManager = new RuntimeObjectManager(); RuntimeStateMachine stateMachine = new RuntimeStateMachine(); _globalInfo.StateMachine = stateMachine; RegisterMessageHandler(); }
protected AgentSessionBase(MessageTransceiver transceiver, string serverSessionId, string sessionClientId) { this.Transceiver = transceiver; this.ServerSessionId = serverSessionId; this.SessionClientId = sessionClientId; SessionId = Guid.NewGuid().ToString("N"); utcCreated = DateTime.UtcNow; CacheSpan = TimeSpan.FromHours(1); LifeSpan = TimeSpan.FromHours(8); _log = new Lazy <ILog>(() => LogManager.GetLogger(GetType())); Output = new SessionOutput(transceiver, ServerSessionId, SessionClientId); WorkDirectory = Path.Combine(Configuration.WorkDirectory, SessionId); ContentDirectory = Path.Combine(WorkDirectory, "content"); BinDirectory = Path.Combine(WorkDirectory, "bin"); PackageClient = new DomainPackageClient(); PackageClient.OnPushProjectPackage += PackageClient_OnPushProjectPackage; PackageClient.OnPushApplicationPackage += PackageClient_OnPushApplicationPackage; PackageClient.OnPullProjectPackage += PackageClient_OnPullProjectPackage; PackageClient.OnPullApplicationPackage += PackageClient_OnPullApplicationPackage; }
public ExampleClient(string hostName, int port) { MessageTransceiver client = new MessageTransceiver(hostName, port); client.RegisterForMessages(new MessagesCallback(MessagesCallback), null); client.RegisterForDisconnect(new DisconnectCallback(DisconnectCallback), null); client.BeginConnect(new AsyncCallback(this.ConnectCallback), client); Message m1 = new Message(); m1.what = StorageReflectConstants.PR_COMMAND_SETPARAMETERS; m1.setBoolean("SUBSCRIBE:*", true); m1.setBoolean("SUBSCRIBE:*/*", true); m1.setBoolean("SUBSCRIBE:*/*/*", true); m1.setBoolean("SUBSCRIBE:*/*/*/*", true); m1.setBoolean("SUBSCRIBE:*/*/*/*/*", true); client.Send(m1); while (true) { Thread.Sleep(5000); } }
public AgentDeploySession(MessageTransceiver transceiver, string serverSessionId, string sessionClientId) : base(transceiver, serverSessionId, sessionClientId) { ApplicationsDirectory = Configuration.ApplicationsDirectory; }
public void Close() { MessageTransceiver <T> .RemoveListener(_onReceive); _isWaiting = false; }
public void DisconnectCallback(MessageTransceiver client, Exception err, object state) { Console.WriteLine(err.ToString()); Console.WriteLine("disconnected"); }
public void ConnectCallback(IAsyncResult ar) { MessageTransceiver client = (MessageTransceiver)ar.AsyncState; client.EndConnect(ar); }
public SlaveController(SlaveContext slaveContext) { this._transceiver = slaveContext.MessageTransceiver; this._slaveContext = slaveContext; }
public void Dispose() { MessageTransceiver?.Dispose(); TestGenBlocker?.Dispose(); }
public void RuntimeInitialize(MessageTransceiver messageTransceiver, DebugManager debugManager) { this.MessageTransceiver = messageTransceiver; this.EventQueue = new LocalEventQueue <EventInfoBase>(Constants.DefaultEventsQueueSize); this.DebugHandle = new DebuggerHandle(debugManager); }
public void Dispose() { MessageTransceiver?.Dispose(); }
public AgentBuildSession(MessageTransceiver transceiver, string serverSessionId, string sessionClientId) : base(transceiver, serverSessionId, sessionClientId) { }