void TCPConnection::AsyncWriteCompleted(const boost::system::error_code& error, size_t bytes_transferred) { UpdateAutoLogoutTimer(); if (error.value() != 0) { if (connection_state_ != StateConnected) { // The write failed, but we've already started the disconnection. So we should not log the failure // or enqueue a new disconnect. return; } String message; message.Format(_T("The write operation failed. Bytes transferred: %d"), bytes_transferred); ReportDebugMessage(message, error); EnqueueDisconnect(); } else { bool containsQueuedSendOperations = operation_queue_.ContainsQueuedSendOperation(); if (!containsQueuedSendOperations) { OnDataSent(); } } operation_queue_.Pop(IOOperation::BCTWrite); ProcessOperationQueue_(0); }
bool tOJDeviceOtherData::Send( QUrl url, const QString& sessionId, const QString& dataId, const QString& data ) { QNetworkRequest request = QNetworkRequest( url ); request.setHeader( QNetworkRequest::ContentTypeHeader, "application/json" ); QVariantMap deviceOtherData; deviceOtherData.insert( "api_key", m_ApiKey ); deviceOtherData.insert( "persistent_session_id", sessionId ); deviceOtherData.insert( "data_id", dataId ); deviceOtherData.insert( "data", data ); deviceOtherData.insert( "language", "en" ); tJson json; bool success = false; QByteArray jsonData = json.Serialize( deviceOtherData, success ); if( success == false ) { DbgPrintf( "%s(): QtJson::serialize() failed", __FUNCTION__ ); return false; } QNetworkReply* pReply = m_pManager->post( request, jsonData ); Connect( pReply, SIGNAL( finished() ), this, SLOT( OnDataSent() ) ); return true; }