#ifndef BPLUSTREE_H
#define BPLUSTREE_H

#include "persifs.h"
#include "marshal.h"

template<class K, class V,
         class MK = marshaller<K>, class MV = marshaller<V>,
         class UMK = unmarshaller<K>, class UMV = unmarshaller<V> >
class BPlusTree
{
  const MK marshK;
  const MV marshV;
  const UMK unmarshK;
  const UMV unmarshV;

public:
  BPlusTree () : marshK(MK()), marshV(MV()),
                 unmarshK(UMK()), unmarshV(UMV()) { }

  void insert(const K & key, const V & val) {
    warn << "insert: key=" << marshK(key) << "\n";
    warn << "insert: val=" << marshV(val) << "\n";
  }
};


#endif
