这篇教程C++ tSystemError函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中tSystemError函数的典型用法代码示例。如果您正苦于以下问题:C++ tSystemError函数的具体用法?C++ tSystemError怎么用?C++ tSystemError使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了tSystemError函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: tSystemErrorbool TSqlTransaction::begin(QSqlDatabase &database){ if (!database.isValid()) { tSystemError("Can not begin transaction. Invalid database: %s", qPrintable(database.connectionName())); return false; } if (!enabled) return true; bool ok; int id = database.connectionName().left(2).toInt(&ok); if (!ok || id < 0 || id >= databases.count()) { tSystemError("Internal Error [%s:%d]", __FILE__, __LINE__); return false; } if (databases[id].isValid()) { tSystemWarn("Has begun transaction already. database:%s", qPrintable(database.connectionName())); return true; } if (database.transaction()) { tQueryLog("[BEGIN] [databaseId:%d]", id); } databases[id] = database; return true;}
开发者ID:deniskin82,项目名称:treefrog-framework,代码行数:30,
示例2: cribool TSessionSqlObjectStore::store(TSession &session){ TSqlORMapper<TSessionObject> mapper; TCriteria cri(TSessionObject::Id, TSql::Equal, session.id()); TSessionObject so = mapper.findFirst(cri);#ifndef TF_NO_DEBUG { QByteArray badummy; QDataStream dsdmy(&badummy, QIODevice::ReadWrite); dsdmy << *static_cast<const QVariantMap *>(&session); TSession dummy; dsdmy.device()->seek(0); dsdmy >> *static_cast<QVariantMap *>(&dummy); if (dsdmy.status() != QDataStream::Ok) { tSystemError("Failed to store a session into the cookie store. Must set objects that can be serialized."); } }#endif QDataStream ds(&so.data, QIODevice::WriteOnly); ds << *static_cast<const QVariantMap *>(&session); if (ds.status() != QDataStream::Ok) { tSystemError("Failed to store session. Must set objects that can be serialized."); return false; } if (so.isNull()) { so.id = session.id(); return so.create(); } return so.update();}
开发者ID:skipbit,项目名称:treefrog-framework,代码行数:35,
示例3: T_TRACEFUNCbool TApplicationServer::open(){ T_TRACEFUNC(); if (!isListening()) { quint16 port = Tf::app()->treefrogSettings().value("ListenPort").toUInt(); if (!nativeListen(QHostAddress::Any, port)) { tSystemError("listen failed. port:%d", port); return false; } else { tSystemDebug("listen successfully. port:%d", port); } } // Loads libraries if (!libLoaded) { // Sets work directory QString libPath = Tf::app()->libPath(); if (QDir(libPath).exists()) { // To resolve the symbols in the app libraries QDir::setCurrent(libPath); } else { tSystemError("lib directory not found"); return false; } QStringList filter;#if defined(Q_OS_WIN) filter << "controller.dll" << "view.dll";#elif defined(Q_OS_DARWIN) filter << "libcontroller.dylib" << "libview.dylib";#elif defined(Q_OS_UNIX) filter << "libcontroller.so" << "libview.so";#else filter << "libcontroller.*" << "libview.*";#endif QDir controllerDir("."); QStringList list = controllerDir.entryList(filter, QDir::Files); for (QStringListIterator i(list); i.hasNext(); ) { QString path = controllerDir.absoluteFilePath(i.next()); QLibrary lib(path); if (lib.load()) { tSystemDebug("Library loaded: %s", qPrintable(path)); libLoaded = true; } else { tSystemDebug("%s", qPrintable(lib.errorString())); } } } TUrlRoute::initialize(); TSqlDatabasePool::initialize(); return true;}
开发者ID:pivaldi,项目名称:TreeFrog,代码行数:56,
示例4: memset/*! Listen for connections on UNIX domain. */int TApplicationServerBase::nativeListen(const QString &fileDomain, OpenFlag flag){ int sd = -1; struct sockaddr_un addr; memset(&addr, 0, sizeof(addr)); addr.sun_family = PF_UNIX; if (sizeof(addr.sun_path) < (uint)fileDomain.toLatin1().size() + 1) { tSystemError("too long name for UNIX domain socket [%s:%d]", __FILE__, __LINE__); return sd; } strncpy(addr.sun_path, fileDomain.toLatin1().data(), sizeof(addr.sun_path)); // create unix domain socket sd = ::socket(PF_UNIX, SOCK_STREAM, 0); if (sd < 0) { tSystemError("Socket create failed [%s:%d]", __FILE__, __LINE__); return sd; } if (flag == CloseOnExec) { ::fcntl(sd, F_SETFD, FD_CLOEXEC); // set close-on-exec flag } ::fcntl(sd, F_SETFL, ::fcntl(sd, F_GETFL) | O_NONBLOCK); // non-block QFile file(fileDomain); if (file.exists()) { file.remove(); tSystemWarn("File for UNIX domain socket removed: %s", qPrintable(fileDomain)); } // Bind if (::bind(sd, (sockaddr *)&addr, sizeof(sockaddr_un)) < 0) { tSystemError("Bind failed [%s:%d]", __FILE__, __LINE__); goto socket_error; } file.setPermissions((QFile::Permissions)0x777); // Listen if (::listen(sd, 50) < 0) { tSystemError("Listen failed [%s:%d]", __FILE__, __LINE__); goto socket_error; } return sd;socket_error: nativeClose(sd); return -1;}
开发者ID:AbhimanyuAryan,项目名称:treefrog-framework,代码行数:53,
示例5: dsbool TSessionRedisStore::store(TSession &session){ QByteArray data; QDataStream ds(&data, QIODevice::WriteOnly); ds << *static_cast<const QVariantMap *>(&session); data = qCompress(data, 1).toBase64();#ifndef TF_NO_DEBUG { QByteArray badummy; QDataStream dsdmy(&badummy, QIODevice::ReadWrite); dsdmy << *static_cast<const QVariantMap *>(&session); TSession dummy; dsdmy.device()->seek(0); dsdmy >> *static_cast<QVariantMap *>(&dummy); if (dsdmy.status() != QDataStream::Ok) { tSystemError("Failed to store a session into the cookie store. Must set objects that can be serialized."); } }#endif TRedis redis; tSystemDebug("TSessionRedisStore::store id:%s", session.id().data()); return redis.setEx('_' + session.id(), data, lifeTimeSecs());}
开发者ID:foundations,项目名称:treefrog-framework,代码行数:26,
示例6: mongoc_client_get_collectionbool TMongoDriver::updateMulti(const QString &collection, const QVariantMap &criteria, const QVariantMap &object){ if (!isOpen()) { return false; } errorCode = 0; errorString.clear(); bson_error_t error; mongoc_collection_t *col = mongoc_client_get_collection(mongoClient, qPrintable(dbName), qPrintable(collection)); bool res = mongoc_collection_update(col, MONGOC_UPDATE_MULTI_UPDATE, (bson_t *)TBson::toBson(criteria).data(), (bson_t *)TBson::toBson(object).data(), nullptr, &error); setLastCommandStatus(mongoc_collection_get_last_error(col)); mongoc_collection_destroy(col); if (!res) { tSystemError("MongoDB UpdateMulti Error: %s", error.message); errorCode = error.code; errorString = QLatin1String(error.message); } return res;}
开发者ID:foundations,项目名称:treefrog-framework,代码行数:25,
示例7: lockerbool TSendmailMailer::send(){ QMutexLocker locker(&sendMutex); // Global lock for load reduction of mail server if (sendmailCmd.isEmpty()) { return false; } QStringList args; QByteArray rawmail = mailMessage.toByteArray(); const QList<QByteArray> recipients = mailMessage.recipients(); for (auto &recipt : recipients) { args.clear(); args << recipt; QProcess sendmail; sendmail.start(sendmailCmd, args); if (!sendmail.waitForStarted(5000)) { tSystemError("Sendmail error. CMD: %s", qPrintable(sendmailCmd)); return false; } sendmail.write(rawmail); sendmail.write("/n./n"); sendmail.waitForFinished(); tSystemDebug("Mail sent. Recipients: %s", recipt.data()); } return true;}
开发者ID:foundations,项目名称:treefrog-framework,代码行数:30,
示例8: metaObjectbool TSqlObject::create(){ // Sets the default value of 'revision' property int index = metaObject()->indexOfProperty(REVISION_PROPERTY_NAME); if (index >= 0) { setProperty(REVISION_PROPERTY_NAME, 1); // 1 : default value } // Sets the values of 'created_at' and 'updated_at' properties for (int i = metaObject()->propertyOffset(); i < metaObject()->propertyCount(); ++i) { const char *propName = metaObject()->property(i).name(); if (QLatin1String("created_at") == propName || QLatin1String("updated_at") == propName) { setProperty(propName, QDateTime::currentDateTime()); } } syncToSqlRecord(); QString ins = TActionContext::currentDatabase().driver()->sqlStatement(QSqlDriver::InsertStatement, tableName(), *static_cast<QSqlRecord *>(this), false); if (ins.isEmpty()) { sqlError = QSqlError(QLatin1String("No fields to insert"), QString(), QSqlError::StatementError); tWarn("SQL statement error, no fields to insert"); return false; } tSystemDebug("SQL statement: %s", qPrintable(ins)); QSqlQuery query(TActionContext::currentDatabase()); bool res = query.exec(ins); sqlError = query.lastError(); if (!res) { tSystemError("SQL insert error: %s", qPrintable(sqlError.text())); } return res;}
开发者ID:pivaldi,项目名称:TreeFrog,代码行数:35,
示例9: syncToSqlRecordbool TSqlObject::remove(){ syncToSqlRecord(); QString del = TActionContext::currentDatabase().driver()->sqlStatement(QSqlDriver::DeleteStatement, tableName(), *static_cast<QSqlRecord *>(this), false); if (del.isEmpty()) { sqlError = QSqlError(QLatin1String("Unable to delete row"), QString(), QSqlError::StatementError); return false; } del.append(" WHERE "); int revIndex = metaObject()->indexOfProperty(REVISION_PROPERTY_NAME); if (revIndex >= 0) { bool ok; int revsion = property(REVISION_PROPERTY_NAME).toInt(&ok); if (!ok || revsion <= 0) { sqlError = QSqlError(QLatin1String("Unable to convert the 'revision' property to an int"), QString(), QSqlError::UnknownError); tError("Unable to convert the 'revsion' property to an int, %s", qPrintable(objectName())); return false; } del.append(TSqlQuery::escapeIdentifier(REVISION_PROPERTY_NAME)); del.append("=").append(TSqlQuery::formatValue(revsion)); del.append(" AND "); } const char *pkName = metaObject()->property(metaObject()->propertyOffset() + primaryKeyIndex()).name(); if (primaryKeyIndex() < 0 || !pkName) { QString msg = QString("Not found the primary key for table ") + tableName(); sqlError = QSqlError(msg, QString(), QSqlError::StatementError); tError("%s", qPrintable(msg)); return false; } del.append(TSqlQuery::escapeIdentifier(pkName)); del.append("=").append(TSqlQuery::formatValue(property(pkName))); tSystemDebug("SQL statement: %s", qPrintable(del)); QSqlQuery query(TActionContext::currentDatabase()); bool res = query.exec(del); sqlError = query.lastError(); if (!res) { tSystemError("SQL delete error: %s", qPrintable(sqlError.text())); return false; } // Optimistic lock check if (query.numRowsAffected() != 1) { if (revIndex >= 0) { QString msg = QString("Row was updated or deleted from table ") + tableName() + QLatin1String(" by another transaction"); sqlError = QSqlError(msg, QString(), QSqlError::UnknownError); throw SqlException(msg, __FILE__, __LINE__); } tWarn("Row was deleted by another transaction, %s", qPrintable(tableName())); } clear(); return true;}
开发者ID:pivaldi,项目名称:TreeFrog,代码行数:60,
示例10: tSystemWarnTSession TSessionCookieStore::find(const QByteArray &id, const QDateTime &){ TSession session; if (id.isEmpty()) return session; QList<QByteArray> balst = id.split('_'); if (balst.count() == 2 && !balst.value(0).isEmpty() && !balst.value(1).isEmpty()) { QByteArray ba = QByteArray::fromHex(balst.value(0)); QByteArray digest = QCryptographicHash::hash(ba + Tf::app()->appSettings().value("Session.Secret").toByteArray(), QCryptographicHash::Sha1); if (digest != QByteArray::fromHex(balst.value(1))) { tSystemWarn("Recieved a tampered cookie or that of other web application."); //throw SecurityException("Tampered with cookie", __FILE__, __LINE__); return session; } QDataStream ds(&ba, QIODevice::ReadOnly); ds >> *static_cast<QVariantHash *>(&session); if (ds.status() != QDataStream::Ok) { tSystemError("Unable to load a session from the cookie store."); session.clear(); } }
开发者ID:Keloran,项目名称:treefrog-framework,代码行数:26,
示例11: lockervoid TFileAioLogger::log(const QByteArray &msg){ QMutexLocker locker(&d->mutex); Q_ASSERT(isOpen()); // check whether last writing is finished if (d->syncBuffer.count() > 0) { struct aiocb *lastcb = d->syncBuffer.last(); if (aio_error(lastcb) != EINPROGRESS) { d->clearSyncBuffer(); } } struct aiocb *cb = new struct aiocb; memset(cb, 0, sizeof(struct aiocb)); cb->aio_fildes = d->fileDescriptor; cb->aio_nbytes = msg.length(); cb->aio_buf = new char[msg.length()]; memcpy((void *)cb->aio_buf, msg.data(), msg.length()); if (tf_aio_write(cb) < 0) { tSystemError("log write failed"); delete[] (char *)cb->aio_buf; delete cb; close(); return; } d->syncBuffer << cb;}
开发者ID:foundations,项目名称:treefrog-framework,代码行数:32,
示例12: locker/*! Loads a query from the given file /a filename.*/bool TSqlQuery::load(const QString &filename){ QMutexLocker locker(&cacheMutex); QString query = queryCache.value(filename); if (!query.isEmpty()) { return QSqlQuery::prepare(query); } QDir dir(queryDirPath()); QFile file(dir.filePath(filename)); tSystemDebug("SQL_QUERY_ROOT: %s", qPrintable(dir.dirName())); tSystemDebug("filename: %s", qPrintable(file.fileName())); if (!file.open(QIODevice::ReadOnly)) { tSystemError("Unable to open file: %s", qPrintable(file.fileName())); return false; } query = QObject::tr(file.readAll().constData()); bool res = QSqlQuery::prepare(query); if (res) { // Caches the query-string queryCache.insert(filename, query); } return res;}
开发者ID:skipbit,项目名称:treefrog-framework,代码行数:29,
示例13: tSystemErrorbool TSmtpMailer::connectToHost(const QString &hostName, quint16 port){ socket->connectToHost(hostName, port); if (!socket->waitForConnected(5000)) { tSystemError("SMTP server connect error: %s", qPrintable(socket->errorString())); return false; } return (read() == 220);}
开发者ID:skipbit,项目名称:treefrog-framework,代码行数:9,
示例14: epollFdTEpoll::TEpoll() : epollFd(0), events(new struct epoll_event[MaxEvents]), polling(false), numEvents(0), eventIterator(0), pollingSockets(){ epollFd = epoll_create(1); if (epollFd < 0) { tSystemError("Failed epoll_create()"); }}
开发者ID:skipbit,项目名称:treefrog-framework,代码行数:9,
示例15: tSystemErrorvoid ServerManager::errorDetect(QProcess::ProcessError error){ QProcess *server = qobject_cast<QProcess *>(sender()); if (server) { tSystemError("tfserver error detected(%d). [%s]", error, TFSERVER_CMD); //server->close(); // long blocking.. server->kill(); }}
开发者ID:foundations,项目名称:treefrog-framework,代码行数:9,
示例16: mongo_clear_errorsbool TMongoDriver::open(const QString &db, const QString &user, const QString &password, const QString &host, quint16 port, const QString &){ if (host.isEmpty()) { return false; } if (!port) port = MONGO_DEFAULT_PORT; mongo_clear_errors(mongoConnection); mongo_set_op_timeout(mongoConnection, 1000); int status = mongo_client(mongoConnection, qPrintable(host), port); if (status != MONGO_OK) { switch (mongoConnection->err) { case MONGO_CONN_NO_SOCKET: tSystemError("MongoDB socket error: %s", mongoConnection->lasterrstr); break; case MONGO_CONN_FAIL: tSystemError("MongoDB connection failed: %s", mongoConnection->lasterrstr); break; case MONGO_CONN_NOT_MASTER: tSystemDebug("MongoDB not master: %s", mongoConnection->lasterrstr); break; default: tSystemError("MongoDB error: %s", mongoConnection->lasterrstr); break; } return false; } if (!user.isEmpty()) { status = mongo_cmd_authenticate(mongoConnection, qPrintable(db), qPrintable(user), qPrintable(password)); if (status != MONGO_OK) { tSystemDebug("MongoDB authentication error: %s", mongoConnection->lasterrstr); return false; } } return (status == MONGO_OK);}
开发者ID:deepaksharma2491,项目名称:treefrog-framework,代码行数:44,
示例17: whilevoid TEpoll::dispatchSendData(){ TSendData *sd; while (sendRequests.dequeue(sd)) { TEpollSocket *sock = sd->socket; if (Q_UNLIKELY(sock->socketDescriptor() <= 0)) { tSystemDebug("already disconnected: sid:%d", sock->socketId()); continue; } switch (sd->method) { case TSendData::Disconnect: deletePoll(sock); sock->close(); sock->deleteLater(); break; case TSendData::SwitchToWebSocket: { tSystemDebug("Switch to WebSocket"); Q_ASSERT(sd->buffer == nullptr); QByteArray secKey = sd->header.rawHeader("Sec-WebSocket-Key"); tSystemDebug("secKey: %s", secKey.data()); int newsocket = TApplicationServerBase::duplicateSocket(sock->socketDescriptor()); // Switch to WebSocket TEpollWebSocket *ws = new TEpollWebSocket(newsocket, sock->peerAddress(), sd->header); ws->moveToThread(Tf::app()->thread()); addPoll(ws, (EPOLLIN | EPOLLOUT | EPOLLET)); // reset // Stop polling and delete deletePoll(sock); sock->deleteLater(); // WebSocket opening TSession session; QByteArray sessionId = sd->header.cookie(TSession::sessionName()); if (!sessionId.isEmpty()) { // Finds a session session = TSessionManager::instance().findSession(sessionId); } ws->startWorkerForOpening(session); break; } default: tSystemError("Logic error [%s:%d]", __FILE__, __LINE__); if (sd->buffer) { delete sd->buffer; } break; } delete sd; }}
开发者ID:skipbit,项目名称:treefrog-framework,代码行数:56,
|