示例#1
0
        public void Stop()
        {
            lock (_nodeLock)
            {
                if (_listener != null)
                {
                    _listener.Kill();
                }

                _listener = null;

                if (_heartbeat != null)
                {
                    _heartbeat.Kill();
                }
                _heartbeat = null;

                if (_heartbeatObservers != null)
                {
                    foreach (HeartbeatObserver heartbeatListener in _heartbeatObservers.Values)
                    {
                        heartbeatListener.Kill();
                    }
                    _heartbeatObservers.Clear();
                }
                _heartbeatObservers = null;

                isRunning = false;
                Utility.WriteDebug("Stopped");
            }
        }
 /// <summary>
 /// Adds to listeners one instance of each type implementing CodeElementListener interface
 /// and defined in namespace TypeCobol.Compiler.Diagnostics.
 /// TODO: the list of namespace where CodeElementListeners are searched for should not be hard-coded
 /// </summary>
 internal void CreateListeners()
 {
     //Do nothig if listners already exist
     if (_listeners != null)
     {
         return;
     }
     _listeners = new List <NodeListener <TCtx> >();
     //Return if no StaticNodeListenerFactory exist
     if (StaticNodeListenerFactory == null)
     {
         return;
     }
     lock (typeof(NodeDispatcher <TCtx>))
     {
         foreach (NodeListenerFactory <TCtx> factory in StaticNodeListenerFactory)
         {
             //Allocate listeners from static factories.
             NodeListener <TCtx> listener = factory();
             if (listener != null)
             {
                 _listeners.Add(listener);
             }
         }
     }
 }
示例#3
0
        private Dictionary <string, CameraMode> _cameraModes; // The list of camera mode instances

        public CameraControlSystem(SceneManager sceneManager, string name, Camera camera = null, bool reCalcOnTargetMoving = true)
        {
            _sceneMgr             = sceneManager;
            _name                 = name;
            _targetNode           = null;
            _targetNodeListener   = null;
            _recalcOnTargetMoving = reCalcOnTargetMoving;
            _currentCameraMode    = null;

            _cameraNode = _sceneMgr.RootSceneNode.CreateChildSceneNode(_name + "SceneNode");

            if (camera == null)
            {
                _camera      = _sceneMgr.CreateCamera(_name);
                _isOwnCamera = true;
            }
            else
            {
                _camera      = camera;
                _isOwnCamera = false;
            }

            //Reset to default parameters
            _camera.Position    = Vector3.ZERO;
            _camera.Orientation = Quaternion.IDENTITY;

            // ... and attach the Ogre camera to the camera node
            _cameraNode.AttachObject(_camera);

            _cameraModes = new Dictionary <string, CameraMode>();
        }
示例#4
0
        public void Start()
        {
            lock (_nodeLock)
            {
                RecoverStableStorage();
                _listener = new NodeListener(this.Deliver, this._location);
                _listener.start();

                _heartbeat = new Heartbeat(this.Broadcast);
                _heartbeat.start();
                _heartbeatObservers = new Dictionary <int, HeartbeatObserver>();

                foreach (NodeLocation node in this._nodes)
                {
                    if (node == _location)
                    {
                        continue;
                    }
                    HeartbeatObserver nodeHeartbeatObserver = new HeartbeatObserver(this.ElectNewLeader, node);
                    nodeHeartbeatObserver.start();
                    _heartbeatObservers[node.getNum()] = nodeHeartbeatObserver;
                }
                isRunning = true;
                Utility.WriteDebug("Started");
            }
        }
示例#5
0
        private float _timeSinceLastFrameLastUpdate; // Time value passed to the last call of the method "Update"

        #endregion Fields

        #region Constructors

        public CameraControlSystem(SceneManager sceneManager, string name, Camera camera = null, bool reCalcOnTargetMoving = true)
        {
            _sceneMgr = sceneManager;
            _name = name;
            _targetNode = null;
            _targetNodeListener = null;
            _recalcOnTargetMoving = reCalcOnTargetMoving;
            _currentCameraMode = null;

            _cameraNode = _sceneMgr.RootSceneNode.CreateChildSceneNode(_name + "SceneNode");

            if (camera == null) {
                _camera = _sceneMgr.CreateCamera(_name);
                _isOwnCamera = true;
            } else {
                _camera = camera;
                _isOwnCamera = false;
            }

            //Reset to default parameters
            _camera.Position = Vector3.ZERO;
            _camera.Orientation = Quaternion.IDENTITY;

            // ... and attach the Ogre camera to the camera node
            _cameraNode.AttachObject(_camera);

            _cameraModes = new Dictionary<string, CameraMode>();
        }
 /// <summary>
 /// Adds to listeners one instance of each type implementing CodeElementListener interface
 /// and defined in namespace TypeCobol.Compiler.Diagnostics.
 /// TODO: the list of namespace where CodeElementListeners are searched for should not be hard-coded
 /// </summary>
 internal void CreateListeners()
 {
     if (_listeners == null)
     {
         _listeners = new List <NodeListener <TCtx> >();
         var namespaces = new[] { "TypeCobol.Compiler.Diagnostics", };
         var assembly   = Assembly.GetExecutingAssembly();
         foreach (var names in namespaces)
         {
             var instances = Reflection.GetInstances <NodeListener <TCtx> >(assembly, names);
             foreach (var checker in instances)
             {
                 _listeners.Add(checker);
             }
         }
         //Allocate listeners from static factories.
         if (StaticNodeListenerFactory != null)
         {
             lock (typeof(NodeDispatcher <TCtx>))
             {
                 foreach (NodeListenerFactory <TCtx> factory in StaticNodeListenerFactory)
                 {
                     NodeListener <TCtx> listener = factory();
                     if (listener != null)
                     {
                         _listeners.Add(listener);
                     }
                 }
             }
         }
     }
 }
示例#7
0
        public MainWindowViewModel()
        {
            WinMan    = new WindowManager();
            connector = new NodeConnector(AllNodes, new MockBlockChain(), new ClientSettings());
            listener  = new NodeListener(AllNodes, new MockBlockChain(), new ClientSettings());

            listener.StartListen(new IPEndPoint(IPAddress.Any, testPortToUse));
        }
示例#8
0
        public MainWindowViewModel()
        {
            AllNodes  = new ObservableCollection <Node>();
            tempNodex = new List <Node>();
            var clientSettings = new ClientSettings();

            WinMan    = new WindowManager();
            connector = new NodeConnector(tempNodex, new MockBlockChain(), clientSettings);
            listener  = new NodeListener(new List <Node>(), new MockBlockChain(), clientSettings);

            listener.StartListen(new IPEndPoint(IPAddress.Any, testPortToUse));
        }
示例#9
0
        /// <summary>
        /// Initializes a new instance of <see cref="FullClient"/> using the given parameters.
        /// </summary>
        /// <param name="settings">Client settings</param>
        public FullClient(IClientSettings settings)
        {
            Settings  = settings;
            connector = new NodeConnector(settings.AllNodes, settings);
            if (settings.AcceptIncomingConnections)
            {
                listener = new NodeListener(settings.AllNodes, settings);
            }

            connector.ConnectFailureEvent += Connector_ConnectFailureEvent;

            Settings.Blockchain.HeaderSyncEndEvent += Blockchain_HeaderSyncEndEvent;
            Settings.Blockchain.BlockSyncEndEvent  += Blockchain_BlockSyncEndEvent;
            settings.AllNodes.AddRemoveEvent       += AllNodes_AddRemoveEvent;
        }
示例#10
0
        public CameraControlSystem(SceneManager sceneManager, string name, SceneNode customCameraSceneNode, bool reCalcOnTargetMoving = true)
        {
            _sceneMgr             = sceneManager;
            _name                 = name;
            _targetNode           = null;
            _targetNodeListener   = null;
            _recalcOnTargetMoving = reCalcOnTargetMoving;
            _currentCameraMode    = null;

            _cameraNode  = _sceneMgr.RootSceneNode.CreateChildSceneNode(_name + "SceneNode");
            _isOwnCamera = false;
            _cameraNode.AddChild(customCameraSceneNode);

            _cameraModes = new Dictionary <string, CameraMode>();
        }
示例#11
0
        public CameraControlSystem(SceneManager sceneManager, string name, SceneNode customCameraSceneNode, bool reCalcOnTargetMoving = true)
        {
            _sceneMgr = sceneManager;
            _name = name;
            _targetNode = null;
            _targetNodeListener = null;
            _recalcOnTargetMoving = reCalcOnTargetMoving;
            _currentCameraMode = null;

            _cameraNode = _sceneMgr.RootSceneNode.CreateChildSceneNode(_name + "SceneNode");
            _isOwnCamera = false;
            _cameraNode.AddChild(customCameraSceneNode);

            _cameraModes = new Dictionary<string, CameraMode>();
        }
示例#12
0
 /**
  * Adds a listener to the list of node listeners. It is informed whenever a
  * node is expanded during search.
  */
 public void addNodeListener(NodeListener listener)
 {
     nodeListeners.Add(listener);
 }
示例#13
0
 /**
  * Adds a listener to the list of node listeners. It is informed whenever a
  * node is expanded during search.
  */
 public void addNodeListener(NodeListener listener)
 {
     nodeListeners.Add(listener);
 }