]> www.fi.muni.cz Git - evince.git/blob - dvi/dvilib/dl-loader.hh
f0ac956e6de4ece2e96f6702d120c10f42b13ebc
[evince.git] / dvi / dvilib / dl-loader.hh
1 #ifndef DL_LOADER_HH
2 #define DL_LOADER_HH
3
4 #include <string>
5 #include <cstdio>
6 #include <vector>
7
8 #include "dl-refcounted.hh"
9
10 namespace DviLib {
11     
12     class AbstractLoader : public RefCounted {
13     public:
14         virtual int get_uint8 ()                = 0;
15         virtual int get_uint16 ();
16         virtual int get_uint24 ();
17         virtual int get_uint32 ();
18         
19         virtual int get_int8 ()                 = 0;
20         virtual int get_int16 ();
21         virtual int get_int24 ();
22         virtual int get_int32 ();
23         
24         virtual string get_string8 ();
25         virtual string get_string16 ();
26         virtual string get_string24 ();
27         virtual string get_string32 ();
28         
29         virtual void skip_string8 ();
30         virtual void skip_string16 ();
31         virtual void skip_string24 ();
32         virtual void skip_string32 ();
33         
34         virtual void goto_from_start (int i)    = 0;
35         virtual void goto_from_end (int i)      = 0;
36         virtual void goto_from_current (int i)  = 0;
37         
38         virtual void skip_n (int n);
39         virtual string get_n (int n);
40         virtual void get_n (int n, unsigned char *v);
41         
42         virtual ~AbstractLoader() {};
43     };
44     
45     class FileLoader : public AbstractLoader {
46         FILE *f;
47         string filename;
48     public:
49         FileLoader (const string &name);
50         virtual int get_int8 ();
51         virtual int get_uint8 ();
52         virtual void goto_from_start (int i);
53         virtual void goto_from_end (int i);
54         virtual void goto_from_current (int i);
55         
56         virtual ~FileLoader ();
57     };
58 }
59 #endif // DL_LOADER_HH