blocxx

CommonFwd.hpp

Go to the documentation of this file.
00001 /*******************************************************************************
00002 * Copyright (C) 2005, Vintela, Inc. All rights reserved.
00003 * Copyright (C) 2006, Novell, Inc. All rights reserved.
00004 * 
00005 * Redistribution and use in source and binary forms, with or without
00006 * modification, are permitted provided that the following conditions are met:
00007 * 
00008 *     * Redistributions of source code must retain the above copyright notice,
00009 *       this list of conditions and the following disclaimer.
00010 *     * Redistributions in binary form must reproduce the above copyright
00011 *       notice, this list of conditions and the following disclaimer in the
00012 *       documentation and/or other materials provided with the distribution.
00013 *     * Neither the name of 
00014 *       Vintela, Inc., 
00015 *       nor Novell, Inc., 
00016 *       nor the names of its contributors or employees may be used to 
00017 *       endorse or promote products derived from this software without 
00018 *       specific prior written permission.
00019 * 
00020 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00022 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00023 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00024 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00025 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00026 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00027 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00028 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00029 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00030 * POSSIBILITY OF SUCH DAMAGE.
00031 *******************************************************************************/
00032 
00033 
00038 #ifndef BLOCXX_COMMON_FWD_HPP_INCLUDE_GUARD_
00039 #define BLOCXX_COMMON_FWD_HPP_INCLUDE_GUARD_
00040 #include "blocxx/BLOCXX_config.h"
00041 #include "blocxx/ArrayFwd.hpp"
00042 #include "blocxx/IntrusiveReference.hpp"
00043 
00044 // Yeah I know this is forbidden by the standard, but what am I gonna do?  #include <algorithm> ? I think not.
00045 // If it causes a problem on some compiler, just #ifdef a fix in.
00046 #ifdef BLOCXX_WIN32
00047 namespace std
00048 {
00049    template <typename T> struct less;
00050 }
00051 #else
00052 namespace std
00053 {
00054    template <typename T> class less;
00055 }
00056 #endif
00057 
00058 namespace BLOCXX_NAMESPACE
00059 {
00060 
00061 struct LogMessage;
00062 
00063 class BLOCXX_COMMON_API Logger;
00064 typedef IntrusiveReference<Logger> LoggerRef;
00065 
00066 class BLOCXX_COMMON_API LogAppender;
00067 typedef IntrusiveReference<LogAppender> LogAppenderRef;
00068 
00069 class BLOCXX_COMMON_API MultiAppender;
00070 typedef IntrusiveReference<MultiAppender> MultiAppenderRef;
00071 
00072 class String;
00073 typedef Array<String> StringArray;
00074 
00075 class Char16;
00076 typedef Array<Char16> Char16Array;
00077 
00078 template <class Key, class T, class Compare>
00079 class SortedVectorMapDataCompare;
00080 
00081 template<class Key, class T, class Compare = SortedVectorMapDataCompare<Key, T, std::less<Key> > >
00082 class SortedVectorMap;
00083 
00084 class StringBuffer;
00085 
00086 class DateTime;
00087 
00088 template <class T> class Enumeration;
00089 typedef Enumeration<String> StringEnumeration;
00090 
00091 class Thread;
00092 typedef IntrusiveReference<Thread> ThreadRef;
00093 
00094 class ThreadPool;
00095 typedef IntrusiveReference<ThreadPool> ThreadPoolRef;
00096 
00097 class Bool;
00098 typedef Array<Bool>              BoolArray;
00099 
00100 class NonRecursiveMutexLock;
00101 
00102 class NonRecursiveMutex;
00103 class Mutex;
00104 
00105 class UnnamedPipe;
00106 typedef IntrusiveReference<UnnamedPipe> UnnamedPipeRef;
00107 
00108 class File;
00109 
00110 class MD5;
00111 
00112 class SharedLibraryLoader;
00113 typedef IntrusiveReference<SharedLibraryLoader> SharedLibraryLoaderRef;
00114 
00115 class SelectableIFC;
00116 typedef IntrusiveReference<SelectableIFC> SelectableIFCRef;
00117 
00118 class SelectableCallbackIFC;
00119 typedef IntrusiveReference<SelectableCallbackIFC> SelectableCallbackIFCRef;
00120 
00121 class Socket;
00122 
00123 class SocketBaseImpl;
00124 typedef IntrusiveReference<SocketBaseImpl> SocketBaseImplRef;
00125 
00126 class ServerSocket;
00127 
00128 class TempFileStream;
00129 
00130 class Runnable;
00131 typedef IntrusiveReference<Runnable> RunnableRef;
00132 
00133 class ThreadCounter;
00134 typedef IntrusiveReference<ThreadCounter> ThreadCounterRef;
00135 
00136 class ThreadDoneCallback;
00137 typedef IntrusiveReference<ThreadDoneCallback> ThreadDoneCallbackRef;
00138 
00139 class CmdLineParser;
00140 class CmdLineParserException;
00141 
00142 //class PopenStreams;
00143 
00144 class Timeout;
00145 class TimeoutTimer;
00146 
00147 class SSLServerCtx;
00148 typedef IntrusiveReference<SSLServerCtx> SSLServerCtxRef; 
00149 
00150 class SSLClientCtx;
00151 typedef IntrusiveReference<SSLClientCtx> SSLClientCtxRef; 
00152 
00153 class SSLTrustStore;
00154 typedef IntrusiveReference<SSLTrustStore> SSLTrustStoreRef; 
00155 
00156 class SharedLibrary;
00157 typedef IntrusiveReference<SharedLibrary> SharedLibraryRef;
00158 
00159 class Process;
00160 typedef IntrusiveReference<Process> ProcessRef;
00161 
00162 namespace Exec
00163 {
00164    class PreExec;
00165 }
00166 
00167 #ifdef BLOCXX_ENABLE_TEST_HOOKS
00168 class FileSystemMockObject;
00169 class ExecMockObject;
00170 #endif
00171 
00172 #ifdef BLOCXX_WIN32
00173 template class BLOCXX_COMMON_API Array<String>;
00174 #endif
00175 
00176 } // end namespace BLOCXX_NAMESPACE
00177 
00178 #endif
00179