示例#1
0
 internal IDaemonStrategy SwitchStrategy(SessionState state)
 {
     lock (_strategies)
     {
         if (SessionState != state)
         {
             _currentStrategy = _strategies[state];
         }
     }
     return(_currentStrategy);
 }
示例#2
0
 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);
        }