|
Equalizer
1.3.1-git
|
00001 00002 /* Copyright (c) 2006-2012, Stefan Eilemann <eile@equalizergraphics.com> 00003 * 00004 * This library is free software; you can redistribute it and/or modify it under 00005 * the terms of the GNU Lesser General Public License version 2.1 as published 00006 * by the Free Software Foundation. 00007 * 00008 * This library is distributed in the hope that it will be useful, but WITHOUT 00009 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00010 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 00011 * details. 00012 * 00013 * You should have received a copy of the GNU Lesser General Public License 00014 * along with this library; if not, write to the Free Software Foundation, Inc., 00015 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00016 */ 00017 00018 #ifndef CO_TYPES_H 00019 #define CO_TYPES_H 00020 00021 #include <co/defines.h> 00022 #include <co/error.h> 00023 #include <lunchbox/refPtr.h> 00024 #include <lunchbox/types.h> 00025 00026 #include <deque> 00027 #include <vector> 00028 00029 namespace co 00030 { 00031 00032 #define CO_SEPARATOR '#' 00033 00034 #define EQ_INSTANCE_MAX LB_MAX_UINT32 //!< The biggest instance id possible 00035 #define EQ_INSTANCE_NONE 0xfffffffdu //!< None/NULL identifier 00036 #define EQ_INSTANCE_INVALID 0xfffffffeu //!< Invalid/unset instance identifier 00037 #define EQ_INSTANCE_ALL 0xffffffffu //!< all object instances 00038 00039 class Barrier; 00040 class CPUCompressor; 00041 class Command; 00042 class CommandQueue; 00043 class Connection; 00044 class ConnectionDescription; 00045 class ConnectionListener; 00046 class DataIStream; 00047 class DataOStream; 00048 class ErrorRegistry; 00049 class Global; 00050 class LocalNode; 00051 class Node; 00052 class Object; 00053 class ObjectFactory; 00054 class ObjectHandler; 00055 class ObjectDataIStream; 00056 class Plugin; 00057 class PluginRegistry; 00058 class QueueMaster; 00059 class QueueSlave; 00060 class Serializable; 00061 struct CompressorInfo; 00062 template< class Q > class WorkerThread; 00063 struct ObjectVersion; 00064 struct Packet; 00065 struct QueueItemPacket; 00066 00067 using lunchbox::UUID; 00068 using lunchbox::uint128_t; 00069 using lunchbox::Strings; 00070 00071 typedef UUID NodeID; 00072 00074 typedef lunchbox::RefPtr< Node > NodePtr; 00076 typedef lunchbox::RefPtr< LocalNode > LocalNodePtr; 00078 typedef lunchbox::RefPtr< Connection > ConnectionPtr; 00080 typedef lunchbox::RefPtr< ConnectionDescription > ConnectionDescriptionPtr; 00081 00083 typedef std::vector< NodePtr > Nodes; 00085 typedef Nodes::iterator NodesIter; 00087 typedef Nodes::const_iterator NodesCIter; 00088 00090 typedef std::vector< Object* > Objects; 00092 typedef Objects::iterator ObjectsIter; 00094 typedef Objects::const_iterator ObjectsCIter; 00095 00096 typedef std::vector< Barrier* > Barriers; 00097 typedef Barriers::iterator BarriersIter; 00098 typedef Barriers::const_iterator BarriersCIter; 00099 00101 typedef std::vector< ConnectionPtr > Connections; 00103 typedef Connections::const_iterator ConnectionsCIter; 00105 typedef Connections::iterator ConnectionsIter; 00106 00108 typedef std::vector< ConnectionDescriptionPtr > ConnectionDescriptions; 00110 typedef ConnectionDescriptions::iterator ConnectionDescriptionsIter; 00112 typedef ConnectionDescriptions::const_iterator ConnectionDescriptionsCIter; 00113 00115 typedef std::vector< Command* > Commands; 00116 typedef std::deque< Command* > CommandDeque; 00117 typedef CommandDeque::const_iterator CommandDequeCIter; 00118 00119 typedef std::vector< ObjectVersion > ObjectVersions; 00120 typedef ObjectVersions::const_iterator ObjectVersionsCIter; 00121 typedef std::deque< ObjectDataIStream* > ObjectDataIStreamDeque; 00122 typedef std::vector< ObjectDataIStream* > ObjectDataIStreams; 00123 00124 typedef Commands::const_iterator CommandsCIter; 00125 00126 typedef std::vector< CompressorInfo > CompressorInfos; 00127 typedef std::vector< const CompressorInfo* > CompressorInfoPtrs; 00128 typedef std::vector< Plugin* > Plugins; 00129 00130 typedef CompressorInfos::const_iterator CompressorInfosCIter; 00131 typedef Plugins::const_iterator PluginsCIter; 00134 #ifndef EQ_2_0_API 00135 namespace base 00136 { 00137 using namespace lunchbox; 00138 using co::Error; 00139 using co::ErrorRegistry; 00140 using co::PluginRegistry; 00141 using co::Global; 00142 } 00143 #endif 00144 } 00145 00146 #endif // CO_TYPES_H
1.3.1-git by
1.8.0