casacore::BlockIO Class Reference

---------------------------------------------------------------------------- More...

#include <blockio.h>

Inheritance diagram for casacore::BlockIO:
casacore::BlockInput casacore::BlockOutput casacore::FitsDiskInput casacore::FitsStdInput casacore::FitsTape9Input casacore::FitsDiskOutput casacore::FitsStdOutput casacore::FitsTape9Output

List of all members.

Public Types

enum  IOErrs {
  OK,
  NOSUCHFILE,
  NOMEM,
  OPENERR,
  CLOSEERR,
  READERR,
  WRITEERR
}
 

error return code

More...

Public Member Functions

int err () const
int blockno () const
 number of physical blocks read/written
void reset_iosize ()
 reset the m_iosize data member
int iosize () const
 get the total bytes of data in m_buffer
int current () const
 get the current read position within m_buffer
char * buffer () const
 get m_buffer
int recno () const
 number of logical records read/written
const char * fname () const
 name of file associated with I/O stream, if applicable
int close_file (fitsfile *fptr, int *status)
 fits_close_file() does not work for reasons that the file pointer does not have the knowledge of chdu which were written with write_hdr() not write_***_hdr().
int fdes () const
 file descriptor associated with I/O stream, if applicable
fitsfile * getfptr () const
 get the fitsfile pointer
void setfptr (fitsfile *ffp)

Protected Member Functions

 BlockIO (const char *, int, int, int=1, FITSErrorHandler errhandler=FITSError::defaultHandler)
 Construction can be done either from a filename with open options or from a file descriptor.
 BlockIO (int, int, int=1, FITSErrorHandler errhandler=FITSError::defaultHandler)
virtual ~BlockIO ()
void errmsg (IOErrs, const char *)
 set the error message and error number for later recovery

Protected Attributes

char * m_filename
int m_options
const int m_recsize
const int m_nrec
const int m_blocksize
FITSErrorHandler m_errfn
IOErrs m_err_status
int m_fd
char * m_buffer
int m_block_no
int m_rec_no
int m_current
int m_iosize
 size of record in buffer
fitsfile * m_fptr
 using fitsfile structure from cfitsio of NASA

Detailed Description

----------------------------------------------------------------------------

fixed-length blocked sequentual I/O base class

Synopsis

BlockIO is a low level base class that implements fixed-length blocked sequential I/O. Its derived classes, BlockInput and BlockOutput are used by the FitsInput and FitsOutput classes. Users will hardly ever need to use this class directly.

To Do

Definition at line 61 of file blockio.h.


Member Enumeration Documentation

error return code

Enumerator:
OK 
NOSUCHFILE 
NOMEM 
OPENERR 
CLOSEERR 
READERR 
WRITEERR 

Definition at line 64 of file blockio.h.


Constructor & Destructor Documentation

casacore::BlockIO::BlockIO ( const char *  ,
int  ,
int  ,
int  = 1,
FITSErrorHandler  errhandler = FITSError::defaultHandler 
) [protected]

Construction can be done either from a filename with open options or from a file descriptor.

The remaining arguments are the the logical record size and number of records that make up a physical record followed by the output stream that is used to write error messages to.

casacore::BlockIO::BlockIO ( int  ,
int  ,
int  = 1,
FITSErrorHandler  errhandler = FITSError::defaultHandler 
) [protected]
virtual casacore::BlockIO::~BlockIO (  )  [protected, virtual]

Member Function Documentation

int casacore::BlockIO::blockno (  )  const [inline]

number of physical blocks read/written

Definition at line 69 of file blockio.h.

References m_block_no.

Referenced by casacore::FitsInput::blockno().

char* casacore::BlockIO::buffer (  )  const [inline]

get m_buffer

Definition at line 81 of file blockio.h.

References m_buffer.

int casacore::BlockIO::close_file ( fitsfile *  fptr,
int *  status 
)

fits_close_file() does not work for reasons that the file pointer does not have the knowledge of chdu which were written with write_hdr() not write_***_hdr().

So create our own close_file() method.

int casacore::BlockIO::current (  )  const [inline]

get the current read position within m_buffer

Definition at line 78 of file blockio.h.

References m_current.

int casacore::BlockIO::err (  )  const [inline]

Definition at line 66 of file blockio.h.

References m_err_status.

void casacore::BlockIO::errmsg ( IOErrs  ,
const char *   
) [protected]

set the error message and error number for later recovery

int casacore::BlockIO::fdes (  )  const [inline]

file descriptor associated with I/O stream, if applicable

Definition at line 94 of file blockio.h.

References m_fd.

const char* casacore::BlockIO::fname (  )  const [inline]

name of file associated with I/O stream, if applicable

Definition at line 87 of file blockio.h.

References m_filename.

fitsfile* casacore::BlockIO::getfptr (  )  const [inline]

get the fitsfile pointer

Definition at line 96 of file blockio.h.

References m_fptr.

int casacore::BlockIO::iosize (  )  const [inline]

get the total bytes of data in m_buffer

Definition at line 75 of file blockio.h.

References m_iosize.

int casacore::BlockIO::recno (  )  const [inline]

number of logical records read/written

Definition at line 84 of file blockio.h.

References m_rec_no.

Referenced by casacore::FitsInput::recno().

void casacore::BlockIO::reset_iosize (  )  [inline]

reset the m_iosize data member

Definition at line 72 of file blockio.h.

References m_iosize.

void casacore::BlockIO::setfptr ( fitsfile *  ffp  ) 

Member Data Documentation

Definition at line 122 of file blockio.h.

Referenced by blockno().

const int casacore::BlockIO::m_blocksize [protected]

Definition at line 117 of file blockio.h.

char* casacore::BlockIO::m_buffer [protected]

Definition at line 121 of file blockio.h.

Referenced by buffer().

Definition at line 124 of file blockio.h.

Referenced by current().

Definition at line 119 of file blockio.h.

Referenced by err().

Definition at line 118 of file blockio.h.

int casacore::BlockIO::m_fd [protected]

Definition at line 120 of file blockio.h.

Referenced by fdes().

char* casacore::BlockIO::m_filename [protected]

Definition at line 113 of file blockio.h.

Referenced by fname().

fitsfile* casacore::BlockIO::m_fptr [protected]

using fitsfile structure from cfitsio of NASA

Definition at line 128 of file blockio.h.

Referenced by getfptr().

int casacore::BlockIO::m_iosize [protected]

size of record in buffer

Definition at line 126 of file blockio.h.

Referenced by iosize(), and reset_iosize().

const int casacore::BlockIO::m_nrec [protected]

Definition at line 116 of file blockio.h.

Definition at line 114 of file blockio.h.

int casacore::BlockIO::m_rec_no [protected]

Definition at line 123 of file blockio.h.

Referenced by recno().

const int casacore::BlockIO::m_recsize [protected]

Definition at line 115 of file blockio.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1