summaryrefslogtreecommitdiff
path: root/storage/ndb/src/old_files/rep/adapters/TableInfoPs.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/ndb/src/old_files/rep/adapters/TableInfoPs.hpp')
-rw-r--r--storage/ndb/src/old_files/rep/adapters/TableInfoPs.hpp118
1 files changed, 118 insertions, 0 deletions
diff --git a/storage/ndb/src/old_files/rep/adapters/TableInfoPs.hpp b/storage/ndb/src/old_files/rep/adapters/TableInfoPs.hpp
new file mode 100644
index 00000000000..3fa25979255
--- /dev/null
+++ b/storage/ndb/src/old_files/rep/adapters/TableInfoPs.hpp
@@ -0,0 +1,118 @@
+/* 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 TABLEINFO_PS_HPP
+#define TABLEINFO_PS_HPP
+
+#include <Vector.hpp>
+#include <ndb_types.h>
+#include <string.h>
+#include <NdbMem.h>
+
+struct TableInfo {
+ Uint32 tableId;
+ char* tableName;
+};
+
+/**
+ * @class TableInfoPS
+ * @brief Meta information about tables stored on PS
+ */
+class TableInfoPs {
+public:
+ inline void insert(const Uint32 tableId, const char * tableName);
+
+ inline bool del(const Uint32 tableId);
+
+ inline char * getTableName(const Uint32 tableId) const;
+
+private:
+ Vector<struct TableInfo*> tableInfo;
+
+ inline TableInfo * lookup(const Uint32 tableId) const;
+ inline TableInfo * lookup(const Uint32 tableId , Uint32 * pos) const;
+};
+
+inline
+TableInfo *
+TableInfoPs::lookup(const Uint32 tableId) const{
+ TableInfo * table;
+ Uint32 i=0;
+
+ while(i<tableInfo.size()) {
+ table=tableInfo[i];
+ if(table->tableId == tableId)
+ return table;
+ i++;
+ }
+ return 0;
+}
+
+inline
+TableInfo *
+TableInfoPs::lookup(const Uint32 tableId, Uint32 * pos ) const{
+ TableInfo * table;
+ Uint32 i=0;
+ while(i<tableInfo.size()) {
+ table=tableInfo[i];
+ if(table->tableId == tableId) {
+ *pos=i;
+ return table;
+ }
+ i++;
+ }
+ return 0;
+}
+
+
+inline
+char *
+TableInfoPs::getTableName(const Uint32 tableId) const{
+ TableInfo * table;
+ table=lookup(tableId);
+ if(table!=0)
+ return table->tableName;
+ return 0;
+}
+
+
+inline
+void
+TableInfoPs::insert(const Uint32 tableId, const char * tableName) {
+ TableInfo * table = new TableInfo;
+ table->tableId=tableId;
+ table->tableName=strdup(tableName);
+ tableInfo.push_back(table);
+}
+
+inline
+bool
+TableInfoPs::del(const Uint32 tableId) {
+
+ TableInfo * table;
+ Uint32 i=0;
+ table = lookup(tableId, &i);
+
+ if(table!=0) {
+ NdbMem_Free(table->tableName);
+ delete table;
+ tableInfo.erase(i);
+ return true;
+ }
+ return false;
+}
+
+#endif