Пример #1
0
	void StackHub::Add(Stack* stack)
	{
		typedef list<Stack*>::iterator iter;
		_Lock->Enter();
		int id = stack->GetStackId();
		for (iter i = _Stacks.begin(); i != _Stacks.end(); i++)
		{
			Stack* tmp = *i;
			if (tmp->GetStackId() == id)
			{
				_Lock->Leave();
				return;
			}
		}
		_Stacks.push_back(stack);
		_Lock->Leave();
	}
Пример #2
0
	Stack* StackHub::Find(int id)
	{
		typedef list<Stack*>::iterator iter;
		_Lock->Enter();
		Stack* stack = null;
		for (iter i = _Stacks.begin(); i != _Stacks.end(); i++)
		{
			Stack* tmp = *i;
			if (tmp->GetStackId() == id)
			{
				stack = tmp;
				break;
			}
		}
		_Lock->Leave();
		return stack;
	}