summaryrefslogtreecommitdiff
path: root/storage/ndb/src/old_files/newtonapi/dba_internal.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/ndb/src/old_files/newtonapi/dba_internal.hpp')
-rw-r--r--storage/ndb/src/old_files/newtonapi/dba_internal.hpp122
1 files changed, 122 insertions, 0 deletions
diff --git a/storage/ndb/src/old_files/newtonapi/dba_internal.hpp b/storage/ndb/src/old_files/newtonapi/dba_internal.hpp
new file mode 100644
index 00000000000..84ae7ba222b
--- /dev/null
+++ b/storage/ndb/src/old_files/newtonapi/dba_internal.hpp
@@ -0,0 +1,122 @@
+/* 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 DBA_INTERNAL_HPP
+#define DBA_INTERNAL_HPP
+
+#include <ndb_global.h>
+
+extern "C" {
+#include "dba.h"
+}
+
+#include <NdbApi.hpp>
+#include <NdbMutex.h>
+#include <NdbOut.hpp>
+
+#ifndef INT_MAX
+#define INT_MAX 2147483647
+#endif
+
+#ifdef DEBUG
+#define DBA_DEBUG(x) ndbout << x << endl
+#else
+#define DBA_DEBUG(x)
+#endif
+
+extern Ndb * DBA__TheNdb;
+extern NdbMutex * DBA__TheNewtonMutex;
+
+extern unsigned DBA__SentTransactions;
+extern unsigned DBA__RecvTransactions;
+
+/**
+ * Configuration
+ */
+extern int DBA__NBP_Intervall; // Param 0
+extern int DBA__BulkReadCount; // Param 1
+extern int DBA__StartTransactionTimout; // Param 2
+extern int DBA__NBP_Force; // Param 3
+
+/**
+ * Error handling
+ */
+void DBA__SetLatestError(DBA_Error_t, DBA_ErrorCode_t, const char *, ...);
+
+/**
+ * Magic string
+ *
+ * Used to make sure that user passes correct pointers
+ */
+const int DBA__MagicLength = 4;
+const char DBA__TheMagic[DBA__MagicLength] = { 'K', 'E', 'S', 'O' };
+
+struct DBA_Binding {
+ char magic[DBA__MagicLength];
+ int checkSum;
+
+ char * tableName;
+ int structSz;
+
+ int noOfKeys;
+ int *keyIds;
+ int *keyOffsets;
+
+ int noOfColumns;
+ int *columnIds;
+ int *columnOffsets;
+
+ int noOfSubBindings;
+ struct DBA_Binding **subBindings;
+ int * subBindingOffsets;
+
+ int data[1];
+};
+
+struct DBA__DataTypesMapping {
+ DBA_DataTypes_t newtonType;
+ NdbDictionary::Column::Type ndbType;
+};
+
+const DBA__DataTypesMapping DBA__DataTypesMappings[] = {
+ { DBA_CHAR, NdbDictionary::Column::Char },
+ { DBA_INT, NdbDictionary::Column::Int }
+};
+
+const int DBA__NoOfMappings = sizeof(DBA__DataTypesMappings)/
+ sizeof(DBA__DataTypesMapping);
+
+/**
+ * Validate magic string and checksum of a binding
+ */
+bool DBA__ValidBinding(const DBA_Binding_t * bindings);
+bool DBA__ValidBindings(const DBA_Binding_t * const * pBindings, int n);
+
+/**
+ * Recursive equalGetValue (used for read)
+ * equalSetValue (used for write)
+ * equal (used for delete)
+ */
+bool DBA__EqualGetValue(NdbOperation *, const DBA_Binding_t *, void *);
+bool DBA__EqualSetValue(NdbOperation *, const DBA_Binding_t *, const void *);
+bool DBA__Equal (NdbOperation *, const DBA_Binding_t *, const void *);
+
+inline void require(bool test){
+ if(!test)
+ abort();
+}
+
+#endif