コード例 #1
0
void QmitkNDIConfigurationWidget::UpdateWidgets()
{
  m_Controls->m_DeviceStatus->setText(this->GetStatusText());
  if (m_Tracker.IsNull())  // not connected to tracker
  {
    m_Controls->m_Connect->setText("Connect");
    m_Controls->m_lConnection->setText("III. Enable connection to  device  ");

    disconnect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnDisconnect()));
    connect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnConnect()));
    m_Controls->m_DiscoverToolsBtn->setDisabled(true);
    m_Controls->m_AddToolBtn->setDisabled(true);
    return;
  }

  if (m_Tracker->GetState() == mitk::TrackingDevice::Setup)
  {
    m_Controls->m_Connect->setText("Connect");
    m_Controls->m_lConnection->setText("III. Enable connection to  device  ");
    disconnect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnDisconnect()));
    connect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnConnect()));
    m_Controls->m_DiscoverToolsBtn->setDisabled(true);
    m_Controls->m_AddToolBtn->setDisabled(true);
    return;
  }
  if ((m_Tracker->GetState() == mitk::TrackingDevice::Ready) || (m_Tracker->GetState() == mitk::TrackingDevice::Tracking))
  {
    m_Controls->m_Connect->setText("Disconnect");
    m_Controls->m_lConnection->setText("III. Disable connection to  device ");
    disconnect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnConnect()));
    connect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnDisconnect()));
    m_Controls->m_DiscoverToolsBtn->setEnabled(true);
    m_Controls->m_AddToolBtn->setEnabled(true);    
  }  
}
コード例 #2
0
ファイル: clientInfo.cpp プロジェクト: RuneHeick/APK15
void ClientInfo::threadRun()
{
	while(client.IsOpen())
	{
		try
		{
			auto packet = client.read();
			if(packet->size()>0)
			{
				EventVariant var = serilizer.deserilize(packet);
				recivedPacket(*this, var);
			}
			else
			{
				OnDisconnect();
				break;
			}
		}
		catch(...)
		{
			OnDisconnect();
			break;
		}
	}
	Cli::writeDebugMsg("ClientInfo Thread is stopped");
}
コード例 #3
0
ファイル: newnetclient.cpp プロジェクト: GhostAlgorithm/hw
HWNewNet::HWNewNet() :
    isChief(false),
    m_game_connected(false),
    netClientState(Disconnected)
{
    m_private_game = false;
    m_nick_registered = false;

    m_roomsListModel = new RoomsListModel(this);

    m_playersModel = new PlayersListModel(this);

    m_lobbyPlayersModel = new QSortFilterProxyModel(this);
    m_lobbyPlayersModel->setSourceModel(m_playersModel);
    m_lobbyPlayersModel->setSortRole(PlayersListModel::SortRole);
    m_lobbyPlayersModel->setDynamicSortFilter(true);
    m_lobbyPlayersModel->sort(0);

    m_roomPlayersModel = new QSortFilterProxyModel(this);
    m_roomPlayersModel->setSourceModel(m_playersModel);
    m_roomPlayersModel->setSortRole(PlayersListModel::SortRole);
    m_roomPlayersModel->setDynamicSortFilter(true);
    m_roomPlayersModel->sort(0);
    m_roomPlayersModel->setFilterRole(PlayersListModel::RoomFilterRole);
    m_roomPlayersModel->setFilterFixedString("true");

    // socket stuff
    connect(&NetSocket, SIGNAL(readyRead()), this, SLOT(ClientRead()));
    connect(&NetSocket, SIGNAL(connected()), this, SLOT(OnConnect()));
    connect(&NetSocket, SIGNAL(disconnected()), this, SLOT(OnDisconnect()));
    connect(&NetSocket, SIGNAL(error(QAbstractSocket::SocketError)), this,
            SLOT(displayError(QAbstractSocket::SocketError)));

    connect(this, SIGNAL(messageProcessed()), this, SLOT(ClientRead()), Qt::QueuedConnection);
}
コード例 #4
0
void
UnixSocketConsumer::NotifyDisconnect()
{
  MOZ_ASSERT(NS_IsMainThread());
  mConnectionStatus = SOCKET_DISCONNECTED;
  OnDisconnect();
}
コード例 #5
0
void RemoteDesktop::Network_Client::_HandleDisconnect(std::shared_ptr<SocketHandler>& s){
	if (_Running && OnDisconnect) {
		if (!DesktopMonitor::Is_InputDesktopSelected()) _DesktopMonitor->Switch_to_Desktop(DesktopMonitor::Desktops::INPUT);
		OnDisconnect(s);
	}
	_ShouldDisconnect = true;
}
コード例 #6
0
ファイル: ACWinSock.cpp プロジェクト: dgadens/ActionEngine
/**
 * Application must call this if a WM_ is coming from network.
 */
HRESULT ACWinSock::MsgProc(WPARAM wp, LPARAM lp) 
{
	WORD  wEvent, wError;
   
	// get data
	wError = HIWORD(lp);
	wEvent = LOWORD(lp);
   
	// which event
	switch (wEvent) 
	{
		// confirmacao depois de uma conexao bem sucedida
		case FD_CONNECT: break;
         
		// cliente quer aceitacao
		case FD_ACCEPT:  { return OnAccept(); } break;
         
		// recebemos algo
		case FD_READ:    { return OnReceive(wp); } break;
         
		// um cliente ficou offline
		case FD_CLOSE:   { return OnDisconnect(wp); } break;
         
		// nos mandamos algo?
		case FD_WRITE:   break;
	}

	return AC_OK;
};
コード例 #7
0
ファイル: ASyncTCP.cpp プロジェクト: 4ib3r/domoticz
void ASyncTCP::write_end(const boost::system::error_code& error)
{
	if (!mIsClosing)
	{
		if (error)
		{
			// let listeners know
			OnError(error);

			mIsConnected = false;

			if (!mDoReconnect)
			{
				OnDisconnect();
				return;
			}
			if (!mIsReconnecting)
			{
				mIsReconnecting = true;
				_log.Log(LOG_STATUS, "TCP: Reconnecting in %d seconds...", RECONNECT_TIME);
				// schedule a timer to reconnect after 30 seconds
				mReconnectTimer.expires_from_now(boost::posix_time::seconds(RECONNECT_TIME));
				mReconnectTimer.async_wait(boost::bind(&ASyncTCP::do_reconnect, this, boost::asio::placeholders::error));
			}
		}
	}
}
コード例 #8
0
ファイル: ServerSession.cpp プロジェクト: BornHunter/CGSF
void Session::handle_receive( const boost::system::error_code& error, size_t bytes_transferred )
{
    if( error )
    {
        if( error == boost::asio::error::eof )
        {
            std::cout << "클라이언트와 연결이 끊어졌습니다" << std::endl;
        }
        else
        {
            std::cout << "error No: " << error.value() << " error Message: " << error.message() << std::endl;
        }

        _SessionDesc desc;
        desc.sessionType = 0;
        desc.identifier = 1;

        m_pServer->CloseSession( m_nSessionID );
        OnDisconnect(m_nSessionID, desc);
    }
    else
    {
        _SessionDesc desc;
        desc.sessionType = 0;
        desc.identifier = 1;

        if (false == OnReceive(m_ReceiveBuffer.data(), bytes_transferred, desc))
        {
            //강제로 끊게 하는 메소드는?
        }

        PostReceive();
    }
}
コード例 #9
0
// NOTE: Since the old WSAAsync functionality has been exchanged in the favor of WSAEvent, I'm not sure if MsgProc will fire correctly
HRESULT ZFXWS::MsgProc( WPARAM wp, LPARAM lp )
{
   WORD  wEvent, wError;

   wError = HIWORD(lp);
   wEvent = LOWORD(lp);

   //evaluate what event occurred
   switch ( wEvent )
   {
      //new client accepted
      case FD_CONNECT:
         break;
      
      //new client is knocking
      case FD_ACCEPT:
         return OnAccept();
         break;

      //there is data to be received
      case FD_READ:
         return OnReceive(wp);
         break;

      //a socket is closing
      case FD_CLOSE:
         return OnDisconnect(wp);
         break;

      //after sending data
      case FD_WRITE:
         break;
   }
   return ZFX_OK;
}
コード例 #10
0
ファイル: MarketDataProvider.cpp プロジェクト: AlexS2172/IVRM
//-----------------------------------------------------------------------------------------------------//
STDMETHODIMP CMarketDataProvider::_OnError(ErrorNumberEnum enErrorNumber, BSTR bsDescription,
										   RequestsTypeEnum enReqType, VARIANT varRequest)
{

	CString sDesc = (LPCTSTR)_bstr_t(bsDescription);
	
	if(enErrorNumber == enNotConnected || enErrorNumber == enConnectionWasDisconnected)
	{
		OnDisconnect(enErrorNumber, bsDescription);
		return S_OK;
	}

	switch(enReqType)
	{
		case enRequestLastQuote:
		{
				OnError(enErrorNumber, bsDescription);
				break;
		}
		case enSubscribeQuote:
		{
				OnError(enErrorNumber, bsDescription);
				break;
		}
		default:
		{
				OnError(enErrorNumber, bsDescription);
		}
	}
	return S_OK;
}
コード例 #11
0
void CNetworkConnection::initializeSocket()
{
	m_pSocket->disconnect();

	connect(m_pSocket, SIGNAL(connected()),
			this, SIGNAL(connected()));
	connect(m_pSocket, SIGNAL(connected()),
			this, SIGNAL(readyToTransfer()));
	connect(m_pSocket, SIGNAL(readyRead()),
			this, SIGNAL(readyToTransfer()));
	connect(m_pSocket, SIGNAL(disconnected()),
			this, SIGNAL(disconnected()));
	connect(m_pSocket, SIGNAL(error(QAbstractSocket::SocketError)),
			this, SIGNAL(error(QAbstractSocket::SocketError)));
	connect(m_pSocket, SIGNAL(bytesWritten(qint64)),
			this, SIGNAL(bytesWritten(qint64)));
	connect(m_pSocket, SIGNAL(stateChanged(QAbstractSocket::SocketState)),
			this, SIGNAL(stateChanged(QAbstractSocket::SocketState)));
	connect(m_pSocket, SIGNAL(aboutToClose()),
			this, SLOT(OnAboutToClose()));

	connect(this, SIGNAL(connected()), this, SLOT(OnConnect()), Qt::QueuedConnection);
	connect(this, SIGNAL(disconnected()), this, SLOT(OnDisconnect()), Qt::QueuedConnection);
	connect(this, SIGNAL(readyRead()), this, SLOT(OnRead()), Qt::QueuedConnection);
	connect(this, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(OnError(QAbstractSocket::SocketError)), Qt::QueuedConnection);
	connect(this, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(OnStateChange(QAbstractSocket::SocketState)), Qt::QueuedConnection);
}
コード例 #12
0
void CPacketInputPin::Disconnect()
{
  if (mpPeer) {
    OnDisconnect();
    mpPeer = NULL;
  }
}
コード例 #13
0
ファイル: g2node.cpp プロジェクト: geekt/quazaa
void CG2Node::SetupSlots()
{
	connect(this, SIGNAL(connected()), this, SLOT(OnConnect()), Qt::QueuedConnection);
	connect(this, SIGNAL(disconnected()), this, SLOT(OnDisconnect()), Qt::QueuedConnection);
	connect(this, SIGNAL(readyRead()), this, SLOT(OnRead()), Qt::QueuedConnection);
	connect(this, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(OnError(QAbstractSocket::SocketError)), Qt::QueuedConnection);
	connect(this, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(OnStateChange(QAbstractSocket::SocketState)), Qt::QueuedConnection);
}
コード例 #14
0
ファイル: T42Secretary.cpp プロジェクト: Anonymousvn/T42
BOOL CT42Secretary::OnMinute()
{
	if(
		m_limitTime.GetTotalSeconds() &&
		(CTime::GetCurrentTime()-m_logEntry.m_Time)>=m_limitTime
	)
		OnDisconnect();
	return TRUE;
}
コード例 #15
0
ファイル: NDKServer.cpp プロジェクト: saladyears/Sea3D
// Sends a message to a specified user. If a problem occurs, OnDisconnect
// callback will be called.
BOOL CNDKServer::SendMessageToUser(long lUserId, CNDKMessage &msg)
{
	BOOL bResult = m_userMgr.SendMessage(lUserId, msg);

	if (!bResult)
		OnDisconnect(lUserId, NDKServer_ErrorSendingMessage);
	
	return bResult;
}
コード例 #16
0
bool CNetwork_Asio::Disconnect() {
  OnDisconnect();
  //  networkService_->Get_IO_Service()->post([this]() {
  std::error_code ignored;
  socket_.shutdown(asio::socket_base::shutdown_both, ignored);
  OnDisconnected();
  //  });
  return true;
}
コード例 #17
0
ファイル: SocketBase.cpp プロジェクト: L2-D2/gecko-dev
void
SocketConsumerBase::NotifyDisconnect()
{
  MOZ_ASSERT(NS_IsMainThread());

  mConnectionStatus = SOCKET_DISCONNECTED;
  mConnectDelayMs = CalculateConnectDelayMs();
  mConnectTimestamp = 0;
  OnDisconnect();
}
コード例 #18
0
void RemoteDesktop::Network_Server::_Run(){

	std::vector<WSAEVENT> EventArray;
	auto sharedrockarray = std::make_shared<std::vector<std::shared_ptr<SocketHandler>>>();
	_Sockets = sharedrockarray;
	EventArray.reserve(WSA_MAXIMUM_WAIT_EVENTS);
	sharedrockarray->reserve(WSA_MAXIMUM_WAIT_EVENTS);

	SOCKET listensocket = RemoteDesktop::Listen(_Port, _Host);
	if (listensocket == INVALID_SOCKET) return;

	auto newevent = WSACreateEvent();
	WSAEventSelect(listensocket, newevent, FD_ACCEPT | FD_CLOSE);

	EventArray.push_back(newevent);
	sharedrockarray->push_back(std::make_shared<SocketHandler>(listensocket, false));

	NetworkProcessor processor(DELEGATE(&RemoteDesktop::Network_Server::_HandleReceive), DELEGATE(&RemoteDesktop::Network_Server::_HandleConnect));
	WSANETWORKEVENTS NetworkEvents;
	auto timer = std::chrono::high_resolution_clock::now();
	while (_Running && !EventArray.empty()) {

		auto Index = WSAWaitForMultipleEvents(EventArray.size(), EventArray.data(), FALSE, 1000, FALSE);

		if ((Index != WSA_WAIT_FAILED) && (Index != WSA_WAIT_TIMEOUT) && _Running) {

			WSAEnumNetworkEvents(sharedrockarray->at(Index)->get_Socket(), EventArray[Index], &NetworkEvents);
			if (((NetworkEvents.lNetworkEvents & FD_ACCEPT) == FD_ACCEPT) && NetworkEvents.iErrorCode[FD_ACCEPT_BIT] == ERROR_SUCCESS){
				if (EventArray.size() >= WSA_MAXIMUM_WAIT_EVENTS - 1) continue;// ignore this event too many connections
				_HandleNewConnect(listensocket, EventArray, *sharedrockarray);
			}
			else if (((NetworkEvents.lNetworkEvents & FD_READ) == FD_READ) && NetworkEvents.iErrorCode[FD_READ_BIT] == ERROR_SUCCESS){
				processor.Receive(sharedrockarray->at(Index));
			}
			else if (((NetworkEvents.lNetworkEvents & FD_CLOSE) == FD_CLOSE) && NetworkEvents.iErrorCode[FD_CLOSE_BIT] == ERROR_SUCCESS){
				if (Index == 0) {//stop all processing, set running to false and next loop will fail and cleanup
					_Running = false;
					continue;
				}
			}
		}
		//once every second send a keep alive. this will trigger disconnects 
		if (std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now() - timer).count() > 1000){
			_CheckForDisconnects(EventArray, *sharedrockarray);
			timer = std::chrono::high_resolution_clock::now();
		}
	}
	for (size_t beg = 1; beg < sharedrockarray->size(); beg++){
		OnDisconnect(sharedrockarray->at(beg));//let all callers know about the disconnect, skip slot 0 which is the listen socket
	}
	//cleanup code here
	for (auto x : EventArray) WSACloseEvent(x);
	DEBUG_MSG("_Listen Exiting");
}
コード例 #19
0
ファイル: NDKServer.cpp プロジェクト: saladyears/Sea3D
// Sends a message to all users. OnDisconnect callback will be called for 
// each user that the message cannot be sent.
BOOL CNDKServer::SendMessageToAllUsers(CNDKMessage& message)
{
	CLongList listIds;

	BOOL bResult = m_userMgr.SendMessageToAllUsers(message, listIds);

	while (!listIds.IsEmpty())
		OnDisconnect(listIds.RemoveHead(), NDKServer_ErrorSendingMessage);

	return bResult;
}
コード例 #20
0
void CPacketOutputPin::Disconnect()
{
  if (mpPeer == NULL) {
    return;
  }

  OnDisconnect();

  mpPeer->Disconnect();
  mpPeer = NULL;
}
コード例 #21
0
ファイル: msgconnection.cpp プロジェクト: pipelka/roboTV
void MsgConnection::SetConnectionLost() {
	if(m_connectionlost || m_aborting) {
		return;
	}

	m_connectionlost = true;
	Abort();
	Close();

	OnDisconnect();
}
コード例 #22
0
// -------------------------------------------------------------------------------------------------------------------------------------------------------
void IOCP::ServerDel(int aIndex)
{
	m_Server[aIndex].m_Index   = -1;
	m_Server[aIndex].m_Socket  = INVALID_SOCKET;
	m_Server[aIndex].m_State   = SRVS_OFFLINE;
	// -----
	memset(m_Server[aIndex].m_ServerIp, 0, sizeof(m_Server[aIndex].m_ServerIp));
	// -----
	m_AddedCount--;
	// -----
	OnDisconnect(aIndex);
}
コード例 #23
0
ファイル: GCNetLogic.cpp プロジェクト: angel0sl/FServer
void GCNetLogic::OnUnRegisterApp(const NetMessage* nmsg)
{
	MsgUnRegisterApp msg;
	if (!MsgFromBytes(nmsg, msg))
		return;
	auto app = theAppMgr->GetObject(msg.app_id());
	if (!app)
		return;
	OnDisconnect(app->GetIndex());
	theAppMgr->RemoveObject(app->GetAppID());

	LOG(INFO) << "UnRegisterApp" << LogValue("apptype", msg.app_type()) << LogValue("appid", msg.app_id());
}
コード例 #24
0
void NetworkConnection::HandleDisconnect(const boost::system::error_code & error)
{
	if (error == boost::asio::error::connection_reset)
	{
		StartDisconnect();
		OnDisconnect();

	}
	else
	{
		StartError(error);
	}
}
コード例 #25
0
void cXVDRSession::SignalConnectionLost()
{
  if(m_connectionLost)
    return;

  XVDRLog(XVDR_ERROR, "%s - connection lost !!!", __FUNCTION__);

  m_connectionLost = true;
  Abort();
  Close();

  OnDisconnect();
}
コード例 #26
0
ファイル: TcpSocket.cpp プロジェクト: AwkwardDev/Summit
void TcpSocket::Disconnect()
{
	if(!m_connected) return;
	m_connected = false;

	OnDisconnect();
	sSocketEngine.RemoveSocket(this);
	shutdown(m_fd, SD_BOTH);
	closesocket(m_fd);

	if(!m_deleted)
		Delete();
}
コード例 #27
0
/**
 * Interface: IObjectWithSite::SetSite
 */
STDMETHODIMP CBrowserHelperObject::SetSite(IUnknown *unknown)
{
  HRESULT hr = S_OK;
  for (;;) {
    hr = unknown ? OnConnect(unknown) : OnDisconnect(unknown);
    BreakOnFailedWithErrorLog(hr, L"BrowserHelperObject::SetSite failed -> " + logger->parse(hr));

    hr = IObjectWithSiteImpl<CBrowserHelperObject>::SetSite(unknown);
    break;
  }
  
  return hr;
}
コード例 #28
0
ファイル: Socket.cpp プロジェクト: vata/wowice
void Socket::Disconnect()
{
	sLog.outBasic("Socket::Disconnect on socket %u", m_fd);

	m_connected = false;

	// remove from mgr
	sSocketMgr.RemoveSocket(this);

	// Call virtual ondisconnect
	OnDisconnect();

	if(!m_deleted) Delete();
}
コード例 #29
0
ファイル: Socket.cpp プロジェクト: arcticdev/arctic-test
void Socket::Disconnect()
{
	m_connected = false;

	// remove from mgr
	sSocketMgr.RemoveSocket(this);

	SocketOps::CloseSocket(m_fd);

	// Call virtual ondisconnect
	OnDisconnect();

	if(!m_deleted) Delete();
}
コード例 #30
0
ファイル: connection.cpp プロジェクト: gordonlee/HeroesServer
	bool IOCPConnection::Close()
	{
		if( IsConnected() ) 
			OnDisconnect( -999 );

		m_bConnected = false;

		//FIN날리기
		if( m_bAsyncCloseSignal ) ::shutdown( m_socket.GetSocketHandle(), SD_BOTH );

		m_socket.Destroy();

		return true;
	}