Esempio n. 1
0
        public void WriteHeartbeat(BinaryWriter writer, AgentOperationMode mode, ushort sendBufferSize)
        {
            writer.Write(MessageTypes.Heartbeat);
            switch (mode)
            {
            case AgentOperationMode.Initializing:
                writer.Write((byte)73);
                break;

            case AgentOperationMode.Paused:
                writer.Write((byte)80);
                break;

            case AgentOperationMode.Suspended:
                writer.Write((byte)83);
                break;

            case AgentOperationMode.Tracing:
                writer.Write((byte)84);
                break;

            case AgentOperationMode.Shutdown:
                writer.Write((byte)88);
                break;

            default:
                throw new InvalidOperationException($"Unable to write heatbeat for unknown AgentOperationMode: {mode}.");
            }
            writer.WriteBigEndian(sendBufferSize);
        }
Esempio n. 2
0
        private void TriggerModeChange(AgentOperationMode newMode)
        {
            if (CurrentMode == AgentOperationMode.Shutdown)
            {
                return;
            }

            var oldMode = CurrentMode;

            CurrentMode = newMode;

            lock (_listeners)
            {
                foreach (var listener in _listeners)
                {
                    listener.OnModeChange(oldMode, newMode);
                }
            }
        }