-BTree *btree_create (const char *filename, unsigned int block_size);
-
-/** Abre un arbol B existente
- *
- * \param filename Nombre del archivo a abrir
- * \return El arbol abierto o NULL en caso de error
- */
-BTree *btree_open (const char *filename);
-
-/** Agrega una clave en el arbol
- *
- * \TODO Definir parametros
- */
-int btree_add (BTree *);
-
-/** Borra una clave del arbol
- *
- * \TODO Definir parametros
- */
-int btree_del (BTree *);
-
-/** Cierra el arbol y libera los recursos */
-int btree_close (BTree *);
+class BTree {
+ public:
+ BTree (const char *filename, unsigned int block_size, bool create_new_file = false);
+ ~BTree ();
+
+ void AddKey ();
+ void DelKey ();
+
+ private:
+ void write_tree_header ();
+ void write_block (uchar *block, uint num);
+
+ std::string filename;
+ BTreeFileHeader header;
+
+ /** Apunta al archivo de datos, asi se abre solo 1 vez
+ *
+ * \TODO Ver si vale la pena
+ */
+ FILE *fp;
+};