Example #1
0
        public void RemoveNode(int id)
        {
            bool _success = false;

            lock (jsLock)
            {
                for (int i = 0; i < _nodes.Count; i++)
                {
                    if (_nodes[i].id == id)
                    {
                        if (_nodes[i].uWorker == 0)
                        {
                            _nodes.RemoveAt(i);
                        }
                        else
                        {
                            throw new JobNodeException("Node busy (" + _nodes[i].uWorker + " Jobs working).", null);
                        }
                        _success = true;
                        break;
                    }
                }
            }
            if (!_success)
            {
                throw new JobNodeException("Node does not exist!", null);
            }

            if (OnNodeCountChange != null)
            {
                OnNodeCountChange.Invoke(null, null);
            }
        }
Example #2
0
        public void AddNode(JobNode node)
        {
            lock (jsLock)
            {
                if (MAXNODES > _nodes.Count)
                {
                    _nodes.Add(node);
                }
                else
                {
                    throw new JobSystemException("Nodes limit reached!", null);
                }
            }

            if (OnNodeCountChange != null)
            {
                OnNodeCountChange.Invoke(null, null);
            }
        }
Example #3
0
        public int RemoveAllNodes()
        {
            int _removedNodes = 0;

            lock (jsLock)
            {
                for (int i = 0; i < _nodes.Count; i++)
                {
                    if (_nodes[i].uWorker == 0)
                    {
                        _nodes.RemoveAt(i);
                        _removedNodes++;
                    }
                }
            }

            if (OnNodeCountChange != null)
            {
                OnNodeCountChange.Invoke(null, null);
            }

            return(_removedNodes);
        }