Annotation of GNUtools/libg++/libio/SFile.cc, revision 1.1.1.1

1.1       root        1: /* 
                      2: Copyright (C) 1993 Free Software Foundation
                      3: 
                      4: This file is part of the GNU IO Library.  This library is free
                      5: software; you can redistribute it and/or modify it under the
                      6: terms of the GNU General Public License as published by the
                      7: Free Software Foundation; either version 2, or (at your option)
                      8: any later version.
                      9: 
                     10: This library is distributed in the hope that it will be useful,
                     11: but WITHOUT ANY WARRANTY; without even the implied warranty of
                     12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     13: GNU General Public License for more details.
                     14: 
                     15: You should have received a copy of the GNU General Public License
                     16: along with GNU CC; see the file COPYING.  If not, write to
                     17: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
                     18: 
                     19: As a special exception, if you link this library with files
                     20: compiled with a GNU compiler to produce an executable, this does not cause
                     21: the resulting executable to be covered by the GNU General Public License.
                     22: This exception does not however invalidate any other reasons why
                     23: the executable file might be covered by the GNU General Public License. */
                     24: 
                     25: /* 
                     26: Copyright (C) 1988 Free Software Foundation
                     27:     written by Doug Lea ([email protected])
                     28: 
                     29: This file is part of the GNU C++ Library.  This library is free
                     30: software; you can redistribute it and/or modify it under the terms of
                     31: the GNU Library General Public License as published by the Free
                     32: Software Foundation; either version 2 of the License, or (at your
                     33: option) any later version.  This library is distributed in the hope
                     34: that it will be useful, but WITHOUT ANY WARRANTY; without even the
                     35: implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
                     36: PURPOSE.  See the GNU Library General Public License for more details.
                     37: You should have received a copy of the GNU Library General Public
                     38: License along with this library; if not, write to the Free Software
                     39: Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
                     40: */
                     41: 
                     42: #ifdef __GNUG__
                     43: #pragma implementation
                     44: #endif
                     45: #include <SFile.h>
                     46: 
                     47: SFile::SFile(const char *filename, int size, int mode, int prot)
                     48: : fstream(filename, mode, prot)
                     49: { 
                     50:   sz = size; 
                     51: }
                     52: 
                     53: SFile::SFile(int fd, int size)
                     54: : fstream(fd)
                     55: { 
                     56:   sz = size; 
                     57: }
                     58: 
                     59: void SFile::open(const char *name, int size, int mode, int prot)
                     60: {
                     61:     fstream::open(name, mode, prot);
                     62:     sz = size;
                     63: }
                     64: 
                     65: SFile& SFile::get(void* x)
                     66: {
                     67:     read(x, sz);
                     68:     return *this;
                     69: }
                     70: 
                     71: SFile& SFile::put(void* x)
                     72: {
                     73:     write(x, sz);
                     74:     return *this;
                     75: }
                     76: 
                     77: SFile& SFile::operator[](long i)
                     78: {
                     79:     if (rdbuf()->sseekoff(i * sz, ios::beg) == EOF)
                     80:        set(ios::badbit);
                     81:     return *this;
                     82: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.