|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.