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
37
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.
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.
Taken from RFC 1321.
Enumeration< String > StringEnumeration
Definition CommonFwd.hpp:89
IntrusiveReference< SocketBaseImpl > SocketBaseImplRef
IntrusiveReference< SelectableCallbackIFC > SelectableCallbackIFCRef
IntrusiveReference< Logger > LoggerRef
Definition CommonFwd.hpp:64
Array< Char16 > Char16Array
Definition CommonFwd.hpp:76
IntrusiveReference< SSLServerCtx > SSLServerCtxRef
IntrusiveReference< Runnable > RunnableRef
IntrusiveReference< UnnamedPipe > UnnamedPipeRef
IntrusiveReference< SSLClientCtx > SSLClientCtxRef
IntrusiveReference< ThreadDoneCallback > ThreadDoneCallbackRef
IntrusiveReference< Thread > ThreadRef
Definition CommonFwd.hpp:92
IntrusiveReference< Process > ProcessRef
IntrusiveReference< MultiAppender > MultiAppenderRef
Definition CommonFwd.hpp:70
Array< String > StringArray
Definition CommonFwd.hpp:73
IntrusiveReference< SelectableIFC > SelectableIFCRef
IntrusiveReference< ThreadPool > ThreadPoolRef
Definition CommonFwd.hpp:95
Array< Bool > BoolArray
Definition CommonFwd.hpp:98
IntrusiveReference< ThreadCounter > ThreadCounterRef
IntrusiveReference< LogAppender > LogAppenderRef
Definition CommonFwd.hpp:67
IntrusiveReference< SSLTrustStore > SSLTrustStoreRef
IntrusiveReference< SharedLibrary > SharedLibraryRef
IntrusiveReference< SharedLibraryLoader > SharedLibraryLoaderRef