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
47 namespace std
48 {
49  template <typename T> struct less;
50 }
51 #else
52 namespace std
53 {
54  template <typename T> class less;
55 }
56 #endif
57 
58 namespace BLOCXX_NAMESPACE
59 {
60 
61 struct LogMessage;
62 
63 class BLOCXX_COMMON_API Logger;
65 
66 class BLOCXX_COMMON_API LogAppender;
68 
69 class BLOCXX_COMMON_API MultiAppender;
71 
72 class String;
74 
75 class Char16;
77 
78 template <class Key, class T, class Compare>
80 
81 template<class Key, class T, class Compare = SortedVectorMapDataCompare<Key, T, std::less<Key> > >
83 
84 class StringBuffer;
85 
86 class DateTime;
87 
88 template <class T> class Enumeration;
90 
91 class Thread;
93 
94 class ThreadPool;
96 
97 class Bool;
98 typedef Array<Bool> BoolArray;
99 
101 
102 class NonRecursiveMutex;
103 class Mutex;
104 
107 
108 class File;
109 
110 class MD5;
111 
114 
117 
120 
121 class Socket;
122 
125 
126 class ServerSocket;
127 
128 class TempFileStream;
129 
130 class Runnable;
132 
135 
138 
139 class CmdLineParser;
141 
142 //class PopenStreams;
143 
144 class Timeout;
145 class TimeoutTimer;
146 
149 
152 
153 class SSLTrustStore;
155 
158 
159 class Process;
161 
162 namespace Exec
163 {
164  class PreExec;
165 }
166 
167 #ifdef BLOCXX_ENABLE_TEST_HOOKS
169 class ExecMockObject;
170 #endif
171 
172 #ifdef BLOCXX_WIN32
173 template class BLOCXX_COMMON_API Array<String>;
174 #endif
175 
176 } // end namespace BLOCXX_NAMESPACE
177 
178 #endif
179 
Taken from RFC 1321.
A TimeoutTimer is used by an algorithm to determine when a timeout has expired.
The Bool class is an abstraction for the boolean data type.
Definition: Bool.hpp:56
This class can be used to modify/replace the behavior of the Exec functions.
Class for communicating with and managing a child process.
Definition: Process.hpp:61
Descriptions of exceptions thrown assume that the object is used correctly, i.e., method precondition...
Definition: Thread.hpp:66
Abstract interface for an UnnamedPipe.
Definition: UnnamedPipe.hpp:60
IntrusiveReference< SharedLibraryLoader > SharedLibraryLoaderRef
Definition: CommonFwd.hpp:112
IntrusiveReference< LogAppender > LogAppenderRef
Definition: CommonFwd.hpp:67
This String class is an abstract data type that represents as NULL terminated string of characters...
Definition: String.hpp:66
IntrusiveReference< MultiAppender > MultiAppenderRef
Definition: CommonFwd.hpp:70
IntrusiveReference< SelectableCallbackIFC > SelectableCallbackIFCRef
Definition: CommonFwd.hpp:118
IntrusiveReference< SocketBaseImpl > SocketBaseImplRef
Definition: CommonFwd.hpp:123
IntrusiveReference< SelectableIFC > SelectableIFCRef
Definition: CommonFwd.hpp:115
This class is used to specify what spawn() should do between fork and exec.
Definition: Exec.hpp:105
IntrusiveReference< ThreadPool > ThreadPoolRef
Definition: CommonFwd.hpp:94
Enumeration< String > StringEnumeration
Definition: CommonFwd.hpp:88
IntrusiveReference< ThreadDoneCallback > ThreadDoneCallbackRef
Definition: CommonFwd.hpp:136
Array< String > StringArray
Definition: CommonFwd.hpp:72
The ThreadPool class is used to coordinate a group of threads.
Definition: ThreadPool.hpp:63
IntrusiveReference< SSLServerCtx > SSLServerCtxRef
Definition: CommonFwd.hpp:147
SharedLibraryLoader is the base class for a platform class for loading shared libraries.
SharedLibrary is a base class for platform classes that implement the functionality of loading and qu...
TempFileStream is an iostream that uses an underlying temp file to hold its content to reduce memory ...
This implementation of LogAppender is used to send a Log message to multiple LogAppenders.
This class can be used to modify/replace the behavior of the FileSystem functions.
A timeout can be absolute, which means that it will happen at the specified DateTime.
Definition: Timeout.hpp:55
There are two methods for creating a thread of execution in the blocxx systems.
Definition: Runnable.hpp:57
IntrusiveReference< Logger > LoggerRef
Definition: CommonFwd.hpp:64
IntrusiveReference< SSLClientCtx > SSLClientCtxRef
Definition: CommonFwd.hpp:150
The purpose of the File class is to provide an abstraction layer over the platform dependant function...
Definition: File.hpp:54
Array< Bool > BoolArray
Definition: CommonFwd.hpp:97
IntrusiveReference< SharedLibrary > SharedLibraryRef
Definition: CommonFwd.hpp:156
Do command line parsing.
Logging interface.
Definition: Logger.hpp:86
IntrusiveReference< ThreadCounter > ThreadCounterRef
Definition: CommonFwd.hpp:133
The DateTime class is an abstraction for date time data.
Definition: DateTime.hpp:80
IntrusiveReference< UnnamedPipe > UnnamedPipeRef
Definition: CommonFwd.hpp:105
IntrusiveReference< Runnable > RunnableRef
Definition: CommonFwd.hpp:130
Array< Char16 > Char16Array
Definition: CommonFwd.hpp:75
The Char16 class is an abstraction for a double byte character.
Definition: Char16.hpp:56
Note that descriptions of what exceptions may be thrown assumes that object is used correctly...
IntrusiveReference< Thread > ThreadRef
Definition: CommonFwd.hpp:91
Note that descriptions of what exceptions may be thrown assumes that object is used correctly...
IntrusiveReference< Process > ProcessRef
Definition: CommonFwd.hpp:159
IntrusiveReference< SSLTrustStore > SSLTrustStoreRef
Definition: CommonFwd.hpp:153