OSGAttachmentContainerFieldTraits.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002  *                                OpenSG                                     *
00003  *                                                                           *
00004  *                                                                           *
00005  *                   Copyright (C) 2007 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 #ifndef _OSGATTACHMENTCONTAINERFIELDTRAITS_H_
00040 #define _OSGATTACHMENTCONTAINERFIELDTRAITS_H_
00041 #ifdef __sgi
00042 #pragma once
00043 #endif
00044 
00045 #include "OSGFieldContainerFieldTraits.h"
00046 #include "OSGDataType.h"
00047
00048 #include "OSGContainerForwards.h"
00049
00050 OSG_BEGIN_NAMESPACE
00051
00056 template <>
00057 struct FieldTraits<AttachmentContainer *>
00058     : public FieldTraitsFCPtrBase<AttachmentContainer *>
00059 {
00060     static  DataType                           _type;
00061     typedef FieldTraits<AttachmentContainer *>  Self;
00062
00063
00064     enum             { Convertible = Self::NotConvertible              };
00065
00066     static OSG_BASE_DLLMAPPING
00067                  DataType &getType      (void);
00068
00069     template<typename RefCountPolicy> inline
00070     static const Char8    *getSName(void);
00071
00072     template<typename RefCountPolicy> inline
00073     static const Char8    *getMName(void);
00074 };
00075
00076 template<> inline
00077 const Char8 *FieldTraits<AttachmentContainer *,
00078                          0                  >::getSName<RecordedRefCountPolicy>(void)
00079 {
00080     return "SFRecAttachmentContainerPtr";
00081 }
00082
00083 template<> inline
00084 const Char8 *
00085   FieldTraits<AttachmentContainer *,
00086               0                >::getSName<UnrecordedRefCountPolicy>(void)
00087 {
00088     return "SFUnrecAttachmentContainerPtr";
00089 }
00090
00091 template<> inline
00092 const Char8 *
00093   FieldTraits<AttachmentContainer *,
00094               0                     >::getSName<WeakRefCountPolicy>(void)
00095 {
00096     return "SFWeakAttachmentContainerPtr";
00097 }
00098
00099 template<> inline
00100 const Char8 *
00101   FieldTraits<AttachmentContainer *,
00102               0                     >::getSName<NoRefCountPolicy>(void)
00103 {
00104     return "SFUnrefdAttachmentContainerPtr";
00105 }
00106
00107
00108
00109 template<> inline
00110 const Char8 *
00111   FieldTraits<AttachmentContainer *,
00112               0                  >::getMName<RecordedRefCountPolicy>(void)
00113 {
00114     return "MFRecAttachmentContainerPtr";
00115 }
00116
00117 template<> inline
00118 const Char8 *
00119   FieldTraits<AttachmentContainer *,
00120               0                >::getMName<UnrecordedRefCountPolicy>(void)
00121 {
00122     return "MFUnrecAttachmentContainerPtr";
00123 }
00124
00125 template<> inline
00126 const Char8 *
00127   FieldTraits<AttachmentContainer *,
00128               0                     >::getMName<WeakRefCountPolicy>(void)
00129 {
00130     return "MFWeakAttachmentContainerPtr";
00131 }
00132
00133 template<> inline
00134 const Char8 *
00135   FieldTraits<AttachmentContainer *,
00136               0                     >::getMName<NoRefCountPolicy>(void)
00137 {
00138     return "MFUnrefdAttachmentContainerPtr";
00139 }
00140
00141 OSG_END_NAMESPACE
00142
00143 #endif /* _OSGATTACHMENTCONTAINERFIELDTRAITS_H_ */