]> 4ch.mooo.com Git - 16.git/blob - 16/adplug/libbinio-1.4/src/binstr.h
Please enter the commit message for your changes. Lines starting
[16.git] / 16 / adplug / libbinio-1.4 / src / binstr.h
1 /*
2  * This library is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU Lesser General Public
4  * License as published by the Free Software Foundation; either
5  * version 2.1 of the License, or (at your option) any later version.
6  * 
7  * This library is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
10  * Lesser General Public License for more details.
11  * 
12  * You should have received a copy of the GNU Lesser General Public
13  * License along with this library; if not, write to the Free Software
14  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
15  *
16  * binstr.h - Binary I/O on standard C strings in memory
17  * Copyright (C) 2003 Simon Peter <dn.tlp@gmx.net>
18  */
19
20 #ifndef H_BINIO_BINSTR
21 #define H_BINIO_BINSTR
22
23 #include "binio.h"
24
25 class binsbase: virtual public binio
26 {
27 public:
28   binsbase(void *str, unsigned long len);
29   virtual ~binsbase();
30
31   virtual void seek(long p, Offset offs = Set);
32   virtual long pos();
33
34 protected:
35   Byte  *data, *spos;
36   long  length;
37 };
38
39 class binisstream: public binistream, virtual public binsbase
40 {
41 public:
42   binisstream(void *str, unsigned long len);
43   virtual ~binisstream();
44
45 protected:
46   virtual Byte getByte();
47 };
48
49 class binosstream: public binostream, virtual public binsbase
50 {
51 public:
52   binosstream(void *str, unsigned long len);
53   virtual ~binosstream();
54
55 protected:
56   virtual void putByte(Byte b);
57 };
58
59 class binsstream: public binisstream, public binosstream
60 {
61 public:
62   binsstream(void *str, unsigned long len);
63   virtual ~binsstream();
64 };
65
66 #endif