Example #1
0
//--------------------------------------------------------------------------
void Server::Disconnect(VeUInt32 u32ClientID)
{
	ClientAgent** it = m_kAgentMap.Find(u32ClientID);
	if(it)
	{
		(*it)->DetachAllEntities();
		(*it)->OnDisconnect();
		m_kAgentMap.Remove(u32ClientID);
		VE_SAFE_DELETE(*it);
	}
}
Example #2
0
//--------------------------------------------------------------------------
void VeThread::TermPerThread() noexcept
{
#	ifdef VE_USE_THREAD_LOCAL
	VE_SAFE_DELETE(s_pkSingleton);
#	else
	VE_DELETE((VeThreadLocalSingleton*)pthread_getspecific(s_keySingleton));
#	ifdef VE_MEM_DEBUG
	delete (vtd::vector<VeDeleteCallParams>*)pthread_getspecific(g_keyDeleteStack);
#	endif
#	endif
}
Example #3
0
void UILayerManager::ClearLayers()
{
	PopAllLayers();
	SetMainLayer(NULL, false);
	m_kLayerMap.Clear();
	for(VeVector<UILayer*>::iterator it = m_kLayerSet.Begin(); it != m_kLayerSet.End(); ++it)
	{
		VE_SAFE_DELETE(*it);
	}
	m_kLayerSet.Clear();
}
Example #4
0
//--------------------------------------------------------------------------
void ServerAgent::EntityDestory(BitStream& kStream)
{
	VEString kName;
	kStream >> kName;
	VeStringMap<EntityC*>::iterator it = m_kEntityMap.Find(kName);
	if(it)
	{
		(*it)->OnUnload();
		m_kEntityMap.Remove(kName);
		VE_SAFE_DELETE(*it);
	}
}
Example #5
0
//--------------------------------------------------------------------------
void VeTermOpenGL()
{
#	ifdef VE_GLX
	_glXQueryExtension = NULL;
	_glXChooseVisual = NULL;
	_glXCreateContext = NULL;
	_glXMakeCurrent = NULL;
	_glXSwapBuffers = NULL;
#	endif
	VE_ASSERT(g_pkOpenGL);
	g_pkOpenGL->Unload();
	VE_SAFE_DELETE(g_pkOpenGL);
}
Example #6
0
//--------------------------------------------------------------------------
void ServerManager::Clear()
{
	m_kServerMap.Clear();
	m_kServerList.BeginIterator();
	while(!m_kServerList.IsEnd())
	{
		Server* pkServer = m_kServerList.GetIterNode()->m_tContent;
		m_kServerList.Next();
		VE_ASSERT(pkServer);
		VE_SAFE_DELETE(pkServer);
	}
	m_kServerList.Clear();
}
Example #7
0
//--------------------------------------------------------------------------
void ServerAgent::Reset()
{
	m_kServerID = UNASSIGNED_SYSTEM_ADDRESS;
	m_bServerConnected = false;
	m_kEntityMap.Clear();
	m_kEntityList.BeginIterator();
	while(!m_kEntityList.IsEnd())
	{
		EntityC* pkEntity = m_kEntityList.GetIterNode()->m_tContent;
		m_kEntityList.Next();
		VE_SAFE_DELETE(pkEntity);
	}
	VE_ASSERT(m_kEntityList.Empty());
}
Example #8
0
//--------------------------------------------------------------------------
LoadEntResult Server::LoadEntity(const VeChar8* pcName,
	const VeChar8* pcSearchIndex, EntityS** ppkOut)
{
	VeUInt32 u32Type = _EntNameToType(pcName);
	if(u32Type == VE_INFINITE)
	{
		if(ppkOut) *ppkOut = NULL;
		return LOAD_ENT_TYPE_NOT_EXIST;
	}
	else
	{
		if(u32Type >= m_kEntityCacheArray.Size())
		{
			m_kEntityCacheArray.Resize(u32Type + 1);
		}
		EntityCache& kCache = m_kEntityCacheArray[u32Type];
		VeStringMap<EntityS*>::iterator it = kCache.m_kIndexMap.Find(pcSearchIndex);
		if(it)
		{
			if(ppkOut) *ppkOut = *it;
			return LOAD_ENT_EXIST;
		}
		else
		{
			EntityS* pkEnt = NewEntity(pcName, pcSearchIndex);
			if(pkEnt)
			{
				if(pkEnt->OnLoad())
				{
					pkEnt->m_pkCache = &kCache;
					kCache.m_kIndexMap[pcSearchIndex] = pkEnt;
					kCache.m_kWildEntities.AttachBack(pkEnt->m_kServerNode);
					if(ppkOut) *ppkOut = pkEnt;
					return LOAD_ENT_S_OK;
				}
				else
				{
					VE_SAFE_DELETE(pkEnt);
					if(ppkOut) *ppkOut = NULL;
					return LOAD_ENT_E_FAIL;
				}
			}
			else
			{
				if(ppkOut) *ppkOut = NULL;
				return LOAD_ENT_E_FAIL;
			}
		}
	}
}
Example #9
0
//--------------------------------------------------------------------------
void VeMaterialManager::DestoryRenderNode(const VeChar8* pcName)
{
	VeStringMap<VeUInt32>::iterator it = m_kRenderNodeMap.Find(pcName);
	if(it)
	{
		VE_SAFE_DELETE(m_kRenderNodeSet[*it]);
		if((*it) < (m_kRenderNodeSet.Size() - 1))
		{
			VeRenderNode* pkNode = m_kRenderNodeSet.Back();
			m_kRenderNodeMap[pkNode->m_kName] = *it;
			m_kRenderNodeSet[*it] = pkNode;
		}
		m_kRenderNodeMap.Remove(pcName);
		m_kRenderNodeSet.PopBack();
	}
}
Example #10
0
void UILayerManager::DelLayer(const VeChar8* pcName)
{
	if(pcName)
	{
		VeUInt32* it = m_kLayerMap.Find(pcName);
		if(it)
		{
			VeUInt32 u32Index = *it;
			if(u32Index < (m_kLayerSet.Size() - 1))
			{
				UILayer* pkLayer = m_kLayerSet[u32Index];
				UILayer* pkMove = m_kLayerSet.Back();
				m_kLayerMap[pkMove->GetName()] = u32Index;
				m_kLayerSet[u32Index] = pkMove;
				m_kLayerSet.Back() = pkLayer;
			}
			m_kLayerMap.Remove(pcName);
			VE_SAFE_DELETE(m_kLayerSet.Back());
			m_kLayerSet.PopBack();
		}
	}
}
Example #11
0
void veThreadPool::stop()
{
	if (_stop) return;
	_stop = true;
	{
		std::unique_lock<std::mutex> lock(_queueMutex);

		while (_tasks.size())
			_tasks.pop();
		//while (_taskCallBacks.size())
		//	_taskCallBacks.pop();
	}
	_condition.notify_all();
	for (auto &thread : _threadPool) {
		thread->join();
	}

	for (auto &thread : _threadPool) {
		VE_SAFE_DELETE(thread);
	}
	_threadPool.clear();
}
Example #12
0
//--------------------------------------------------------------------------
void Client::Clear()
{
	VE_AUTO_LOCK_MUTEX(m_kMutex);
	m_kConnectionMap.Clear();
	m_kConnectOnList.BeginIterator();
	while(!m_kConnectOnList.IsEnd())
	{
		Connection* pkConnect = m_kConnectOnList.GetIterNode()->m_tContent;
		m_kConnectOnList.Next();
		VE_ASSERT(pkConnect);
		pkConnect->Disconnect();
	}
	VE_ASSERT(m_kConnectOnList.Empty());
	m_kConnectOffList.BeginIterator();
	while(!m_kConnectOffList.IsEnd())
	{
		Connection* pkConnect = m_kConnectOffList.GetIterNode()->m_tContent;
		m_kConnectOffList.Next();
		VE_ASSERT(pkConnect);
		VE_SAFE_DELETE(pkConnect);
	}
	VE_ASSERT(m_kConnectOffList.Empty());
}
veViewerDesktop::~veViewerDesktop()
{
#if VE_PLATFORM == VE_PLATFORM_WIN32
    VE_SAFE_DELETE(_glContext);
#endif
}
Example #14
0
//--------------------------------------------------------------------------
Connection::~Connection()
{
	VE_SAFE_DELETE(m_pkServer);
}
veApplicationAndroid::~veApplicationAndroid() {
    stop();
    for (auto &viewer : _viewerList) {
        VE_SAFE_DELETE(viewer);
    }
}