void NetworkClient::GetGroups()
{
	rMessage->Reset();
	peer->RPC("ServerPeer::GetGroups", NULL , NULL, HIGH_PRIORITY, RELIABLE, 0, UNASSIGNED_SYSTEM_ADDRESS, true, 0, UNASSIGNED_NETWORK_ID,rMessage);
	if( (rMessage->GetNumberOfUnreadBits()) > 0)
	{
		int count, groupId, len = 0;		
		char* groupName = "";
		GroupMap g;
		g.clear();
		rMessage->Read(count);
		for(int j = 0;j<count;j++)
		{
			rMessage->Read(groupId);
			rMessage->Read(len);
			groupName = new char[len+1];
			groupName[len] = 0;
			rMessage->Read(groupName, len);
			g.insert(GroupMap::value_type(groupId, groupName));
		}
		if(!g.empty())
		{
			dataMan->setGroups(g);
		}		
	}
}
	void copy(ParserGroupData &rhs)
	{
		values = rhs.values;
		lines = rhs.lines;
		groups.clear();

		for(GroupMap::iterator it = rhs.groups.begin(); it != rhs.groups.end(); ++it)
		{
			boost::shared_ptr<ParserGroup> g(parserGroupFactory());
			*g.get() = *(*it).second.get();

			groups[(*it).first] = g;
		}
	}