Ignore:
Timestamp:
04/03/14 01:24:30 (10 years ago)
Author:
Maciej Komosinski
Message:

VirtFILE base class provides Vprintf, Vgetc, Vputc, Vrewind, so that subclasses do not have to implement these functions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/virtfile/virtfile.h

    r197 r206  
    2626virtual int Vwrite(const void *ptr, size_t size, size_t nmemb)=0;
    2727virtual int Veof()=0;
    28 virtual int Vputc(int c)=0;
     28virtual int Vputc(int c) {unsigned char data=c; return (Vwrite(&data,1,1)==1)?data:EOF;}
    2929virtual int Vputs(const char *s)=0;
    30 virtual int Vgetc()=0;
     30virtual int Vgetc() {unsigned char data; if (Vread(&data,1,1)==1) return data; else return EOF;}
    3131virtual int Vseek(long offset, int whence)=0;
    3232virtual int Vtell()=0;
    33 virtual void Vrewind()=0;
     33virtual void Vrewind() {Vseek(0,SEEK_SET);}
    3434virtual int Vflush()=0;
    3535virtual char *Vgets(char *s, int size)=0;
    36 virtual int Vprintf(const char *format, va_list args)=0;
     36virtual int Vprintf(const char *format, va_list args);
    3737int printf(const char *format, ...);
    3838virtual const char *VgetPath() {return 0;} // 0=unspecified path
Note: See TracChangeset for help on using the changeset viewer.