OSGAlgorithmFields.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002  *                                OpenSG                                     *
00003  *                                                                           *
00004  *                                                                           *
00005  *               Copyright (C) 2000-2006 by the OpenSG Forum                 *
00006  *                                                                           *
00007  *                            www.opensg.org                                 *
00008  *                                                                           *
00009  *   contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de          *
00010  *                                                                           *
00011 \*---------------------------------------------------------------------------*/
00012 /*---------------------------------------------------------------------------*\
00013  *                                License                                    *
00014  *                                                                           *
00015  * This library is free software; you can redistribute it and/or modify it   *
00016  * under the terms of the GNU Library General Public License as published    *
00017  * by the Free Software Foundation, version 2.                               *
00018  *                                                                           *
00019  * This library is distributed in the hope that it will be useful, but       *
00020  * WITHOUT ANY WARRANTY; without even the implied warranty of                *
00021  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *
00022  * Library General Public License for more details.                          *
00023  *                                                                           *
00024  * You should have received a copy of the GNU Library General Public         *
00025  * License along with this library; if not, write to the Free Software       *
00026  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                 *
00027  *                                                                           *
00028 \*---------------------------------------------------------------------------*/
00029 /*---------------------------------------------------------------------------*\
00030  *                                Changes                                    *
00031  *                                                                           *
00032  *                                                                           *
00033  *                                                                           *
00034  *                                                                           *
00035  *                                                                           *
00036  *                                                                           *
00037 \*---------------------------------------------------------------------------*/
00038
00039 /*****************************************************************************\
00040  *****************************************************************************
00041  **                                                                         **
00042  **                  This file is automatically generated.                  **
00043  **                                                                         **
00044  **          Any changes made to this file WILL be lost when it is          **
00045  **           regenerated, which can become necessary at any time.          **
00046  **                                                                         **
00047  *****************************************************************************
00048 \*****************************************************************************/
00049
00050
00051 #ifndef _OSGALGORITHMFIELDS_H_
00052 #define _OSGALGORITHMFIELDS_H_
00053 #ifdef __sgi
00054 #pragma once
00055 #endif
00056 
00057 #include "OSGConfig.h"
00058 #include "OSGGroupDef.h"
00059
00060 #include "OSGFieldContainerFields.h"
00061 #include "OSGPointerSField.h"
00062 #include "OSGPointerMField.h"
00063
00064
00065 OSG_BEGIN_NAMESPACE
00066
00067 class Algorithm;
00068
00069 OSG_GEN_CONTAINERPTR(Algorithm);
00070
00074 template <>
00075 struct FieldTraits<Algorithm *> :
00076     public FieldTraitsFCPtrBase<Algorithm *>
00077 {
00078   private:
00079
00080     static DataType             _type;
00081
00082   public:
00083
00084     typedef FieldTraits<Algorithm *>  Self;
00085
00086     enum                        { Convertible = NotConvertible };
00087
00088     static OSG_GROUP_DLLMAPPING DataType &getType(void);
00089
00090     template<typename RefCountPolicy> inline
00091     static const Char8    *getSName     (void);
00092
00093 //    static const char *getSName(void) { return "SFAlgorithmPtr"; }
00094     template<typename RefCountPolicy> inline
00095     static const Char8    *getMName     (void);
00096
00097 //    static const char *getMName(void) { return "MFAlgorithmPtr"; }
00098 };
00099
00100 template<> inline
00101 const Char8 *FieldTraits<Algorithm *, 0>::getSName<RecordedRefCountPolicy>(void)
00102 {
00103     return "SFRecAlgorithmPtr";
00104 }
00105
00106 template<> inline
00107 const Char8 *FieldTraits<Algorithm *, 0>::getSName<UnrecordedRefCountPolicy>(void)
00108 {
00109     return "SFUnrecAlgorithmPtr";
00110 }
00111
00112 template<> inline
00113 const Char8 *FieldTraits<Algorithm *, 0>::getSName<WeakRefCountPolicy>(void)
00114 {
00115     return "SFWeakAlgorithmPtr";
00116 }
00117
00118 template<> inline
00119 const Char8 *FieldTraits<Algorithm *, 0>::getSName<NoRefCountPolicy>(void)
00120 {
00121     return "SFUnrefdAlgorithmPtr";
00122 }
00123
00124 template<> inline
00125 const Char8 *FieldTraits<Algorithm *, 0>::getMName<RecordedRefCountPolicy>(void)
00126 {
00127     return "MFRecAlgorithmPtr";
00128 }
00129
00130 template<> inline
00131 const Char8 *FieldTraits<Algorithm *, 0>::getMName<UnrecordedRefCountPolicy>(void)
00132 {
00133     return "MFUnrecAlgorithmPtr";
00134 }
00135
00136 template<> inline
00137 const Char8 *FieldTraits<Algorithm *, 0>::getMName<WeakRefCountPolicy>(void)
00138 {
00139     return "MFWeakAlgorithmPtr";
00140 }
00141
00142 template<> inline
00143 const Char8 *FieldTraits<Algorithm *, 0>::getMName<NoRefCountPolicy>(void)
00144 {
00145     return "MFUnrefdAlgorithmPtr";
00146 }
00147
00148
00149 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00150 
00151 typedef PointerSField<Algorithm *,
00152                       RecordedRefCountPolicy  > SFRecAlgorithmPtr;
00154 typedef PointerSField<Algorithm *,
00155                       UnrecordedRefCountPolicy> SFUnrecAlgorithmPtr;
00157 typedef PointerSField<Algorithm *,
00158                       WeakRefCountPolicy      > SFWeakAlgorithmPtr;
00160 typedef PointerSField<Algorithm *,
00161                       NoRefCountPolicy        > SFUncountedAlgorithmPtr;
00162
00163
00165 typedef PointerMField<Algorithm *,
00166                       RecordedRefCountPolicy  > MFRecAlgorithmPtr;
00168 typedef PointerMField<Algorithm *,
00169                       UnrecordedRefCountPolicy> MFUnrecAlgorithmPtr;
00171 typedef PointerMField<Algorithm *,
00172                       WeakRefCountPolicy      > MFWeakAlgorithmPtr;
00174 typedef PointerMField<Algorithm *,
00175                       NoRefCountPolicy        > MFUncountedAlgorithmPtr;
00176
00177
00178
00179
00180 #else // these are the doxygen hacks
00181 
00183 struct SFRecAlgorithmPtr :
00184     public PointerSField<Algorithm *,
00185                          RecordedRefCountPolicy> {};
00187 struct SFUnrecAlgorithmPtr :
00188     public PointerSField<Algorithm *,
00189                          UnrecordedRefCountPolicy> {};
00191 struct SFWeakAlgorithmPtr :
00192     public PointerSField<Algorithm *,
00193                          WeakRefCountPolicy> {};
00195 struct SFUncountedAlgorithmPtr :
00196     public PointerSField<Algorithm *,
00197                          NoRefCountPolicy> {};
00198
00199
00201 struct MFRecAlgorithmPtr :
00202     public PointerMField<Algorithm *,
00203                          RecordedRefCountPolicy  > {};
00205 struct MFUnrecAlgorithmPtr :
00206     public PointerMField<Algorithm *,
00207                          UnrecordedRefCountPolicy> {};
00209 struct MFWeakAlgorithmPtr :
00210     public PointerMField<Algorithm *,
00211                          WeakRefCountPolicy      > {};
00213 struct MFUncountedAlgorithmPtr :
00214     public PointerMField<Algorithm *,
00215                          NoRefCountPolicy        > {};
00216
00217
00218
00219 #endif // these are the doxygen hacks
00220 
00221 OSG_END_NAMESPACE
00222
00223 #endif /* _OSGALGORITHMFIELDS_H_ */