activemq-cpp-3.9.5
OutputStream.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_OUTPUTSTREAM_H
19#define _DECAF_IO_OUTPUTSTREAM_H
20
21#include <decaf/io/Closeable.h>
22#include <decaf/io/Flushable.h>
26#include <decaf/util/Config.h>
27
30
31namespace decaf{
32namespace io{
33
40 private:
41
42 // Synchronization object.
44
45 private:
46
48 OutputStream& operator=(const OutputStream&);
49
50 public:
51
53
54 virtual ~OutputStream();
55
61 virtual void close();
62
68 virtual void flush();
69
81 virtual void write(unsigned char c);
82
101 virtual void write(const unsigned char* buffer, int size);
102
127 virtual void write(const unsigned char* buffer, int size, int offset, int length);
128
136 virtual std::string toString() const;
137
138 protected:
139
140 virtual void doWriteByte(unsigned char value) = 0;
141
142 virtual void doWriteArray(const unsigned char* buffer, int size);
143
144 virtual void doWriteArrayBounded(const unsigned char* buffer, int size, int offset, int length);
145
146 public:
147
148 virtual void lock() {
149 mutex.lock();
150 }
151
152 virtual bool tryLock() {
153 return mutex.tryLock();
154 }
155
156 virtual void unlock() {
157 mutex.unlock();
158 }
159
160 virtual void wait() {
161 mutex.wait();
162 }
163
164 virtual void wait(long long millisecs) {
165 mutex.wait(millisecs);
166 }
167
168 virtual void wait(long long millisecs, int nanos) {
169 mutex.wait(millisecs, nanos);
170 }
171
172 virtual void notify() {
173 mutex.notify();
174 }
175
176 virtual void notifyAll() {
177 mutex.notifyAll();
178 }
179
180 };
181
182}}
183
184#endif /*_DECAF_IO_OUTPUTSTREAM_H*/
Interface for a class that implements the close method.
Definition: Closeable.h:30
A Flushable is a destination of data that can be flushed.
Definition: Flushable.h:34
Base interface for any class that wants to represent an output stream of bytes.
Definition: OutputStream.h:39
virtual void doWriteArray(const unsigned char *buffer, int size)
virtual void wait(long long millisecs, int nanos)
Waits on a signal from this object, which is generated by a call to Notify.
Definition: OutputStream.h:168
virtual void write(const unsigned char *buffer, int size, int offset, int length)
Writes an array of bytes to the output stream in order starting at buffer[offset] and proceeding unti...
virtual void notifyAll()
Signals the waiters on this object that it can now wake up and continue.
Definition: OutputStream.h:176
virtual void unlock()
Unlocks the object.
Definition: OutputStream.h:156
virtual std::string toString() const
Output a String representation of this object.
virtual void doWriteByte(unsigned char value)=0
virtual void write(const unsigned char *buffer, int size)
Writes an array of bytes to the output stream.
virtual void write(unsigned char c)
Writes a single byte to the output stream.
virtual void close()
Closes this object and deallocates the appropriate resources.The object is generally no longer usable...
virtual void notify()
Signals a waiter on this object that it can now wake up and continue.
Definition: OutputStream.h:172
virtual void doWriteArrayBounded(const unsigned char *buffer, int size, int offset, int length)
virtual void wait()
Waits on a signal from this object, which is generated by a call to Notify.
Definition: OutputStream.h:160
virtual bool tryLock()
Attempts to Lock the object, if the lock is already held by another thread than this method returns f...
Definition: OutputStream.h:152
virtual void flush()
Flushes this stream by writing any buffered output to the underlying stream.if an I/O error occurs.
virtual void lock()
Locks the object.
Definition: OutputStream.h:148
virtual void wait(long long millisecs)
Waits on a signal from this object, which is generated by a call to Notify.
Definition: OutputStream.h:164
Mutex object that offers recursive support on all platforms as well as providing the ability to use t...
Definition: Mutex.h:39
virtual void lock()
Locks the object.
virtual void notifyAll()
Signals the waiters on this object that it can now wake up and continue.
virtual bool tryLock()
Attempts to Lock the object, if the lock is already held by another thread than this method returns f...
virtual void unlock()
Unlocks the object.
virtual void wait()
Waits on a signal from this object, which is generated by a call to Notify.
virtual void notify()
Signals a waiter on this object that it can now wake up and continue.
The interface for all synchronizable objects (that is, objects that can be locked and unlocked).
Definition: Synchronizable.h:37
#define DECAF_API
Definition: Config.h:29
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Definition: AprPool.h:25