// Common, group Files
// Copyright Alexander Liss
#include "filestd.h"
int FileStd::read(int& actual,unsigned char * data, int limit)
{
actual=0;
actual=fread(data,1,limit,p);
if(actual!=limit)
return ferror(p);
return 0;
}
int FileStd::read(CommBuffer& buf, int limit)
{
int g=0;
if(buf.space_left()<limit+1)
g=buf.reallocate(buf.write_offset+buf.data_size+limit+1);
if(g) return 1;
int actual;
g=read(actual,buf.write_start()+buf.data_size,limit);
if(g) return 2;
buf.data_size+=actual;
buf.data[buf.write_offset+buf.data_size]=0;
return 0;
}
int FileStd::read(CommBuffer& buf)
{
if(buf.space_left()-1<=0)
return 1;
int g=read(buf,buf.space_left()-1);
if(g) return 2;
return 0;
}
int FileStd::write(int& actual,const unsigned char * data, int size)
{
actual=0;
actual=fwrite(data,1,size,p);
if(actual!=size)
return ferror(p);
return 0;
}