* Copyright 2008, Haiku.
* Distributed under the terms of the MIT license.
*
* Authors:
* Michael Pfeiffer <laplace@users.sourceforge.net>
*/
#ifndef _PPD_FILE_H
#define _PPD_FILE_H
#include <File.h>
#include <String.h>
class Position {
public:
int x;
int y;
Position() : x(0), y(0) {}
Position(int x, int y) : x(x), y(y) {}
};
#define kReadBufferSize 1024
class FileBuffer {
BFile* fFile;
unsigned char fBuffer[kReadBufferSize];
int fIndex;
int fSize;
public:
FileBuffer(BFile* file) : fFile(file), fIndex(0), fSize(0) {}
int Read();
};
class PPDFile {
private:
BString fFileName;
BFile fFile;
PPDFile* fPreviousFile;
Position fCurrentPosition;
int fCurrentChar;
FileBuffer fBuffer;
public:
PPDFile(const char* file, PPDFile* previousFile = NULL);
~PPDFile();
status_t InitCheck();
int GetCurrentChar();
void NextChar();
Position GetPosition();
PPDFile* GetPreviousFile();
const char* GetFileName();
};
#endif