blocxx
CommonFwd.hpp
Go to the documentation of this file.
1/*******************************************************************************
2* Copyright (C) 2005, Vintela, Inc. All rights reserved.
3* Copyright (C) 2006, Novell, Inc. All rights reserved.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7*
8* * Redistributions of source code must retain the above copyright notice,
9* this list of conditions and the following disclaimer.
10* * Redistributions in binary form must reproduce the above copyright
11* notice, this list of conditions and the following disclaimer in the
12* documentation and/or other materials provided with the distribution.
13* * Neither the name of
14* Vintela, Inc.,
15* nor Novell, Inc.,
16* nor the names of its contributors or employees may be used to
17* endorse or promote products derived from this software without
18* specific prior written permission.
19*
20* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30* POSSIBILITY OF SUCH DAMAGE.
31*******************************************************************************/
32
33
38#ifndef BLOCXX_COMMON_FWD_HPP_INCLUDE_GUARD_
39#define BLOCXX_COMMON_FWD_HPP_INCLUDE_GUARD_
40#include "blocxx/BLOCXX_config.h"
41#include "blocxx/ArrayFwd.hpp"
43
44// Yeah I know this is forbidden by the standard, but what am I gonna do? #include <algorithm> ? I think not.
45// If it causes a problem on some compiler, just #ifdef a fix in.
46#ifdef BLOCXX_WIN32
47namespace std
48{
49 template <typename T> struct less;
50}
51#else
52namespace std
53{
54 template <typename T> class less;
55}
56#endif
57
58namespace BLOCXX_NAMESPACE
59{
60
61struct LogMessage;
62
63class BLOCXX_COMMON_API Logger;
65
66class BLOCXX_COMMON_API LogAppender;
68
69class BLOCXX_COMMON_API MultiAppender;
71
72class String;
74
75class Char16;
77
78template <class Key, class T, class Compare>
80
81template<class Key, class T, class Compare = SortedVectorMapDataCompare<Key, T, std::less<Key> > >
82class SortedVectorMap;
83
84class StringBuffer;
85
86class DateTime;
87
88template <class T> class Enumeration;
90
91class Thread;
93
94class ThreadPool;
96
97class Bool;
99
101
103class Mutex;
104
105class UnnamedPipe;
107
108class File;
109
110class MD5;
111
114
115class SelectableIFC;
117
120
121class Socket;
122
123class SocketBaseImpl;
125
126class ServerSocket;
127
128class TempFileStream;
129
130class Runnable;
132
133class ThreadCounter;
135
138
139class CmdLineParser;
141
142//class PopenStreams;
143
144class Timeout;
145class TimeoutTimer;
146
147class SSLServerCtx;
149
150class SSLClientCtx;
152
153class SSLTrustStore;
155
156class SharedLibrary;
158
159class Process;
161
162namespace Exec
163{
164 class PreExec;
165}
166
167#ifdef BLOCXX_ENABLE_TEST_HOOKS
169class ExecMockObject;
170#endif
171
172#ifdef BLOCXX_WIN32
173template class BLOCXX_COMMON_API Array<String>;
174#endif
175
176} // end namespace BLOCXX_NAMESPACE
177
178#endif
179
Array<> wraps std::vector<> in COWReference<> adding ref counting and copy on write capability.
Definition: Array.hpp:66
The Bool class is an abstraction for the boolean data type.
Definition: Bool.hpp:57
The Char16 class is an abstraction for a double byte character.
Definition: Char16.hpp:57
Do command line parsing.
The DateTime class is an abstraction for date time data.
Definition: DateTime.hpp:81
This class is used to specify what spawn() should do between fork and exec.
Definition: Exec.hpp:106
This class can be used to modify/replace the behavior of the Exec functions.
The purpose of the File class is to provide an abstraction layer over the platform dependant function...
Definition: File.hpp:55
This class can be used to modify/replace the behavior of the FileSystem functions.
Logging interface.
Definition: Logger.hpp:87
This implementation of LogAppender is used to send a Log message to multiple LogAppenders.
Note that descriptions of what exceptions may be thrown assumes that object is used correctly,...
Note that descriptions of what exceptions may be thrown assumes that object is used correctly,...
Class for communicating with and managing a child process.
Definition: Process.hpp:62
There are two methods for creating a thread of execution in the blocxx systems.
Definition: Runnable.hpp:58
SharedLibrary is a base class for platform classes that implement the functionality of loading and qu...
SharedLibraryLoader is the base class for a platform class for loading shared libraries.
This String class is an abstract data type that represents as NULL terminated string of characters.
Definition: String.hpp:67
TempFileStream is an iostream that uses an underlying temp file to hold its content to reduce memory ...
Descriptions of exceptions thrown assume that the object is used correctly, i.e., method precondition...
Definition: Thread.hpp:67
The ThreadPool class is used to coordinate a group of threads.
Definition: ThreadPool.hpp:64
A timeout can be absolute, which means that it will happen at the specified DateTime.
Definition: Timeout.hpp:56
A TimeoutTimer is used by an algorithm to determine when a timeout has expired.
Abstract interface for an UnnamedPipe.
Definition: UnnamedPipe.hpp:61
Taken from RFC 1321.
Enumeration< String > StringEnumeration
Definition: CommonFwd.hpp:89
IntrusiveReference< SocketBaseImpl > SocketBaseImplRef
Definition: CommonFwd.hpp:124
IntrusiveReference< SelectableCallbackIFC > SelectableCallbackIFCRef
Definition: CommonFwd.hpp:119
IntrusiveReference< Logger > LoggerRef
Definition: CommonFwd.hpp:64
Array< Char16 > Char16Array
Definition: CommonFwd.hpp:76
IntrusiveReference< SSLServerCtx > SSLServerCtxRef
Definition: CommonFwd.hpp:148
IntrusiveReference< Runnable > RunnableRef
Definition: CommonFwd.hpp:131
IntrusiveReference< UnnamedPipe > UnnamedPipeRef
Definition: CommonFwd.hpp:106
IntrusiveReference< SSLClientCtx > SSLClientCtxRef
Definition: CommonFwd.hpp:151
IntrusiveReference< ThreadDoneCallback > ThreadDoneCallbackRef
Definition: CommonFwd.hpp:137
IntrusiveReference< Thread > ThreadRef
Definition: CommonFwd.hpp:92
IntrusiveReference< Process > ProcessRef
Definition: CommonFwd.hpp:160
IntrusiveReference< MultiAppender > MultiAppenderRef
Definition: CommonFwd.hpp:70
Array< String > StringArray
Definition: CommonFwd.hpp:73
IntrusiveReference< SelectableIFC > SelectableIFCRef
Definition: CommonFwd.hpp:116
IntrusiveReference< ThreadPool > ThreadPoolRef
Definition: CommonFwd.hpp:95
Array< Bool > BoolArray
Definition: CommonFwd.hpp:98
IntrusiveReference< ThreadCounter > ThreadCounterRef
Definition: CommonFwd.hpp:134
IntrusiveReference< LogAppender > LogAppenderRef
Definition: CommonFwd.hpp:67
IntrusiveReference< SSLTrustStore > SSLTrustStoreRef
Definition: CommonFwd.hpp:154
IntrusiveReference< SharedLibrary > SharedLibraryRef
Definition: CommonFwd.hpp:157
IntrusiveReference< SharedLibraryLoader > SharedLibraryLoaderRef
Definition: CommonFwd.hpp:113