internal IDaemonStrategy SwitchStrategy(SessionState state) { lock (_strategies) { if (SessionState != state) { _currentStrategy = _strategies[state]; } } return(_currentStrategy); }
public Application(bool processOwner, Guid sessionUid) : base(processOwner) { _sessionUid = sessionUid; _strategies = new Dictionary <SessionState, IDaemonStrategy>(); _strategies.Add(SessionState.Closed, new DaemonClosedStrategy(this)); _currentStrategy = _strategies[SessionState.Closed]; _previousSessionState = SessionState; _lifetimeSponsors = new Proxy.LifetimeSponsorCollection(Constants.Remoting.SponsorshipTimeout); _lifetimeSponsors.SponsorshipEnded += OnSponsorshipEnded; _lifetimeSponsors.Start(); }
public void StartDecoding() { IDaemonStrategy strategy = _application.SwitchStrategy(SessionState.Decoding); strategy.StartDecoding(); }
public void StartProfiling(int profiledProcessId, Guid agentApplicationUid, uint profilingBeginTime) { IDaemonStrategy strategy = _application.SwitchStrategy(SessionState.Profiling); strategy.StartProfiling(profiledProcessId, agentApplicationUid, profilingBeginTime); }