// Program name: cffile.cpp // Programmed by: Anthony Barbachan // Programmed in: C++ (Turbo C++ 3.0 Compatable) // Purpose: Source file for a cabinet file folder object. // Version: 1.00 // Last modified on: 11/5/1998 // Version: 1.00a // Last modified on: 11/29/1998 // Changes: Fixed missing setting of status. Added error checking to str read. // Version: 1.00b // Last modified on: 12/6/1998 // Changes: Modified error checking code to check for short reads as well. // Version: 2.00 // Last modification date: 10-18-1999 // Changes: Replaced code with new classes' code. #ifndef __CFFILE_CPP__ #define __CFFILE_CPP__ #include #include "cffile.h" #include "cftypes.h" #include "cfheader.h" ////////////////////////////////////////**************************************** Error cabinet_file_fixed_header::read(istream& in) { return (in.read((char *) this, sizeof(*this)).bad()) ? ((in.fail()) ? READ_ERROR : UNEXPECTED_EOF) : OK; } ////////////////////////////////////////**************************************** Error cabinet_file_fixed_header::write(ostream& out) { return (out.write((char *) this, sizeof(*this)).fail()) ? WRITE_ERROR : OK; } ////////////////////////////////////////**************************************** Error cabinet_file_header::read(istream& in) { Error err = OK; clear(); if((err = cabinet_file_fixed_header::read(in)) != OK) return err; return cabinet_header::read_string(name, in); } ////////////////////////////////////////**************************************** Error cabinet_file_header::write(ostream& out) { Error err = OK; if((err = cabinet_file_fixed_header::write(out)) != OK) return err; return (out.write(name, name.length() + 1u).fail()) ? WRITE_ERROR : OK; } ////////////////////////////////////////**************************************** #endif