qthighway/xqservice/src/xqservicethreaddata.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 8 71781823f776
equal deleted inserted replaced
1:2b40d63a9c3d 4:90517678cc4f
   178     XQSERVICE_DEBUG_PRINT("XQServiceThreadData::serializeRetData");
   178     XQSERVICE_DEBUG_PRINT("XQServiceThreadData::serializeRetData");
   179     XQSERVICE_DEBUG_PRINT("value type: %d, null?=%d, valid?=%d, error: %d", value.type(), value.isNull(), value.isValid(), error);
   179     XQSERVICE_DEBUG_PRINT("value type: %d, null?=%d, valid?=%d, error: %d", value.type(), value.isNull(), value.isValid(), error);
   180     QByteArray array;
   180     QByteArray array;
   181     // if (!value.isNull() && (value.type() != QVariant::Invalid)) {    maparnan
   181     // if (!value.isNull() && (value.type() != QVariant::Invalid)) {    maparnan
   182     if (value.isValid()) {    // 
   182     if (value.isValid()) {    // 
   183         XQServiceVariant retRequest(value);
   183         QDataStream stream(&array, QIODevice::WriteOnly | QIODevice::Append);
   184         QDataStream stream(&array, 
   184         
   185                            QIODevice::WriteOnly | QIODevice::Append);
       
   186         stream << CmdRetData;
   185         stream << CmdRetData;
   187         //TODO: check if i use type() crash for custom type
   186         stream << value;
   188         stream << retRequest.userType();
       
   189         retRequest.save(stream);
       
   190     }
   187     }
   191     else {
   188     else {
   192         if (error)
   189         if (error)
   193             {
   190             {
   194             //QVariant value = QVariant::fromValue(error);
       
   195             QVariant value(error);
   191             QVariant value(error);
   196             XQServiceVariant retRequest(value);
       
   197             QDataStream stream(&array, 
   192             QDataStream stream(&array, 
   198                         QIODevice::WriteOnly | QIODevice::Append);
   193                         QIODevice::WriteOnly | QIODevice::Append);
   199             stream << CmdErrData;
   194             stream << CmdErrData;
   200             stream << retRequest.userType();
   195             stream << value;
   201             retRequest.save(stream);
       
   202             }
   196             }
   203         }
   197         }
   204     return array;
   198     return array;
   205 }
   199 }
   206 
   200 
   210     XQSERVICE_DEBUG_PRINT("retData: %s", retData.constData());
   204     XQSERVICE_DEBUG_PRINT("retData: %s", retData.constData());
   211     if (retData.length()) 
   205     if (retData.length()) 
   212         {
   206         {
   213         QDataStream stream(retData);
   207         QDataStream stream(retData);
   214         int cmd ;
   208         int cmd ;
   215         int type ;
       
   216         stream >> cmd ;
   209         stream >> cmd ;
   217         stream >> type ;
       
   218         if (cmd == CmdRetData) 
   210         if (cmd == CmdRetData) 
   219             {
   211             {
   220             XQServiceVariant retServiceData;
   212             QVariant retServiceData(stream);
   221             retServiceData.load(stream,type);
       
   222             return retServiceData;
   213             return retServiceData;
   223         }
   214         }
   224         else
   215         else
   225             {
   216             {
   226             if (cmd == CmdErrData)
   217             if (cmd == CmdErrData)
   227                 {
   218                 {
   228                 XQServiceVariant retServiceData;
   219                 QVariant retServiceData(stream);
   229                 retServiceData.load(stream,type);
       
   230                 int error = retServiceData.toInt();
   220                 int error = retServiceData.toInt();
   231                 XQService::serviceThreadData()->setLatestError(error);
   221                 XQService::serviceThreadData()->setLatestError(error);
   232                 }
   222                 }
   233             }
   223             }
   234     }
   224     }