]> git.llucax.com Git - z.facultad/75.52/treemulator.git/commitdiff
Agrego estructura basica para manejo de claves
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Mon, 12 Sep 2005 05:08:45 +0000 (05:08 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Mon, 12 Sep 2005 05:08:45 +0000 (05:08 +0000)
La idea es que el manejo sea transparente a travez del tipo "Clave" y toda
la magia la haga los objetitos.

src/Makefile
src/btree.h
src/clave.h [new file with mode: 0644]
src/clave_fija.cpp [new file with mode: 0644]
src/clave_fija.h [new file with mode: 0644]
src/common.h [new file with mode: 0644]

index 5440d99a920137086b09df93f9117987412bb1d2..cd9cbe7dd6fc78b56b66b20e13cd7a2887009ca6 100644 (file)
@@ -3,5 +3,6 @@ CXXFLAGS=-Wall -g
 
 all: $(TARGET)
 
-$(TARGET): main.o btree.o
-       g++ -o $(TARGET) main.o btree.o
+$(TARGET): main.o btree.o clave_fija.o
+       g++ -o $(TARGET) main.o btree.o clave_fija.o
+
index 0ed4fbdcadae9625011998d3b37ac5e9dd50d900..744079b4faa162d8d05cf8fcaa4d708627a2c8ca 100644 (file)
@@ -45,9 +45,9 @@
  */
 
 #include <string>
+#include "common.h"
 
 /* alias para codear menos :) */
-typedef unsigned char uchar;
 
 /** Encabezado del archivo BTree */
 typedef struct _btree_file_ {
diff --git a/src/clave.h b/src/clave.h
new file mode 100644 (file)
index 0000000..7cf3ceb
--- /dev/null
@@ -0,0 +1,17 @@
+
+#ifndef _CLAVE_H_
+#define _CLAVE_H_
+
+/* Clave para agregar a un arbol B */
+#include "common.h"
+
+class Clave {
+       public:
+               virtual ~Clave () {}
+
+               virtual uint Size () = 0;
+               virtual uchar *ToArray () = 0;
+};
+
+#endif
+
diff --git a/src/clave_fija.cpp b/src/clave_fija.cpp
new file mode 100644 (file)
index 0000000..05c9814
--- /dev/null
@@ -0,0 +1,17 @@
+
+#include <string>
+#include "clave_fija.h"
+
+uint ClaveFija::Size ()
+{
+       return sizeof (int);
+}
+
+uchar *ClaveFija::ToArray ()
+{
+       uchar *out;
+       out = new uchar[sizeof(int)];
+       memcpy (out, &data, sizeof(int));
+       return out;
+}
+
diff --git a/src/clave_fija.h b/src/clave_fija.h
new file mode 100644 (file)
index 0000000..b11fe22
--- /dev/null
@@ -0,0 +1,19 @@
+
+#ifndef _CLAVE_FIJA_H_
+#define _CLAVE_FIJA_H_
+
+#include "clave.h"
+
+class ClaveFija : Clave {
+       public :
+               virtual ~ClaveFija () {}
+
+               virtual uint Size ();
+               virtual uchar *ToArray ();
+
+       private:
+               int data;
+};
+
+#endif
+
diff --git a/src/common.h b/src/common.h
new file mode 100644 (file)
index 0000000..6e7079f
--- /dev/null
@@ -0,0 +1,9 @@
+
+#ifndef _COMMON_H_
+#define _COMMON_H_
+
+typedef unsigned char uchar;
+typedef unsigned int uint;
+
+#endif
+