ARTS
2.0.49
bifstream.h
Go to the documentation of this file.
1
/* Copyright (C) 2003-2008 Oliver Lemke <olemke@core-dump.info>
2
3
This program is free software; you can redistribute it and/or modify it
4
under the terms of the GNU General Public License as published by the
5
Free Software Foundation; either version 2, or (at your option) any
6
later version.
7
8
This program is distributed in the hope that it will be useful,
9
but WITHOUT ANY WARRANTY; without even the implied warranty of
10
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
GNU General Public License for more details.
12
13
You should have received a copy of the GNU General Public License
14
along with this program; if not, write to the Free Software
15
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
16
USA. */
17
18
20
// File description
22
31
#ifndef BIFSTREAM_H_INCLUDED
32
#define BIFSTREAM_H_INCLUDED
33
34
#include <fstream>
35
36
#include "
binio.h
"
37
38
40
44
class
bifstream
:
public
binistream
,
public
ifstream
45
{
46
public
:
47
bifstream
() : ifstream () { }
48
49
explicit
50
bifstream
(
const
char
* name,
51
ios::openmode mode = ios::in | ios::binary)
52
: ifstream (name, mode)
53
{
54
// Set Little Endian mode, with IEEE-754 floats.
55
this->
setFlag
(
binio::BigEndian
,
false
);
// remove flag
56
this->
setFlag
(
binio::FloatIEEE
);
// set flag
57
}
58
59
60
virtual
~bifstream
() {}
61
void
seek
(
long
spos,
Offset
offs);
62
streampos
pos
();
63
64
bifstream::Byte
getByte
();
65
void
getRaw
(
char
*c, streamsize n) { this->read (c, n); }
66
67
};
68
69
70
/* Overloaded input operators */
71
bifstream
&
operator>>
(
bifstream
& bif,
double
& n);
72
73
bifstream
&
operator>>
(
bifstream
& bif,
float
& n);
74
75
bifstream
&
operator>>
(
bifstream
& bif,
long
& n);
76
77
bifstream
&
operator>>
(
bifstream
& bif,
int
& n);
78
79
#endif
binio::BigEndian
@ BigEndian
Definition:
binio.h:70
operator>>
bifstream & operator>>(bifstream &bif, double &n)
Definition:
bifstream.cc:68
binio::FloatIEEE
@ FloatIEEE
Definition:
binio.h:71
binio.h
bifstream::getByte
bifstream::Byte getByte()
Definition:
bifstream.cc:52
bifstream::pos
streampos pos()
Definition:
bifstream.cc:46
bifstream::~bifstream
virtual ~bifstream()
Definition:
bifstream.h:60
bifstream
Binary output file stream class.
Definition:
bifstream.h:45
bifstream::getRaw
void getRaw(char *c, streamsize n)
Definition:
bifstream.h:65
binio::Offset
Offset
Definition:
binio.h:84
bifstream::seek
void seek(long spos, Offset offs)
Definition:
bifstream.cc:35
bifstream::bifstream
bifstream()
Definition:
bifstream.h:47
binistream
Definition:
binio.h:122
binio::setFlag
void setFlag(Flag f, bool set=true)
Definition:
binio.cc:94
bifstream::bifstream
bifstream(const char *name, ios::openmode mode=ios::in|ios::binary)
Definition:
bifstream.h:50
binio::Byte
unsigned char Byte
Definition:
binio.h:103
src
bifstream.h
Generated by
1.8.20