
#include "readwrite.h"

int ReadableThing::IncrementalRead (char* buf, int nchars)
{
  int ccount =0;
  for(int i=0;i<nchars;i++) {
    int res = read(&buf[ccount],1);
    if(res==-1) return -1;
    if(res!= 1)  break;
    ccount += res;
  }
  return ccount;
}

int WriteableThing::IncrementalWrite (char* buf)
{
  return IncrementalWrite(buf,strlen(buf));
}
int WriteableThing::IncrementalWrite (char* buf, int nchars)
{
  int ccount =0;
  for(int i=0;i<nchars;i++) {
    int res = write(&buf[i],1);
    if(res==-1) return -1;
    if(res!=1)  return -1;
    ccount += res;
  }
  return ccount;
}

