Equalizer
1.4.1
|
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 class Zeroconf; 00062 struct CompressorInfo; 00063 template< class Q > class WorkerThread; 00064 struct ObjectVersion; 00065 struct Packet; 00066 struct QueueItemPacket; 00067 00068 using lunchbox::UUID; 00069 using lunchbox::uint128_t; 00070 using lunchbox::Strings; 00071 using lunchbox::StringsCIter; 00072 00073 typedef UUID NodeID; 00074 00076 typedef lunchbox::RefPtr< Node > NodePtr; 00078 typedef lunchbox::RefPtr< const Node > ConstNodePtr; 00080 typedef lunchbox::RefPtr< LocalNode > LocalNodePtr; 00082 typedef lunchbox::RefPtr< const LocalNode > ConstLocalNodePtr; 00084 typedef lunchbox::RefPtr< Connection > ConnectionPtr; 00086 typedef lunchbox::RefPtr< ConnectionDescription > ConnectionDescriptionPtr; 00087 00089 typedef std::vector< NodePtr > Nodes; 00091 typedef Nodes::iterator NodesIter; 00093 typedef Nodes::const_iterator NodesCIter; 00094 00096 typedef std::vector< Object* > Objects; 00098 typedef Objects::iterator ObjectsIter; 00100 typedef Objects::const_iterator ObjectsCIter; 00101 00102 typedef std::vector< Barrier* > Barriers; 00103 typedef Barriers::iterator BarriersIter; 00104 typedef Barriers::const_iterator BarriersCIter; 00105 00107 typedef std::vector< ConnectionPtr > Connections; 00109 typedef Connections::const_iterator ConnectionsCIter; 00111 typedef Connections::iterator ConnectionsIter; 00112 00114 typedef std::vector< ConnectionDescriptionPtr > ConnectionDescriptions; 00116 typedef ConnectionDescriptions::iterator ConnectionDescriptionsIter; 00118 typedef ConnectionDescriptions::const_iterator ConnectionDescriptionsCIter; 00119 00121 typedef std::vector< Command* > Commands; 00122 typedef std::deque< Command* > CommandDeque; 00123 typedef CommandDeque::const_iterator CommandDequeCIter; 00124 00125 typedef std::vector< ObjectVersion > ObjectVersions; 00126 typedef ObjectVersions::const_iterator ObjectVersionsCIter; 00127 typedef std::deque< ObjectDataIStream* > ObjectDataIStreamDeque; 00128 typedef std::vector< ObjectDataIStream* > ObjectDataIStreams; 00129 00130 typedef Commands::const_iterator CommandsCIter; 00131 00132 typedef std::vector< CompressorInfo > CompressorInfos; 00133 typedef std::vector< const CompressorInfo* > CompressorInfoPtrs; 00134 typedef std::vector< Plugin* > Plugins; 00135 00136 typedef CompressorInfos::const_iterator CompressorInfosCIter; 00137 typedef Plugins::const_iterator PluginsCIter; 00140 #ifndef EQ_2_0_API 00141 namespace base 00142 { 00143 using namespace lunchbox; 00144 using co::Error; 00145 using co::ErrorRegistry; 00146 using co::PluginRegistry; 00147 using co::Global; 00148 } 00149 #endif 00150 } 00151 00152 #endif // CO_TYPES_H