mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
162 lines
3.7 KiB
C++
162 lines
3.7 KiB
C++
/* Copyright (C) 2003 MySQL AB
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|
|
|
#ifndef NDBT_DATA_SET_TRANSACTION_HPP
|
|
#define NDBT_DATA_SET_TRANSACTION_HPP
|
|
|
|
#include "NDBT_Table.hpp"
|
|
#include <NdbApi.hpp>
|
|
|
|
class NDBT_DataSet;
|
|
|
|
/**
|
|
* This class contains a bunch a methods
|
|
* that operates on NDB together with a NDBT_DataSet
|
|
* using <b>one</b> transaction
|
|
*/
|
|
class NDBT_DataSetTransaction {
|
|
public:
|
|
/**
|
|
* Store the data into ndb
|
|
*/
|
|
static void insert(Ndb * theNdbObject,
|
|
const NDBT_DataSet *,
|
|
bool rollback = false);
|
|
|
|
/**
|
|
* Read data (using pk) from ndb
|
|
*/
|
|
static void readByPk(Ndb * theNdbObject,
|
|
NDBT_DataSet *,
|
|
bool rollback = false);
|
|
|
|
/**
|
|
* Update data using pk
|
|
*
|
|
*/
|
|
static void updateByPk(Ndb * theNdbObject,
|
|
const NDBT_DataSet *,
|
|
bool rollback = false);
|
|
|
|
/**
|
|
* Delete
|
|
*/
|
|
static void deleteByPk(Ndb * theNdbObject,
|
|
const NDBT_DataSet *,
|
|
bool rollback = false);
|
|
};
|
|
|
|
class NDBT_DataSetAsyncTransaction {
|
|
public:
|
|
enum OperationType {
|
|
OT_Insert,
|
|
OT_ReadByPk,
|
|
OT_UpdateByPk,
|
|
OT_DeleteByPk
|
|
};
|
|
|
|
/**
|
|
* A callback for the NDBT_DataSetAsyncTransaction
|
|
* interface.
|
|
*
|
|
* The callback method returns:
|
|
* - the operation performed
|
|
* - the data set
|
|
* - if the transaction was commited or aborted
|
|
*/
|
|
typedef (* NDBT_DataSetAsyncTransactionCallback)(OperationType,
|
|
const NDBT_DataSet *,
|
|
bool commit,
|
|
void * anyObject);
|
|
/**
|
|
* Store the data into ndb
|
|
*/
|
|
static void insert(Ndb * theNdbObject,
|
|
const NDBT_DataSet *,
|
|
bool rollback = false,
|
|
NDBT_DataSetAsyncTransactionCallback fun,
|
|
void * anyObject);
|
|
|
|
/**
|
|
* Read data (using pk) from ndb
|
|
*/
|
|
static void readByPk(Ndb * theNdbObject,
|
|
NDBT_DataSet *,
|
|
bool rollback = false,
|
|
NDBT_DataSetAsyncTransactionCallback fun,
|
|
void * anyObject);
|
|
|
|
|
|
/**
|
|
* Update data using pk
|
|
*
|
|
*/
|
|
static void updateByPk(Ndb * theNdbObject,
|
|
const NDBT_DataSet *,
|
|
bool rollback = false,
|
|
NDBT_DataSetAsyncTransactionCallback fun,
|
|
void * anyObject);
|
|
|
|
|
|
/**
|
|
* Delete
|
|
*/
|
|
static void deleteByPk(Ndb * theNdbObject,
|
|
const NDBT_DataSet *,
|
|
bool rollback = false,
|
|
NDBT_DataSetAsyncTransactionCallback fun,
|
|
void * anyObject);
|
|
|
|
};
|
|
|
|
class NDBT_DataSetBulkOperation {
|
|
public:
|
|
/**
|
|
* Store the data into ndb
|
|
*/
|
|
static void insert(Ndb * theNdbObject,
|
|
const NDBT_DataSet *,
|
|
int parallellTransactions = 1,
|
|
int operationsPerTransaction = 10);
|
|
|
|
/**
|
|
* Read data (using pk) from ndb
|
|
*/
|
|
static void readByPk(Ndb * theNdbObject,
|
|
NDBT_DataSet *,
|
|
int parallellTransactions = 1,
|
|
int operationsPerTransaction = 10);
|
|
|
|
/**
|
|
* Update data using pk
|
|
*
|
|
*/
|
|
static void updateByPk(Ndb * theNdbObject,
|
|
const NDBT_DataSet *,
|
|
int parallellTransactions = 1,
|
|
int operationsPerTransaction = 10);
|
|
|
|
/**
|
|
* Delete
|
|
*/
|
|
static void deleteByPk(Ndb * theNdbObject,
|
|
const NDBT_DataSet *,
|
|
int parallellTransactions = 1,
|
|
int operationsPerTransaction = 10);
|
|
};
|
|
|
|
|
|
#endif
|