Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовая по ООП / classes / database
.h#ifndef _DATABASE_H_
#define _DATABASE_H_
#include "machines.h"
#include "sfread.h"
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
class DatabaseBody;
class DatabaseField;
class DatabaseFieldString;
inline unsigned min(unsigned a, unsigned b){
return a>b?b:a;
}
class DatabaseField {
friend class DatabaseFieldString;
private:
void *value;
unsigned size;
public:
virtual long ToInt() = 0;
virtual DatabaseField& operator =(char *) = 0;
virtual char *ToStr() = 0;
DatabaseField(DatabaseBody*, unsigned);
DatabaseField(); //default constructor
DatabaseField(DatabaseField &); //copy constructor
DatabaseField &operator =(DatabaseField &);
virtual ~DatabaseField();
};
class DatabaseFieldString: public DatabaseField {
private:
public:
DatabaseFieldString();
DatabaseFieldString(DatabaseFieldString &);
DatabaseFieldString(DatabaseBody* , unsigned);
virtual DatabaseField& operator = (char *);
char *Value(void) const;
char *setValue(void);
virtual long ToInt(void);
virtual char *ToStr(void);
virtual ~DatabaseFieldString(void);
};
class DatabaseBody {
friend class DatabaseField;
friend class DatabaseFieldString;
private:
char *path;
FILE *file;
List<DatabaseField*> Fields;
char WS,CR; //Line feed, Carrage Return, Word Separator
char *hbuffer,*lbuffer; //high and low buffers
unsigned bufsize; //size of buffers
private:
DatabaseBody(DatabaseBody &) {};
public:
DatabaseBody();
DatabaseBody(char *,unsigned bsize = 1000,char ws=9, char cr='\n');
~DatabaseBody();
void SetPath(char *);
void Launch(short ReadMode=3);
void Commit(void);
DatabaseBody *Read(void);
void Write(void);
void Seek(unsigned);
short unsigned Ends(void);
short GetStatus(void);
};
#endif
Соседние файлы в папке classes