예제 #1
0
 public MessageGrain(
     ILogger <MessageGrain> logger,
     [PersistentState("messages", "sqlite")] IPersistentState <List <string> > messageState)
 {
     _messageState = messageState;
     _subsManager  = new(TimeSpan.FromMinutes(5), logger, "subs");
 }
예제 #2
0
 private void Start()
 {
     if (manager == null)
     {
         manager = GameObject.FindObjectOfType <ObserverManager>();
     }
     Close(false);
 }
예제 #3
0
        static RpcObserverManager()
        {
            _clientDic = new Dictionary <ComboClass <string, string, string>, RpcClientObserverItem>();
            _serverDic = new Dictionary <ComboClass <string, string, string, string>, RpcServerObserverItem>();

            ObserverManager.RegisterObserver("RpcClient", ObserveClient, ClearClient);
            ObserverManager.RegisterObserver("RpcServer", ObserveServer, ClearServer);
        }
 /// <summary>
 /// Initializes the collection with the specified name.
 /// </summary>
 /// <param name="collectionName">The name of the collection (must match the property name!)</param>
 public VeryObservableCollection(string collectionName,
                                 ObserverManager changeManager = null, ViewModelMessage message = ViewModelMessage.None)
 {
     CollectionName     = collectionName;
     CollectionChanged += Collection_CollectionChanged;
     this.message       = message;
     this.changeManager = changeManager;
 }
    // Use this for initialization
    void Awake()
    {
        if (m_Instance != null)
        {
            Destroy(this);
        }
        m_Instance = this;

        m_Observers = new Dictionary <ObserveType, List <Action <object> > >();
    }
예제 #6
0
    public static IEnumerator ObserveExample(ObserverManager om)
    {
        yield return(null);

        om.HandleMessage("idle");
        yield return(new WaitForSeconds(1));

        om.HandleMessage(new MessageData("Example", "", Vector3.zero, 0).ToString());
        yield return(new WaitForSeconds(1));

        Permutation perm = new Permutation(9, true);

        om.HandleMessage(new MessageData("Example", "color1", RandDir(), perm.Number).ToString());
        yield return(new WaitForSeconds(1));

        perm.Randomize();
        om.HandleMessage(new MessageData("Example", "color2", RandDir(), perm.Number).ToString());
        yield return(new WaitForSeconds(3));

        perm.Randomize();
        om.HandleMessage(new MessageData("Example", "color1", RandDir(), perm.Number).ToString());
        yield return(new WaitForSeconds(1));

        perm.Randomize();
        om.HandleMessage(new MessageData("Example", "restart", RandDir(), perm.Number).ToString());
        yield return(new WaitForSeconds(1));

        perm.Randomize();
        om.HandleMessage(new MessageData("Example", "restart", RandDir(), perm.Number).ToString());
        yield return(new WaitForSeconds(1));

        perm.Randomize();
        om.HandleMessage(new MessageData("Example", "restart", RandDir(), perm.Number).ToString());
        yield return(new WaitForSeconds(1));

        om.HandleMessage(new MessageData("Example", "color1", RandDir(), perm.Number).ToString());
        yield return(new WaitForSeconds(0.1f));

        perm.Randomize();
        om.HandleMessage(new MessageData("Example", "restart", RandDir(), perm.Number).ToString());
        yield return(new WaitForSeconds(1));

        perm.Randomize();
        om.HandleMessage(new MessageData("Example", "color1", RandDir(), perm.Number).ToString());
        yield return(new WaitForSeconds(0.1f));

        perm.Randomize();
        om.HandleMessage(new MessageData("Example", "restart", RandDir(), perm.Number).ToString());
        yield return(new WaitForSeconds(0.5f));

        om.HandleMessage("idle");
        yield return(new WaitForSeconds(1));

        om.HandleMessage("disconnect");
    }
예제 #7
0
        static TracingManager()
        {
            _queueTracing  = new LazyQueue <TracingEvent>("TracingManager.QueueTracing", 32, 50, TracingDequeueAction);
            _queueLog      = new LazyQueue <SystemLogEvent>("TracingManager.QueueLog", 32, 50, SystemLogDequeueAction);
            _configSection = IICConfigSection.CreateDefault <TracingConfigSection>();
            _level         = TracingLevel.Off;
            ReloadConfiguration();

            //AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledException);
            //Trace.Listeners.Add(new DebugTraceListener());

            ObserverManager.RegisterObserver("Tracing", ObserveProc, ClearObserver);
        }
예제 #8
0
        public void Successful_AppObserver_Run_Cancellation_Via_ObserverManager()
        {
            ObserverManager.FabricServiceContext = this.context;
            ObserverManager.TelemetryEnabled     = false;
            ObserverManager.EtwEnabled           = false;
            ObserverManager.FabricClientInstance = new FabricClient(FabricClientRole.User);

            var stopWatch = new Stopwatch();

            var obs = new AppObserver
            {
                IsEnabled = true,
                NodeName  = "_Test_0",
                IsTestRun = true,
            };

            var obsMgr = new ObserverManager(obs)
            {
                ApplicationName = "fabric:/TestApp0",
            };

            var objReady = new ManualResetEventSlim(false);

            stopWatch.Start();
            var t = Task.Factory.StartNew(() =>
            {
                objReady.Set();
                obsMgr.StartObservers();
            });

            objReady?.Wait();

            while (!obsMgr.IsObserverRunning && stopWatch.Elapsed.TotalSeconds < 10)
            {
                // wait...
            }

            stopWatch.Stop();

            // Observer is running. Stop it...
            obsMgr.StopObservers();
            Thread.Sleep(5);

            Assert.IsFalse(obsMgr.IsObserverRunning);

            obs.Dispose();
            objReady?.Dispose();
        }
예제 #9
0
        private void RetrieveValue(bool notify)
        {
            object value;

            IDisposable observation = ObserverManager.RegisterObserver(this);

            try {
                value = _getter(_model);
                UpdateValue(value, notify);
            }
            catch {
                // TODO: Error handling (logging + breakpoint if debugger attached)
            }
            finally {
                observation.Dispose();
            }
        }
예제 #10
0
    public MessageData(ObserverManager om)
    {
#if UNITY_EDITOR
        rotation = om.mainCamera.transform.eulerAngles;
#else
        rotation = InputTracking.GetLocalRotation(VRNode.Head).eulerAngles;
#endif
        if (om.scenarioManager.gameObject.activeSelf)
        {
            scenario    = om.scenarioManager.GetScenarioName();
            scene       = om.scenarioManager.GetSceneName();
            permutation = om.scenarioManager.GetPermutationNumber();
        }
        else
        {
            scenario    = "";
            scene       = "";
            permutation = 0;
        }
    }
예제 #11
0
        static void Main(string[] args)
        {
#if false
            var manager = new NoInheritance.NoPolymorphManager();
            manager.DoYourThing();
#elif false
            var manager = new BadPolymorphManager();
            manager.DoYourThing();
#elif false
            var manager = new VirtualInheritance.VirtualPolymorphManager();
            manager.DoYourThing();
#elif false
            var manager = new AbstractInheritance.AbstractPolymorphManager();
            manager.DoYourThing();
#elif false
            //ILogger logger = new DebugLogger();
            ILogger logger  = new ConsoleLogger();
            var     manager = new GoodLiskovManager(logger);
            manager.DoYourThing();
#elif false
            //ILogger logger = new DebugLogger();
            ILogger logger  = new ConsoleLogger();
            var     manager = new BadLiskovManager(logger);
            manager.DoYourThing();
#elif false
            var manager = new ObserverManager();
            manager.DoYourThing();
#elif true
            //ILogger logger = new DebugLogger();
            ILogger       logger = new ConsoleLogger();
            ITrafficLight lights = new RawTrafficLight(logger);
            //ITrafficLight lights = new CoolTrafficLight(logger);
            var manager = new TrafficLightManager(logger, lights);
            manager.DoYourThing();
#endif
        }
 public void Remove(ObserverManager obvs)
 {
     Observers.Remove(obvs);
 }
예제 #13
0
 void OnEnable()
 {
     ObserverManager.Register(this);
 }
예제 #14
0
 void OnDisable()
 {
     ObserverManager.Unregister(this);
 }
예제 #15
0
 static DatabaseManager()
 {
     ObserverManager.RegisterObserver("DbAccess", Observe, ClearObserver);
 }
예제 #16
0
 private void Awake()
 {
     _instance = this;
 }
 /// <summary>
 /// Initializes the collection with the specified name and if auto-sorting is enabled.
 /// </summary>
 /// <param name="collectionName">The name of the collection (must match the property name!)</param>
 /// <param name="autoSort">If true the list is sorted after every change</param>
 /// <param name="firstKeepPosition">If true the first item in the list is not affected by sorting</param>
 public VeryObservableCollection(string collectionName, bool autoSort,
                                 ObserverManager changeManager = null) : this(collectionName, changeManager)
 {
     this.autoSort = autoSort;
 }
 public void Attatch(ObserverManager obvs)
 {
     Observers.Add(obvs);
 }
예제 #19
0
 public void Awake()
 {
     _instance = this;
 }