~centralelyon2010/inkscape/imagelinks2

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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/**
 * Our base String stream classes.  We implement these to
 * be based on Glib::ustring
 *
 * Authors:
 *   Bob Jamison <rjamison@titan.com>
 *
 * Copyright (C) 2004 Inkscape.org
 *
 * Released under GNU GPL, read the file 'COPYING' for more information
 */


#include "stringstream.h"

namespace Inkscape
{
namespace IO
{


//#########################################################################
//# S T R I N G    I N P U T    S T R E A M
//#########################################################################


/**
 *
 */ 
StringInputStream::StringInputStream(Glib::ustring &sourceString)
                      : buffer(sourceString)
{
    position = 0;
}

/**
 *
 */ 
StringInputStream::~StringInputStream()
{

}

/**
 * Returns the number of bytes that can be read (or skipped over) from
 * this input stream without blocking by the next caller of a method for
 * this input stream.
 */ 
int StringInputStream::available()
{
    return buffer.size() - position;
}

    
/**
 *  Closes this input stream and releases any system resources
 *  associated with the stream.
 */ 
void StringInputStream::close()
{
}
    
/**
 * Reads the next byte of data from the input stream.  -1 if EOF
 */ 
int StringInputStream::get()
{
    if (position >= (int)buffer.size())
        return -1;
    int ch = (int) buffer[position++];
    return ch;
}
   



//#########################################################################
//# S T R I N G     O U T P U T    S T R E A M
//#########################################################################

/**
 *
 */ 
StringOutputStream::StringOutputStream()
{
}

/**
 *
 */ 
StringOutputStream::~StringOutputStream()
{
}

/**
 * Closes this output stream and releases any system resources
 * associated with this stream.
 */ 
void StringOutputStream::close()
{
}
    
/**
 *  Flushes this output stream and forces any buffered output
 *  bytes to be written out.
 */ 
void StringOutputStream::flush()
{
    //nothing to do
}
    
/**
 * Writes the specified byte to this output stream.
 */ 
void StringOutputStream::put(int ch)
{
    gunichar uch = (gunichar)ch;
    buffer.push_back(uch);
}


} // namespace IO
} // namespace Inkscape


//#########################################################################
//# E N D    O F    F I L E
//#########################################################################