blob: f0544d876cb31f2d0bbdc7d9f0521f67c270f8de (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
// SPDX-License-Identifier: GPL-2.0-or-later
#ifndef SEEN_INKSCAPE_IO_URISTREAM_H
#define SEEN_INKSCAPE_IO_URISTREAM_H
/**
* @file
* This should be the only way that we provide sources/sinks
* to any input/output stream.
*/
/*
* Authors:
* Bob Jamison <rjamison@titan.com>
*
* Copyright (C) 2004 Inkscape.org
*
* Released under GNU GPL v2+, read the file 'COPYING' for more information.
*/
#include "object/uri.h"
#include "inkscapestream.h"
namespace Inkscape
{
class URI;
namespace IO
{
//#########################################################################
//# F I L E I N P U T S T R E A M
//#########################################################################
/**
* This class is for receiving a stream of data from a file
*/
class FileInputStream : public InputStream
{
public:
FileInputStream(FILE *source);
~FileInputStream() override;
int available() override;
void close() override;
int get() override;
private:
FILE *inf; //for file: uris
}; // class FileInputStream
//#########################################################################
//# F I L E O U T P U T S T R E A M
//#########################################################################
/**
* This class is for sending a stream to a destination file
*/
class FileOutputStream : public OutputStream
{
public:
FileOutputStream(FILE *fp);
~FileOutputStream() override;
void close() override;
void flush() override;
int put(char ch) override;
private:
bool ownsFile;
FILE *outf; //for file: uris
}; // class FileOutputStream
} // namespace IO
} // namespace Inkscape
#endif // SEEN_INKSCAPE_IO_URISTREAM_H
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
|