コード例 #1
0
   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);
   }
コード例 #2
0
ファイル: tOJDeviceOtherData.cpp プロジェクト: dulton/53_hero
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;
}