

#ifndef lineread_h__
#define lineread_h__

#include "mfbase1.h"
#include "mfstring.h"

#define MFLR_BUFFER_SIZE 1024

typedef struct tag_mfLineReader {
  char   m_constructed;

  void * m_filehandle;
  char   m_stock_buffer[MFLR_BUFFER_SIZE];
  int    m_stocked_size;
  int    m_position;
  int    m_eof;

} mfLineReader;


MF_METHOD(int)
mfLineReader_construct (
    mfLineReader * a_self,
    const char   * a_filename,
    int            a_length );


MF_METHOD(void)
mfLineReader_destruct (mfLineReader *a_self);


MF_METHOD(int)
mfLineReader_read_line(
    mfLineReader * a_self,
    mfStr        * a_out_line,
    int          * a_out_br_code );

#endif // lineread_hpp__

