public new void pushDelayCommand <T>(CommandReceiver cmdReceiver, float delayExecute = 0.001f, bool show = true) where T : Command, new() { // 如果命令系统已经销毁了,则不能再发送命令 if (mSystemDestroy) { return; } T cmd = newCmd <T>(show, true); pushDelayCommand(cmd, cmdReceiver, delayExecute); }
static void Main(string[] args) { CommandReceiver server = new CommandReceiver(); server.Open(); Console.WriteLine($"Started: port {server.Port}"); Console.ReadKey(); server.Close(); Console.WriteLine("Closed."); }
/// <summary> /// When we get a message from the server, we handle the message here /// and perform any necessary tasks. /// </summary> private void ListenerOnNetworkReceiveEvent(NetPeer peer, NetPacketReader reader, DeliveryMethod deliveryMethod) { try { CommandReceiver.Parse(reader, peer); } catch (Exception ex) { _logger.Error(ex, $"Encountered an error while reading command from {peer.EndPoint.Address}:{peer.EndPoint.Port}:"); } }
public BOOL mResult; // 命令的执行结果,只用于部分需要知道执行结果的命令使用 public Command() { mReceiver = null; mEndCallback = new List <CommandCallback>(); mStartCallback = new List <CommandCallback>(); mEndUserData = new List <object>(); mStartUserData = new List <object>(); mValid = false; mAssignID = -1; mResult = null; }
public Startup(IConfiguration configuration) { Configuration = configuration; Properties.Constants.CONFIGURATION = configuration; InitHttpClient(); noticeCrawler = new NoticeCrawler(); commandReceiver = new CommandReceiver(); noticeCrawler.OnNoticeUpdated += NoticeCrawler_OnNoticeUpdated; }
public new void pushCommand <T>(CommandReceiver cmdReceiver, bool show = true) where T : Command, new() { // 如果命令系统已经销毁了,则不能再发送命令 if (mDestroy) { return; } T cmd = newCmd <T>(show, false); pushCommand(cmd, cmdReceiver); }
public virtual void init() { mReceiver = null; mShowDebugInfo = true; mDelayCommand = false; mValid = false; mExecuteState = EXECUTE_STATE.ES_NOT_EXECUTE; mEndCallback.Clear(); mStartCallback.Clear(); mEndUserData.Clear(); mStartUserData.Clear(); }
//protected bool m_UseParentInvoker; //protected bool m_UseParentValidator; ////////////////////////////////////////////////////////////////////////// public void iStart(ICommandValidator validator) { m_Validator = validator; m_CommandReceiver = validator as CommandReceiver; /*if (m_CommandReciver != null) * { // write this if needed * if (m_UseParentInvoker) * if (m_UseParentValidator) * }*/ Start(); }
public Command pushDelayCommand(Type type, CommandReceiver cmdReceiver, float delayExecute, bool show, IDelayCmdWatcher watcher) { // 如果命令系统已经销毁了,则不能再发送命令 if (mDestroy) { return(null); } Command cmd = newCmd(type, show, true); pushDelayCommand(cmd, cmdReceiver, delayExecute, watcher); return(cmd); }
public override string ToString() { var result = $"Command: {CommandReceiver.ToString()}{ReceiverID} {IssuedCommand}"; if (Args?.Count > 0) { foreach (var arg in Args) { result = result += $" {arg}"; } } return(result); }
public void OldestPersonTest_GivenPerson_CorrectResult(string firstName, string secondName, string sex, int age) { Person expectedPerson = new Person { FirstName = firstName, LastName = secondName, Sex = sex, Age = age }; CommandReceiver receiver = new CommandReceiver(list); Assert.Equal(expectedPerson, receiver.OldestPerson()); }
private void OpenLocalCommandReceiver() { try { this.cmdReceiver = new CommandReceiver(Ports.Main); SynchronizationContext sc = SynchronizationContext.Current; this.cmdReceiver.Start(this.OnReceivedCommandLine); } catch (Exception e) { MessageBox.Show("Command receiver initialized failed."); } }
public async Task <Unit> Handle(Command request, CancellationToken cancellationToken) { List <Receiver> receivers = new List <Receiver>(); foreach (var receiverEmail in request.ReceiverEmails) { Receiver receiver = await _context.Receivers.FirstOrDefaultAsync( r => r.ReceivingUser.Email == receiverEmail); if (receiver == null) { throw new RestException(HttpStatusCode.BadRequest, new { Receiver = $"{receiverEmail} is not registerd" }); } receivers.Add(receiver); } var user = await _context.Users.SingleOrDefaultAsync( x => x.Email == _userAccessor.GetCurrentUserEmail()); PushCommand pushCommand = new PushCommand { Name = request.Name, Message = request.Message, CommandReceivers = new List <CommandReceiver>(), }; foreach (var receiver in receivers) { CommandReceiver commandReceiver = new CommandReceiver { PushCommand = pushCommand, Receiver = receiver, }; pushCommand.CommandReceivers.Add(commandReceiver); } user.PushCommands.Add(pushCommand); bool success = (await _context.SaveChangesAsync() > 0); if (success == true) { return(Unit.Value); } throw new Exception("Problem Saving Changes"); }
public virtual void init() { mReceiver = null; mUserData = null; mResult = null; mShowDebugInfo = true; mDelayCommand = false; mValid = false; mIgnoreTimeScale = false; mExecuteState = EXECUTE_STATE.ES_NOT_EXECUTE; mEndCallback.Clear(); mStartCallback.Clear(); mDelayTime = 0.0f; }
protected bool SendCommandAck(byte[] packet, int sequenceId) { int tryNum = 0; CommandReceiver.SetCommandReceived("SEND_WITH_ACK", sequenceId, false); while (tryNum < MaxPacketRetries && !CommandReceiver.IsCommandReceived("SEND_WITH_ACK", sequenceId)) { SafeSend(packet); tryNum++; SmartSleep(250); } return(CommandReceiver.IsCommandReceived("SEND_WITH_ACK", sequenceId)); }
public void TheMostPopularFemaleNameTest() { List <User> listOfUsers = new List <User>(); listOfUsers.Add(new User("Any", "Novik", User.SexOfAPerson.female, 18)); listOfUsers.Add(new User("Natasha", "Lesh", User.SexOfAPerson.female, 64)); listOfUsers.Add(new User("Ivan", "Morz", User.SexOfAPerson.male, 25)); listOfUsers.Add(new User("Vlad", "Sed", User.SexOfAPerson.male, 40)); listOfUsers.Add(new User("Natasha", "Lok", User.SexOfAPerson.female, 24)); listOfUsers.Add(new User("Natasha", "Les", User.SexOfAPerson.female, 52)); CommandReceiver receiver = new CommandReceiver(listOfUsers); string actualValue = receiver.SearchTheMostPopularFemaleName(); Assert.AreEqual("Natasha", actualValue); }
public void TheOldestUserTest() { List <User> listOfUsers = new List <User>(); listOfUsers.Add(new User("Any", "Novik", User.SexOfAPerson.female, 18)); listOfUsers.Add(new User("Natasha", "Lesh", User.SexOfAPerson.female, 64)); listOfUsers.Add(new User("Ivan", "Morz", User.SexOfAPerson.male, 25)); listOfUsers.Add(new User("Vlad", "Sed", User.SexOfAPerson.male, 40)); listOfUsers.Add(new User("Natasha", "Lok", User.SexOfAPerson.female, 24)); listOfUsers.Add(new User("Natasha", "Les", User.SexOfAPerson.female, 52)); CommandReceiver receiver = new CommandReceiver(listOfUsers); int actualValue = receiver.SearchOldestUser(); Assert.AreEqual(64, actualValue); }
public override void resetProperty() { base.resetProperty(); mReceiver = null; mResult = null; mShowDebugInfo = true; mDelayCommand = false; mIgnoreTimeScale = false; mCmdState = EXECUTE_STATE.NOT_EXECUTE; mEndCallback.Clear(); mStartCallback.Clear(); mDelayTime = 0.0f; // CmdID不重置 // mCmdID = 0; }
static IThemeAgent SetupAgent() { #if NETSTANDARD1_0 || NETSTANDARD2_0 return(null); #else #pragma warning disable IDE0022 // Use expression body for method var agent = new ThemeAgent(); var receiver = new CommandReceiver { OnCommand = agent.ExecuteCommand }; return(agent); #pragma warning restore IDE0022 // Use expression body for methods #endif }
// delayExecute是命令延时执行的时间,默认为0,只有new出来的命令才能延时执行 // 子线程中发出的命令必须是延时执行的命令! public new void pushDelayCommand(Command cmd, CommandReceiver cmdReceiver, float delayExecute, IDelayCmdWatcher watcher) { // 如果命令系统已经销毁了,则不能再发送命令 if (mDestroy) { return; } if (cmd == null) { logError("cmd is null! receiver : " + (cmdReceiver != null ? cmdReceiver.getName() : EMPTY)); return; } if (cmdReceiver == null) { logError("receiver is null! cmd : " + (cmd != null ? cmd.GetType().ToString() : EMPTY)); return; } if (cmd.isDestroy()) { logError("cmd is invalid! make sure create cmd use CommandSystem.newCmd! pushDelayCommand cmd type : " + Typeof(cmd) + "cmd id : " + cmd.getAssignID()); return; } if (!cmd.isDelayCommand()) { logError("cmd is not a delay command, Command : " + cmd.getAssignID() + ", " + cmd.showDebugInfo()); return; } clampMin(ref delayExecute); if (cmd.isShowDebugInfo()) { #if UNITY_EDITOR || DEVELOPMENT_BUILD log("CMD : delay cmd : " + cmd.getAssignID() + ", " + delayExecute + ", info : " + cmd.showDebugInfo() + ", receiver : " + cmdReceiver.getName(), LOG_LEVEL.NORMAL); #endif } cmd.setDelayTime(delayExecute); cmd.setReceiver(cmdReceiver); mBufferLock.waitForUnlock(); mCommandBufferInput.Add(cmd); mBufferLock.unlock(); watcher?.addDelayCmd(cmd); }
// delayExecute是命令延时执行的时间,默认为0,只有new出来的命令才能延时执行 // 子线程中发出的命令必须是延时执行的命令! public new void pushDelayCommand(Command cmd, CommandReceiver cmdReceiver, float delayExecute = 0.001f) { // 如果命令系统已经销毁了,则不能再发送命令 if (mSystemDestroy) { return; } if (cmd == null) { logError("cmd is null! receiver : " + (cmdReceiver != null ? cmdReceiver.getName() : "")); return; } if (cmdReceiver == null) { logError("receiver is null! cmd : " + (cmd != null ? cmd.getType().ToString() : "")); return; } if (!cmd.isValid()) { logError("cmd is invalid! make sure create cmd use CommandSystem.newCmd! pushDelayCommand cmd type : " + cmd.GetType().ToString() + "cmd id : " + cmd.mAssignID); return; } if (!cmd.isDelayCommand()) { logError("cmd is not a delay command, Command : " + cmd.mAssignID + ", " + cmd.showDebugInfo()); return; } if (delayExecute < 0.0f) { delayExecute = 0.0f; } if (cmd.getShowDebugInfo()) { logInfo("CommandSystem : delay cmd : " + cmd.mAssignID + ", " + delayExecute + ", info : " + cmd.showDebugInfo() + ", receiver : " + cmdReceiver.getName(), LOG_LEVEL.LL_NORMAL); } DelayCommand delayCommand = new DelayCommand(delayExecute, cmd, cmdReceiver); mBufferLock.waitForUnlock(); mCommandBufferInput.Add(delayCommand); mBufferLock.unlock(); }
// 执行命令 public new void pushCommand(Command cmd, CommandReceiver cmdReceiver) { // 如果命令系统已经销毁了,则不能再发送命令 if (mDestroy) { return; } if (cmd == null) { logError("cmd is null! receiver : " + (cmdReceiver != null ? cmdReceiver.getName() : EMPTY)); return; } if (cmdReceiver == null) { logError("receiver is null! cmd : " + (cmd != null ? cmd.GetType().ToString() : EMPTY)); return; } if (cmd.isDestroy()) { logError("cmd is invalid! make sure create cmd use CommandSystem.newCmd! pushCommand cmd type : " + Typeof(cmd) + "cmd id : " + cmd.getAssignID()); return; } if (cmd.isDelayCommand()) { logError("cmd is a delay cmd! can not use pushCommand!" + cmd.getAssignID() + ", " + cmd.showDebugInfo()); return; } cmd.setReceiver(cmdReceiver); if (cmd.isShowDebugInfo()) { #if UNITY_EDITOR || DEVELOPMENT_BUILD log("CMD : " + cmd.getAssignID() + ", " + cmd.showDebugInfo() + ", receiver : " + cmdReceiver.getName(), LOG_LEVEL.NORMAL); #endif } cmdReceiver.receiveCommand(cmd); // 销毁回收命令 mClassPoolThread?.destroyClass(cmd); }
private void AgentWindowLoad(object sender, EventArgs e) { this.Visible = false; LoggerClient.Initialize(); this.logger.Send("ScadaDataClient", "Data (upload) Program starts at " + DateTime.Now); this.InitSysNotifyIcon(); this.MakeWindowShownFront(); this.ShowInTaskbar = false; this.SetExceptionToolStripMenuItem.Checked = false; this.cmdReceiver = new CommandReceiver(Ports.DataClient); cmdReceiver.Start(this.OnLocalCommand); SystemEvents.SessionEnding += SystemEvents_SessionEnding; this.InitDetailsListView(); if (this.StartState) { this.Start(); } }
public virtual void notifyReceiverDestroied(CommandReceiver receiver) { if (mSystemDestroy) { return; } // 异步列表中 mBufferLock.waitForUnlock(); for (int i = 0; i < mCommandBufferInput.Count; ++i) { if (mCommandBufferInput[i].mReceiver == receiver) { mCommandBufferInput.Remove(mCommandBufferInput[i]); --i; } } mBufferLock.unlock(); // 同步列表中 for (int i = 0; i < mCommandBufferProcess.Count; ++i) { if (mCommandBufferProcess[i].mReceiver == receiver) { mCommandBufferProcess.Remove(mCommandBufferProcess[i]); --i; } } // 执行列表中 int count = mExecuteList.Count; for (int i = 0; i < count; ++i) { // 已执行或正在执行的命令不作判断,该列表无法删除元素,只能将接收者设置为null if (mExecuteList[i].mReceiver == receiver && mExecuteList[i].mCommand.mExecuteState == EXECUTE_STATE.ES_NOT_EXECUTE) { mExecuteList[i].mReceiver = null; } } }
// 执行命令 public new void pushCommand(Command cmd, CommandReceiver cmdReceiver) { // 如果命令系统已经销毁了,则不能再发送命令 if (mSystemDestroy) { return; } if (cmd == null) { logError("cmd is null! receiver : " + (cmdReceiver != null ? cmdReceiver.getName() : "")); return; } if (cmdReceiver == null) { logError("receiver is null! cmd : " + (cmd != null ? cmd.getType().ToString() : "")); return; } if (!cmd.isValid()) { logError("cmd is invalid! make sure create cmd use CommandSystem.newCmd! pushCommand cmd type : " + cmd.GetType().ToString() + "cmd id : " + cmd.mAssignID); return; } if (cmd.isDelayCommand()) { logError("cmd is a delay cmd! can not use pushCommand!" + cmd.mAssignID + ", " + cmd.showDebugInfo()); return; } cmd.setReceiver(cmdReceiver); if (cmd.getShowDebugInfo()) { logInfo("CommandSystem : " + cmd.mAssignID + ", " + cmd.showDebugInfo() + ", receiver : " + cmdReceiver.getName(), LOG_LEVEL.LL_NORMAL); } cmdReceiver.receiveCommand(cmd); // 销毁回收命令 mCommandPool.destroyCmd(cmd); }
private void AgentWindow_Load(object sender, EventArgs e) { this.CancelQuit = true; InitSysNotifyIcon(); // StatusBar labels this.statusStrip.Items.Add(this.statusLabel); this.statusStrip.Items.Add(new ToolStripSeparator()); this.statusStrip.Items.Add(this.addressLabel); this.statusStrip.Items.Add(new ToolStripSeparator()); this.statusStrip.Items.Add(this.counterLabel); this.statusStrip.Items.Add(new ToolStripSeparator()); this.statusStrip.Items.Add(this.uploadLabel); this.statusStrip.Items.Add(new ToolStripSeparator()); this.statusStrip.Items.Add(this.pingLabel); this.CheckLastSendTime = true; this.cmdReceiver = new CommandReceiver(Ports.DataClient); cmdReceiver.Start(this.OnLocalCommand); this.InitDetailsListView(); this.Start(); }
public static void Init(TestContext tc) { CommandFile.SharedFolder = "A:\\Cmmd"; _localDbFilePath = Path.Combine(Properties.Resources.Local, $"{nameof(Edit_SqliteDb_CmmdToSharedFolderToLocalDbVSToSharedFolderTest)}{SqliteDBContext.DBFileExtensionName}"); _sharedFolderDbFilePath = Path.Combine(Properties.Resources.Shared, $"{nameof(Edit_SqliteDb_CmmdToSharedFolderToLocalDbVSToSharedFolderTest)}{SqliteDBContext.DBFileExtensionName}"); NetCoreSqliteDB.SqliteDBContext.CopyTempateDBFile(_localDbFilePath); _localRepository = new SqliteDBRepository(_localDbFilePath); _sharedFolderRepository = new SqliteDBRepository(_sharedFolderDbFilePath); _entitiy1000 = new Entity1[1000]; for (int i = 0; i < 1000; i++) { _entitiy1000[i] = AddDataRowsHelper.CreateDataRow <Entity1>(0, i); } var localDbContext = new NetCoreSqliteDB.SqliteDBContext(_localDbFilePath); localDbContext.Table1.AddRange(_entitiy1000); localDbContext.SaveChanges(); File.Copy(_localDbFilePath, _sharedFolderDbFilePath, true); foreach (var e in _entitiy1000) { e.P3 = "Edited"; e.BasedOnUpdatedDateTime = e.UpdatedDateTime; e.UpdatedDateTime = DateTime.Now; } _cmmdReceiver = new CommandReceiver(new JsonSer(), _localRepository); _cmmdReceiver.Start(); _cmmdSender = new CommandSender(new JsonSer()); }
public virtual void notifyReceiverDestroied(CommandReceiver receiver) { mBufferLock.waitForUnlock(LOCK_TYPE.LT_READ); for (int i = 0; i < mCommandBufferInput.Count; ++i) { if (mCommandBufferInput[i].mReceiver == receiver) { // 命令的延迟执行时间到了,则执行命令 mCommandBufferInput.Remove(mCommandBufferInput[i]); --i; } } mBufferLock.unlock(LOCK_TYPE.LT_READ); for (int i = 0; i < mCommandBufferProcess.Count; ++i) { if (mCommandBufferProcess[i].mReceiver == receiver) { // 命令的延迟执行时间到了,则执行命令 mCommandBufferProcess.Remove(mCommandBufferProcess[i]); --i; } } }
public static T pushDelayCommand <T>(CommandReceiver cmdReceiver, float delayExecute = 0.001f, bool show = true) where T : Command, new() { return(mCommandSystem.pushDelayCommand <T>(cmdReceiver, delayExecute)); }
public static void pushCommand(Command cmd, CommandReceiver cmdReceiver) { mCommandSystem.pushCommand(cmd, cmdReceiver); }