コード例 #1
0
void PaymentOperationStateHandler::saveRecord(
    const TransactionUUID &transactionUUID,
    BytesShared state,
    size_t stateBytesCount)
{
    string query = "INSERT OR REPLACE INTO " + mTableName +
        " (transaction_uuid, state, state_bytes_count, recording_time) VALUES(?, ?, ?, ?);";
    sqlite3_stmt *stmt;
    int rc = sqlite3_prepare_v2(mDataBase, query.c_str(), -1, &stmt, 0);
    if (rc != SQLITE_OK) {
        throw IOError("PaymentOperationStateHandler::insert: "
                          "Bad query; sqlite error: " + to_string(rc));
    }
    rc = sqlite3_bind_blob(stmt, 1, transactionUUID.data, NodeUUID::kBytesSize, SQLITE_STATIC);
    if (rc != SQLITE_OK) {
        throw IOError("PaymentOperationStateHandler::insert: "
                          "Bad binding of TransactionUUID; sqlite error: " + to_string(rc));
    }
    rc = sqlite3_bind_blob(stmt, 2, state.get(), (int)stateBytesCount, SQLITE_STATIC);
    if (rc != SQLITE_OK) {
        throw IOError("PaymentOperationStateHandler::insert: "
                          "Bad binding of State; sqlite error: " + to_string(rc));
    }
    rc = sqlite3_bind_int(stmt, 3, (int)stateBytesCount);
    if (rc != SQLITE_OK) {
        throw IOError("PaymentOperationStateHandler::insert: "
                          "Bad binding of State bytes count; sqlite error: " + to_string(rc));
    }
    GEOEpochTimestamp timestamp = microsecondsSinceGEOEpoch(utc_now());
    rc = sqlite3_bind_int64(stmt, 4, timestamp);
    if (rc != SQLITE_OK) {
        throw IOError("PaymentOperationStateHandler::insert: "
                          "Bad binding of Timestamp; sqlite error: " + to_string(rc));
    }
    rc = sqlite3_step(stmt);
    sqlite3_reset(stmt);
    sqlite3_finalize(stmt);
    if (rc == SQLITE_DONE) {
#ifdef STORAGE_HANDLER_DEBUG_LOG
        info() << "prepare inserting is completed successfully";
#endif
    } else {
        warning() << "PaymentOperationStateHandler::insert: Run query; sqlite error: " << rc;
        throw IOError("PaymentOperationStateHandler::insert: "
                          "Run query; sqlite error: " + to_string(rc));
    }
}
コード例 #2
0
ファイル: sessions.hpp プロジェクト: Dzshiftt/Gnomescroll
 void logout()
 {
     this->logout_time = utc_now();
 }
コード例 #3
0
ファイル: sessions.hpp プロジェクト: Dzshiftt/Gnomescroll
 void login()
 {
     GS_ASSERT(this->client_id >= 0);
     this->login_time = utc_now();
     printf("Session began at %ld\n", this->login_time);
 }