1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
// Generic class for a file.
#ifndef _PJC_FILE_H
#define _PJC_FILE_H
#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif
#ifndef MAX_PATH
#define MAX_PATH 1024
#endif
class file
{
public:
file();
virtual ~file() {};
virtual int setup_link(unsigned int bufsize, int rfm, int rat, int xfer_mode) = 0;
virtual int open(char *mode) = 0;
virtual int open(char *basename, char *mode) = 0;
virtual int close() = 0;
virtual int read(char *buf, int len) = 0;
virtual int write(char *buf, int len) = 0;
virtual int next() = 0;
virtual void perror(char *) = 0;
virtual char *get_basename(int keep_version) = 0;
virtual char *get_printname() = 0;
virtual char *get_printname(char *filename) = 0;
virtual char *get_format_name() = 0;
virtual int get_umask() = 0;
virtual int set_umask(int mask) = 0;
virtual bool eof() = 0;
virtual bool isdirectory() = 0;
virtual bool iswildcard() = 0;
virtual int max_buffersize(int biggest) = 0;
// Some constants
static const int MODE_DEFAULT = -1;
static const int MODE_RECORD = 1;
static const int MODE_BLOCK = 2;
static const int RAT_DEFAULT = -1; // Use RMS defaults
static const int RAT_FTN = 1; // RMS RAT values from fab.h
static const int RAT_CR = 2;
static const int RAT_PRN = 4;
static const int RAT_NONE = 0;
static const int RFM_DEFAULT = -1; // Use RMS defaults
static const int RFM_UDF = 0; // RMS RFM values from fab.h
static const int RFM_FIX = 1;
static const int RFM_VAR = 2;
static const int RFM_VFC = 3;
static const int RFM_STM = 4;
static const int RFM_STMLF = 5;
static const int RFM_STMCR = 6;
private:
// Disable copy constructor
file(const file &);
};
#endif
|