1 /*---------------------------------------------------------------------------*\
5 * Copyright (C) 2000-2013 by the OpenSG Forum *
10 @!AuthorsCommentText!@
12 * contact: dirk@opensg.org, gerrit.voss@vossg.org, carsten_neumann@gmx.net *
15 \*---------------------------------------------------------------------------*/
16 /*---------------------------------------------------------------------------*\
19 * This library is free software; you can redistribute it and/or modify it *
20 * under the terms of the GNU Library General Public License as published *
21 * by the Free Software Foundation, version 2. *
23 * This library is distributed in the hope that it will be useful, but *
24 * WITHOUT ANY WARRANTY; without even the implied warranty of *
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
26 * Library General Public License for more details. *
28 * You should have received a copy of the GNU Library General Public *
29 * License along with this library; if not, write to the Free Software *
30 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
32 \*---------------------------------------------------------------------------*/
33 /*---------------------------------------------------------------------------*\
41 \*---------------------------------------------------------------------------*/
43 /*****************************************************************************\
44 *****************************************************************************
46 ** This file is automatically generated. **
48 ** Any changes made to this file WILL be lost when it is **
49 ** regenerated, which can become necessary at any time. **
51 *****************************************************************************
52 \*****************************************************************************/
55 #ifndef _OSG@!CLASSNAME!@FIELDS_H_
56 #define _OSG@!CLASSNAME!@FIELDS_H_
61 #include "@!HeaderPrefix!@@!Package!@Config.h"
63 #include "OSG@!Libname!@Def.h"
66 #include "@!HeaderPrefix!@OSGFieldContainerFields.h"
67 #include "@!HeaderPrefix!@OSGPointerSField.h"
68 #include "@!HeaderPrefix!@OSGPointerMField.h"
71 @!LIBNAMESPACE!@_BEGIN_NAMESPACE
76 OSG_GEN_CONTAINERPTR(@!Classname!@);
77 @@if inExternalNamespace
79 @!LIBNAMESPACE!@_END_NAMESPACE
83 @!LIBNAMESPACE!@_IMPORT_NAMESPACE;
86 /*! \ingroup @!DocGroupBase!@FieldTraits
87 \ingroup GrpLibOSG@!Libname!@
91 struct FieldTraits<@!Classname!@ *, @!nsConst!@> :
92 public FieldTraitsFCPtrBase<@!Classname!@ *, @!nsConst!@>
96 static PointerType _type;
100 typedef FieldTraits<@!Classname!@ *, @!nsConst!@> Self;
102 enum { Convertible = NotConvertible };
105 static OSG_@!LIBNAME!@_DLLMAPPING DataType &getType(void);
106 @@else // isInLibrary
107 static DataType &getType(void);
108 @@endif // isInLibrary
111 template<typename RefCountPolicy> inline
112 static const Char8 *getSName (void);
114 @@endif // SFPointerField
116 template<typename RefCountPolicy> inline
117 static const Char8 *getMName (void);
119 @@endif // MFPointerField
124 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@>::getSName<RecordedRefCountPolicy>(void)
126 return "SFRec@!Classname!@Ptr";
130 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@>::getSName<UnrecordedRefCountPolicy>(void)
132 return "SFUnrec@!Classname!@Ptr";
136 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@>::getSName<WeakRefCountPolicy>(void)
138 return "SFWeak@!Classname!@Ptr";
142 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@>::getSName<NoRefCountPolicy>(void)
144 return "SFUnrefd@!Classname!@Ptr";
150 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@>::getMName<RecordedRefCountPolicy>(void)
152 return "MFRec@!Classname!@Ptr";
156 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@>::getMName<UnrecordedRefCountPolicy>(void)
158 return "MFUnrec@!Classname!@Ptr";
162 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@>::getMName<WeakRefCountPolicy>(void)
164 return "MFWeak@!Classname!@Ptr";
168 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@>::getMName<NoRefCountPolicy>(void)
170 return "MFUnrefd@!Classname!@Ptr";
177 /*! \ingroup @!DocGroupBase!@FieldTraits
181 struct FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ChildNS!@> :
182 public FieldTraitsFCPtrBase<@!Classname!@ *, @!nsConst!@ + @!ChildNS!@>
187 typedef FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ChildNS!@> Self;
189 enum { Convertible = NotConvertible };
193 static OSG_@!LIBNAME!@_DLLMAPPING DataType &getType(void);
194 @@else // isInLibrary
195 static DataType &getType(void);
196 @@endif // isInLibrary
197 @@endif // PointerField
200 template<typename RefCountPolicy> inline
201 static const Char8 *getSName (void);
202 @@endif // SFPointerField
205 template<typename RefCountPolicy> inline
206 static const Char8 *getMName (void);
207 @@endif // MFPointerField
212 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ChildNS!@>::getSName<RecordedRefCountPolicy>(void)
214 return "SFRecChild@!Classname!@Ptr";
218 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ChildNS!@>::getSName<UnrecordedRefCountPolicy>(void)
220 return "SFUnrecChild@!Classname!@Ptr";
224 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ChildNS!@>::getSName<WeakRefCountPolicy>(void)
226 return "SFWeakChild@!Classname!@Ptr";
230 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ChildNS!@>::getSName<NoRefCountPolicy>(void)
232 return "SFUnrefdChild@!Classname!@Ptr";
238 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ChildNS!@>::getMName<RecordedRefCountPolicy>(void)
240 return "MFRecChild@!Classname!@Ptr";
244 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ChildNS!@>::getMName<UnrecordedRefCountPolicy>(void)
246 return "MFUnrecChild@!Classname!@Ptr";
250 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ChildNS!@>::getMName<WeakRefCountPolicy>(void)
252 return "MFWeakChild@!Classname!@Ptr";
256 const Char8 *FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ChildNS!@>::getMName<NoRefCountPolicy>(void)
258 return "MFUnrefdChild@!Classname!@Ptr";
266 /*! \ingroup @!DocGroupBase!@FieldTraits
270 struct FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ParentNS!@> :
271 public FieldTraitsFCPtrBase<@!Classname!@ *, @!nsConst!@ + @!ParentNS!@>
275 static DataType _type;
279 static const bool bIsPointerField = true;
281 typedef FieldTraits<@!Classname!@ *, @!nsConst!@ + @!ParentNS!@> Self;
284 enum { Convertible = Self::NotConvertible };
286 static OSG_@!LIBNAME!@_DLLMAPPING
287 DataType &getType (void);
289 static const Char8 *getSName(void)
291 return "SFParent@!Classname!@Ptr";
294 static const Char8 *getMName(void)
296 return "MFParent@!Classname!@Ptr";
301 @@if inExternalNamespace
304 @!LIBNAMESPACE!@_BEGIN_NAMESPACE
306 OSG_IMPORT_NAMESPACE;
309 #ifndef DOXYGEN_SHOULD_SKIP_THIS
312 /*! \ingroup @!DocGroupBase!@FieldSFields */
313 @@endif // isInLibrary
314 typedef PointerSField<@!Classname!@ *,
315 RecordedRefCountPolicy, @!nsConst!@ > SFRec@!Classname!@Ptr;
317 /*! \ingroup @!DocGroupBase!@FieldSFields */
318 @@endif // isInLibrary
319 typedef PointerSField<@!Classname!@ *,
320 UnrecordedRefCountPolicy, @!nsConst!@> SFUnrec@!Classname!@Ptr;
322 /*! \ingroup @!DocGroupBase!@FieldSFields */
323 @@endif // isInLibrary
324 typedef PointerSField<@!Classname!@ *,
325 WeakRefCountPolicy, @!nsConst!@ > SFWeak@!Classname!@Ptr;
327 /*! \ingroup @!DocGroupBase!@FieldSFields */
328 @@endif // isInLibrary
329 typedef PointerSField<@!Classname!@ *,
330 NoRefCountPolicy, @!nsConst!@ > SFUncounted@!Classname!@Ptr;
336 /*! \ingroup @!DocGroupBase!@FieldMFields */
337 @@endif // isInLibrary
338 typedef PointerMField<@!Classname!@ *,
339 RecordedRefCountPolicy, @!nsConst!@ > MFRec@!Classname!@Ptr;
341 /*! \ingroup @!DocGroupBase!@FieldMFields */
342 @@endif // isInLibrary
343 typedef PointerMField<@!Classname!@ *,
344 UnrecordedRefCountPolicy, @!nsConst!@> MFUnrec@!Classname!@Ptr;
346 /*! \ingroup @!DocGroupBase!@FieldMFields */
347 @@endif // isInLibrary
348 typedef PointerMField<@!Classname!@ *,
349 WeakRefCountPolicy, @!nsConst!@ > MFWeak@!Classname!@Ptr;
351 /*! \ingroup @!DocGroupBase!@FieldMFields */
352 @@endif // isInLibrary
353 typedef PointerMField<@!Classname!@ *,
354 NoRefCountPolicy, @!nsConst!@ > MFUncounted@!Classname!@Ptr;
361 /*! \ingroup @!DocGroupBase!@FieldSFields */
362 @@endif // isInLibrary
363 typedef ChildPointerSField<
365 UnrecordedRefCountPolicy,
366 @!nsConst!@ + @!ChildNS!@ > SFUnrecChild@!Classname!@Ptr;
372 /*! \ingroup @!DocGroupBase!@FieldMFields */
373 @@endif // isInLibrary
374 typedef ChildPointerMField<
376 UnrecordedRefCountPolicy,
377 @!nsConst!@ + @!ChildNS!@ > MFUnrecChild@!Classname!@Ptr;
383 /*! \ingroup @!DocGroupBase!@FieldSFields */
384 @@endif // isInLibrary
385 typedef ParentPointerSField<
388 @!nsConst!@ + @!ParentNS!@ > SFParent@!Classname!@Ptr;
393 /*! \ingroup @!DocGroupBase!@FieldMFields */
394 @@endif // isInLibrary
395 typedef ParentPointerMField<
398 @!nsConst!@ + @!ParentNS!@ > MFParent@!Classname!@Ptr;
403 #else // these are the doxygen hacks
407 /*! \ingroup @!DocGroupBase!@FieldSFields \ingroup GrpLibOSG@!Libname!@ */
408 @@endif // isInLibrary
409 struct SFRec@!Classname!@Ptr :
410 public PointerSField<@!Classname!@ *,
411 RecordedRefCountPolicy> {};
413 /*! \ingroup @!DocGroupBase!@FieldSFields \ingroup GrpLibOSG@!Libname!@ */
414 @@endif // isInLibrary
415 struct SFUnrec@!Classname!@Ptr :
416 public PointerSField<@!Classname!@ *,
417 UnrecordedRefCountPolicy> {};
419 /*! \ingroup @!DocGroupBase!@FieldSFields \ingroup GrpLibOSG@!Libname!@ */
420 @@endif // isInLibrary
421 struct SFWeak@!Classname!@Ptr :
422 public PointerSField<@!Classname!@ *,
423 WeakRefCountPolicy> {};
425 /*! \ingroup @!DocGroupBase!@FieldSFields \ingroup GrpLibOSG@!Libname!@ */
426 @@endif // isInLibrary
427 struct SFUncounted@!Classname!@Ptr :
428 public PointerSField<@!Classname!@ *,
429 NoRefCountPolicy> {};
435 /*! \ingroup @!DocGroupBase!@FieldMFields \ingroup GrpLibOSG@!Libname!@ */
436 @@endif // isInLibrary
437 struct MFRec@!Classname!@Ptr :
438 public PointerMField<@!Classname!@ *,
439 RecordedRefCountPolicy > {};
441 /*! \ingroup @!DocGroupBase!@FieldMFields \ingroup GrpLibOSG@!Libname!@ */
442 @@endif // isInLibrary
443 struct MFUnrec@!Classname!@Ptr :
444 public PointerMField<@!Classname!@ *,
445 UnrecordedRefCountPolicy> {};
447 /*! \ingroup @!DocGroupBase!@FieldMFields \ingroup GrpLibOSG@!Libname!@ */
448 @@endif // isInLibrary
449 struct MFWeak@!Classname!@Ptr :
450 public PointerMField<@!Classname!@ *,
451 WeakRefCountPolicy > {};
453 /*! \ingroup @!DocGroupBase!@FieldMFields \ingroup GrpLibOSG@!Libname!@ */
454 @@endif // isInLibrary
455 struct MFUncounted@!Classname!@Ptr :
456 public PointerMField<@!Classname!@ *,
457 NoRefCountPolicy > {};
464 /*! \ingroup @!DocGroupBase!@FieldSFields \ingroup GrpLibOSG@!Libname!@ */
465 @@endif // isInLibrary
466 struct SFUnrecChild@!Classname!@Ptr :
467 public ChildPointerSField<
469 UnrecordedRefCountPolicy,
470 @!nsConst!@ + @!ChildNS!@ > {};
476 /*! \ingroup @!DocGroupBase!@FieldMFields \ingroup GrpLibOSG@!Libname!@ */
477 @@endif // isInLibrary
478 struct MFUnrecChild@!Classname!@Ptr :
479 public ChildPointerMField<
481 UnrecordedRefCountPolicy,
482 @!nsConst!@ + @!ChildNS!@ > {};
488 /*! \ingroup @!DocGroupBase!@FieldSFields \ingroup GrpLibOSG@!Libname!@ */
489 @@endif // isInLibrary
490 struct SFParent@!Classname!@Ptr :
491 public ParentPointerSField<
494 @!nsConst!@ + @!ParentNS!@ > {};
499 /*! \ingroup @!DocGroupBase!@FieldMFields \ingroup GrpLibOSG@!Libname!@ */
500 @@endif // isInLibrary
501 struct MFParent@!Classname!@Ptr :
502 public ParentPointerMField<
505 @!nsConst!@ + @!ParentNS!@ > {};
509 #endif // these are the doxygen hacks
511 @!LIBNAMESPACE!@_END_NAMESPACE
513 #endif /* _OSG@!CLASSNAME!@FIELDS_H_ */