Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

HexReader.H

Go to the documentation of this file.
00001 // Copyright (C) 2001, Compaq Computer Corporation
00002 // 
00003 // This file is part of Vesta.
00004 // 
00005 // Vesta is free software; you can redistribute it and/or
00006 // modify it under the terms of the GNU Lesser General Public
00007 // License as published by the Free Software Foundation; either
00008 // version 2.1 of the License, or (at your option) any later version.
00009 // 
00010 // Vesta is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 // Lesser General Public License for more details.
00014 // 
00015 // You should have received a copy of the GNU Lesser General Public
00016 // License along with Vesta; if not, write to the Free Software
00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 
00019 // Created on Thu Aug 21 22:45:34 PDT 1997 by heydon
00020 // Last modified on Mon Aug  9 18:03:02 EDT 2004 by ken@xorian.net
00021 //      modified on Thu Aug 21 23:35:29 PDT 1997 by heydon
00022 
00023 // HexReader.H -- class for reading files containing ShortIds, one per line
00024 
00025 #ifndef _HEX_READER_H
00026 #define _HEX_READER_H
00027 
00028 #include <Basics.H>
00029 #include <FS.H>
00030 #include <SourceOrDerived.H>
00031 
00032 class HexReader {
00033   public:
00034     // exception class
00035     class BadValue {
00036       public:
00037         int lineNum;
00038         Text str;
00039         BadValue(int lineNum, char *str) throw ()
00040             : lineNum(lineNum), str(str) { /*SKIP*/ }
00041     };
00042 
00043     HexReader(char *path) throw (FS::DoesNotExist, FS::Failure);
00044     /* Open a new HexReader on the file named by "path". */
00045 
00046     ~HexReader() throw (FS::Failure);
00047     /* Close this HexReader. */
00048 
00049     ShortId Next() throw (FS::Failure, BadValue);
00050     /* Read and return the next hex value in the file. A return value of 0
00051        indicates end-of-file. Throw "BadValue" if the line is not a hex
00052        value. */
00053   private:
00054     std::ifstream ifs;
00055     int lineNum;
00056 };
00057 
00058 #endif // _HEX_READER_H

Generated on Mon May 8 00:48:42 2006 for Vesta by  doxygen 1.4.2