// -*- Mode: C++ -*-
// GiSTstore.h
//
// Copyright (c) 1996, Regents of the University of California
// $Header: /cvsroot/Tree-M/GiST/GiSTstore.h,v 1.1 2001/05/06 00:45:52 root Exp $
#ifndef GISTSTORE_H
#define GISTSTORE_H
#include "GiSTdefs.h"
// GiSTstore is the parent class for storage of GiST pages. GiSTfile is
// provided as an example descendant of GiSTstore.
class GiSTstore {
public:
GiSTstore(): isOpen(0) {}
virtual void Create(const char *filename)=0;
virtual void Open(const char *filename)=0;
virtual void Close()=0;
virtual void Read(GiSTpage page, char *buf)=0;
virtual void Write(GiSTpage page, const char *buf)=0;
virtual GiSTpage Allocate()=0;
virtual void Deallocate(GiSTpage page)=0;
virtual void Sync()=0;
virtual int IsOpen() { return isOpen; }
virtual int PageSize() const=0;
virtual ~GiSTstore() { }
protected:
void SetOpen(int o) { isOpen=o; }
private:
int isOpen;
};
#endif