Esempio n. 1
0
        private void PipeServer_ClientConnected(NamedPipeConnection <Message, Message> connection)
        {
            SessionHelperInstance instance = new SessionHelperInstance(connection);

            instance.Started    += Instance_Started;
            instance.Terminated += Instance_Terminated;

            // Initiale Konfiguration
            SessionHelperConfig config = new SessionHelperConfig();

            config.Interval = Context.Interval / 10;
            instance.Config = config;
        }
Esempio n. 2
0
        private void Instance_Terminated(SessionHelperInstance instance, bool forced)
        {
            if (forced)
            {
                EventLog.WriteEntry($"SessionHelper terminated (SID={instance.SID}, PID={instance.PID}) = hung", EventLogEntryType.Error, 82);
            }

            instance.Terminated -= Instance_Terminated;
            instance.Started    -= Instance_Started;

            lock (instances)
            {
                instances.Remove(instance);
            }

            Terminated?.Invoke(instance);
        }
Esempio n. 3
0
        private void Instance_Started(SessionHelperInstance instance)
        {
            if (InstanceBySID(instance.SID) != null)
            {
                EventLog.WriteEntry($"SessionHelper redundant (SID={instance.SID}, PID={instance.PID})", EventLogEntryType.Warning, 81);

                instance.Terminate();

                return;
            }

            if (Context.DebugLog)
            {
                EventLog.WriteEntry($"SessionHelper connected (SID={instance.SID}, PID={instance.PID})", EventLogEntryType.Information, 81);
            }

            lock (instances)
            {
                instances.Add(instance);
            }

            Started?.Invoke(instance);
        }