void CodaClientApplication::handleCreateProcess(const Coda::CodaCommandResult &result) { const bool ok = result.type == Coda::CodaCommandResult::SuccessReply; if (ok) { printTimeStamp(); std::printf("Launch succeeded: %s\n", qPrintable(result.toString())); if (!m_launchDebug) doExit(0); } else { std::fprintf(stderr, "Launch failed: %s\n", qPrintable(result.toString())); doExit(-1); } }
void CodaClientApplication::handleFileSystemOpen(const Coda::CodaCommandResult &result) { if (result.type != Coda::CodaCommandResult::SuccessReply) { std::fprintf(stderr, "Open remote file failed: %s\n", qPrintable(result.toString())); doExit(-1); return; } if (result.values.size() < 1 || result.values.at(0).data().isEmpty()) { std::fprintf(stderr, "Internal error: No filehandle obtained\n"); doExit(-1); return; } m_remoteFileHandle = result.values.at(0).data(); if (m_mode == Stat) { m_trkDevice->sendFileSystemFstatCommand(Coda::CodaCallback(this, &CodaClientApplication::handleFileSystemFStat), m_remoteFileHandle); return; } // Put. m_putFile.reset(new QFile(m_putLocalFile)); if (!m_putFile->open(QIODevice::ReadOnly)) { // Should not fail, was checked before std::fprintf(stderr, "Open local file failed: %s\n", qPrintable(m_putFile->errorString())); doExit(-1); return; } putSendNextChunk(); }
void CodaClientApplication::handleUninstall(const Coda::CodaCommandResult &result) { if (result.type == Coda::CodaCommandResult::SuccessReply) { printTimeStamp(); std::printf("Uninstallation succeeded\n."); doExit(0); } else { std::fprintf(stderr, "Uninstallation failed: %s\n", qPrintable(result.toString())); doExit(-1); } }
void CodaSignalHandler::handleAppRunning(const Coda::CodaCommandResult &result) { if (result.type == Coda::CodaCommandResult::SuccessReply) { reportMessage(tr("Running...")); Coda::JsonValue value = result.values.at(0); readAppId(value); } else { reportError(tr("Launch failed: %1").arg(result.toString())); } }
void CodaClientApplication::handleFileSystemClose(const Coda::CodaCommandResult &result) { if (result.type == Coda::CodaCommandResult::SuccessReply) { printTimeStamp(); std::printf("File closed.\n"); const bool ok = m_mode == Put ? m_putWriteOk : m_statFstatOk; doExit(ok ? 0 : -1); } else { std::fprintf(stderr, "File close failed: %s\n", qPrintable(result.toString())); doExit(-1); } }
void CodaClientApplication::handleFileSystemWrite(const Coda::CodaCommandResult &result) { // Close remote file even if copy fails m_putWriteOk = result; if (!m_putWriteOk) std::fprintf(stderr, "Writing data failed: %s\n", qPrintable(result.toString())); if (!m_putWriteOk || m_putLastChunkSize < m_putChunkSize) { closeRemoteFile(); } else { putSendNextChunk(); } }
void CodaSignalHandler::handleFileSystemClose(const Coda::CodaCommandResult &result) { if (result.type == Coda::CodaCommandResult::SuccessReply) { reportMessage(tr("File closed.")); if (d->action & ActionCopy) { d->action = static_cast<CodaAction>(d->action & ~ActionCopy); } else if (d->action & ActionDownload) { d->action = static_cast<CodaAction>(d->action & ~ActionDownload); } handleActions(); } else { reportError(tr("Failed to close the remote file: %1").arg(result.toString())); } }
void CodaClientApplication::handleFileSystemFStat(const Coda::CodaCommandResult &result) { m_statFstatOk = result.type == Coda::CodaCommandResult::SuccessReply; // Close remote file even if copy fails if (m_statFstatOk) { const Coda::CodaStatResponse statr = Coda::CodaDevice::parseStat(result); printTimeStamp(); std::printf("File: %s\nSize: %llu bytes\nAccessed: %s\nModified: %s\n", qPrintable(m_statRemoteFile), statr.size, qPrintable(statr.accessTime.toString(Qt::LocalDate)), qPrintable(statr.modTime.toString(Qt::LocalDate))); } else { std::fprintf(stderr, "FStat failed: %s\n", qPrintable(result.toString())); } closeRemoteFile(); }