BOOL CWizKMDatabaseServer::data_download(const QString& strObjectGUID, const QString& strObjectType, int pos, int size, QByteArray& stream, int& nAllSize, BOOL& bEOF) { CWizKMDataDownloadParam param(m_kbInfo.strToken, m_kbInfo.strKbGUID, strObjectGUID, strObjectType, pos, size); // WIZKMDATAPART part; if (!Call(_T("data.download"), part, ¶m)) { TOLOG(_T("data.download failure!")); return FALSE; } // __int64 nStreamSize = part.stream.size(); if (part.nPartSize != nStreamSize) { TOLOG2(_T("part size does not match: stream_size=%1, part_size=%2"), WizInt64ToStr(nStreamSize), WizInt64ToStr(part.nPartSize)); return FALSE; } // QString strStreamMD5 = WizMd5StringNoSpaceJava(part.stream); if (0 != strStreamMD5.compare(part.strPartMD5, Qt::CaseInsensitive)) { TOLOG2(_T("part md5 does not match, stream_md5=%1, part_md5=%2"), strStreamMD5, part.strPartMD5); return FALSE; } // nAllSize = (int)part.nObjectSize; bEOF = part.bEOF; // stream.append(part.stream); return TRUE; }
BOOL CWizKMAccountsServer::GetMessages(__int64 nVersion, CWizUserMessageDataArray& arrayRet) { int nCountPerPage = 100; // __int64 nNextVersion = nVersion + 1; // while (1) { CWizUserMessageDataArray arrayPageData; // if (!accounts_getMessages(nCountPerPage, nNextVersion, arrayPageData)) { TOLOG2(_T("Failed to get message list: CountPerPage=%1, Version=%2"), WizIntToStr(nCountPerPage), WizInt64ToStr(nVersion)); return FALSE; } // arrayRet.insert(arrayRet.end(), arrayPageData.begin(), arrayPageData.end()); // for (CWizUserMessageDataArray::const_iterator it = arrayPageData.begin(); it != arrayPageData.end(); it++) { nNextVersion = std::max<__int64>(nNextVersion, it->nVersion); } // if (int(arrayPageData.size()) < nCountPerPage) break; // nNextVersion++; } // return TRUE; }
BOOL WizXmlRpcServerBase::getReturnValueInStringMap(const QString& strMethodName, std::map<QString, QString>& mapRet, const QString& strName, QString& strValue) { std::map<QString, QString>::const_iterator it = mapRet.find(strName); if (it == mapRet.end()) { TOLOG2("Can not find member of %1 in the return value of xml-rpc method %2", strName, strMethodName); return FALSE; } // strValue = it->second; // return TRUE; }
void CWizFolder::MoveTo(QObject* dest) { CWizFolder* pFolder = dynamic_cast<CWizFolder*>(dest); if (!pFolder) return; if (IsDeletedItems()) return; if (!CanMove(this, pFolder)) { TOLOG2("Can move %1 to %2", Location(), pFolder->Location()); return; } return MoveToLocation(pFolder->Location()); }
BOOL CWizKMDatabaseServer::data_upload(const QString& strObjectGUID, const QString& strObjectType, const QString& strObjectMD5, int allSize, int partCount, int partIndex, int partSize, const QByteArray& stream) { __int64 nStreamSize = stream.size(); if (partSize != (int)nStreamSize) { TOLOG2(_T("Fault error: stream_size=%1, part_size=%2"), WizIntToStr(int(nStreamSize)), WizIntToStr(partSize)); return FALSE; } // CWizKMDataUploadParam param(m_kbInfo.strToken, m_kbInfo.strKbGUID, strObjectGUID, strObjectType, strObjectMD5, allSize, partCount, partIndex, stream); // if (!Call(_T("data.upload"), ¶m)) { TOLOG(_T("Can not upload object part data!")); return FALSE; } // return TRUE; }
bool WizXmlRpcServerBase::xmlRpcCall(const QString& strMethodName, WizXmlRpcResult& result, WizXmlRpcValue* pParam1, WizXmlRpcValue* pParam2 /*= NULL*/, WizXmlRpcValue* pParam3 /*= NULL*/, WizXmlRpcValue* pParam4 /*= NULL*/) { WizXmlRpcRequest data(strMethodName); data.addParam(pParam1); if (pParam2) { data.addParam(pParam2); } if (pParam3) { data.addParam(pParam3); } if (pParam4) { data.addParam(pParam4); } // QUrl url(m_strUrl + "?methodName=" + strMethodName); QNetworkRequest request; request.setUrl(url); request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("text/xml")); request.setHeader(QNetworkRequest::UserAgentHeader, QVariant(QString("WizQT_") + WIZ_CLIENT_VERSION)); int nCounter = 0; while (true) { QNetworkReply* reply = m_network->post(request, data.toData()); WizXmlRpcEventLoop loop(reply); // qDebug() << "[Sync]Start a xml rpc event loop"; loop.exec(); // qDebug() << "[Sync]Xml rpc event loop finished"; // if (loop.error() && nCounter == 0) { nCounter ++; continue; } // if (loop.error()) { m_nLastErrorCode = loop.error(); m_strLastErrorMessage = loop.errorString(); return false; } // QString strXml = QString::fromUtf8(loop.result().constData()); // WizXMLDocument doc; if (!doc.loadXML(strXml)) { m_nLastErrorCode = -1; m_strLastErrorMessage = "Invalid xml"; return false; } WizXmlRpcValue* pRet = NULL; if (!WizXmlRpcResultFromXml(doc, &pRet)) { m_nLastErrorCode = -1; m_strLastErrorMessage = "Can not parse xmlrpc"; return false; } Q_ASSERT(pRet); if (WizXmlRpcFaultValue* pFault = dynamic_cast<WizXmlRpcFaultValue *>(pRet)) { m_nLastErrorCode = pFault->getFaultCode(); m_strLastErrorMessage = pFault->getFaultString(); TOLOG2("XmlRpcCall failed : %1, %2", QString::number(m_nLastErrorCode), m_strLastErrorMessage); return false; } // result.setResult(strMethodName, pRet); break; } // return true; }
bool CWizIndexBase::ModifyDocumentInfoEx(const WIZDOCUMENTDATA& dataCur) { qDebug() << "modify document, title: " << dataCur.strTitle; Q_ASSERT(dataCur.strKbGUID == m_strKbGUID); WIZDOCUMENTDATA dataOld; DocumentFromGUID(dataCur.strGUID, dataOld); WIZDOCUMENTDATA data = dataCur; // try to fill the fields not allowed empty if (data.strTitle.isEmpty()) { if (!dataOld.strTitle.isEmpty()) { data.strTitle = dataOld.strTitle; } else { data.strTitle = "New note"; } TOLOG2("Document Title is empty: %1, Try to rename to the %2", data.strGUID, data.strTitle); } if (data.strLocation.isEmpty()) { if (!dataOld.strLocation.isEmpty()) { data.strLocation = dataOld.strLocation; } else { data.strLocation = "/My Notes/"; } TOLOG2("Document Location is empty: %1, Try to relocation to the %2", data.strTitle, data.strLocation); } CString strFormat = FormatUpdateSQLFormat(TABLE_NAME_WIZ_DOCUMENT, FIELD_LIST_WIZ_DOCUMENT_MODIFY, TABLE_KEY_WIZ_DOCUMENT); CString strSQL; strSQL.Format(strFormat, STR2SQL(data.strTitle).utf16(), STR2SQL(data.strLocation).utf16(), STR2SQL(data.strName).utf16(), STR2SQL(data.strSEO).utf16(), STR2SQL(data.strURL).utf16(), STR2SQL(data.strAuthor).utf16(), STR2SQL(data.strKeywords).utf16(), STR2SQL(data.strType).utf16(), STR2SQL(data.strOwner).utf16(), STR2SQL(data.strFileType).utf16(), STR2SQL(data.strStyleGUID).utf16(), TIME2SQL(data.tCreated).utf16(), TIME2SQL(data.tModified).utf16(), TIME2SQL(data.tAccessed).utf16(), data.nIconIndex, data.nSync, data.nProtected, data.nReadCount, data.nAttachmentCount, data.nIndexed, TIME2SQL(data.tInfoModified).utf16(), STR2SQL(data.strInfoMD5 ).utf16(), TIME2SQL(data.tDataModified).utf16(), STR2SQL(data.strDataMD5 ).utf16(), TIME2SQL(data.tParamModified).utf16(), STR2SQL(data.strParamMD5 ).utf16(), WizInt64ToStr(data.nVersion).utf16(), STR2SQL(data.strGUID).utf16() ); if (!ExecSQL(strSQL)) return false; WIZDOCUMENTDATA dataNew; DocumentFromGUID(data.strGUID, dataNew); if (!m_bUpdating) { emit documentModified(dataOld, dataNew); } return true; }