activemq-cpp-3.9.5
PushbackInputStream.h
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef _DECAF_IO_PUSHBACKINPUTSTREAM_H_
19#define _DECAF_IO_PUSHBACKINPUTSTREAM_H_
20
21#include <decaf/util/Config.h>
22
25
26namespace decaf {
27namespace io {
28
42 class PushbackInputStream: public FilterInputStream {
43 private:
44
45 unsigned char* buffer;
46 int bufferSize;
47 int pos;
48
49 private:
50
51 PushbackInputStream(const PushbackInputStream&);
52 PushbackInputStream& operator=(const PushbackInputStream&);
53
54 public:
55
65 PushbackInputStream(InputStream* stream, bool own = false);
66
80 PushbackInputStream(InputStream* stream, int bufSize, bool own = false);
81
83
94 void unread(unsigned char value);
95
110 void unread(const unsigned char* buffer, int size);
111
130 void unread(const unsigned char* buffer, int size, int offset, int length);
131
138 virtual int available() const;
139
147 virtual long long skip(long long num);
148
154 virtual void mark(int readLimit);
155
161 virtual void reset();
162
168 virtual bool markSupported() const {
169 return false;
170 }
171
172 protected:
173
174 virtual int doReadByte();
175
176 virtual int doReadArrayBounded(unsigned char* buffer, int size, int offset, int length);
177
178 };
179
180}}
181
182#endif /* _DECAF_IO_PUSHBACKINPUTSTREAM_H_ */
bool own
Definition FilterInputStream.h:45
A base class that must be implemented by all classes wishing to provide a class that reads in a strea...
Definition InputStream.h:39
virtual bool markSupported() const
Does nothing except throw an IOException.
Definition PushbackInputStream.h:168
virtual void reset()
Does nothing except throw an IOException.
PushbackInputStream(InputStream *stream, bool own=false)
Creates a PushbackInputStream and saves its argument, the input stream in, for later use.
virtual int available() const
Indicates the number of bytes available.The default implementation of this methods returns 0....
void unread(const unsigned char *buffer, int size, int offset, int length)
Pushes back the given array of bytes, the bytes are copied to the front of the pushback buffer,...
virtual int doReadArrayBounded(unsigned char *buffer, int size, int offset, int length)
void unread(const unsigned char *buffer, int size)
Pushes back the given array of bytes, the bytes are copied to the front of the pushback buffer,...
void unread(unsigned char value)
Pushes back the given byte, the byte is copied to the front of the pushback buffer,...
virtual long long skip(long long num)
Skips over and discards n bytes of data from this input stream.The skip method may,...
virtual void mark(int readLimit)
Does nothing except throw an IOException.
PushbackInputStream(InputStream *stream, int bufSize, bool own=false)
Creates a PushbackInputStream and saves its argument, the input stream in, for later use.
Definition BlockingByteArrayInputStream.h:25
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Definition AprPool.h:25