00001 /*---------------------------------------------------------------------------*\ 00002 * OpenSG * 00003 * * 00004 * * 00005 * Copyright (C) 2000-2002 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 _OSGATTACHMENTCONTAINERPTRIMPL_H_ 00040 #define _OSGATTACHMENTCONTAINERPTRIMPL_H_ 00041 #ifdef __sgi 00042 #pragma once 00043 #endif 00044 00045 #ifdef OSG_DOC_FILES_IN_MODULE 00046 00049 #endif 00050 00051 #include <OSGBaseTypes.h> 00052 #include <OSGSystemDef.h> 00053 #include <OSGFieldContainerPtr.h> 00054 #include <OSGRefPtr.h> 00055 00056 OSG_BEGIN_NAMESPACE 00057 00058 class AttachmentContainer; 00059 00060 #ifdef __sgi 00061 #pragma set woff 1375,1424 00062 #endif 00063 00064 #ifdef OSG_LINUX_ICC 00065 #pragma warning( disable : 444 ) 00066 #endif 00067 00071 class OSG_SYSTEMLIB_DLLMAPPING AttachmentContainerPtr : 00072 public FieldContainerPtr 00073 { 00074 /*========================== PUBLIC =================================*/ 00075 00076 public: 00077 00078 typedef AttachmentContainer StoredObjectType; 00079 typedef AttachmentContainerPtr ObjectType; 00080 00081 typedef FieldContainerPtr Inherited; 00082 00083 /*---------------------------------------------------------------------*/ 00087 template <class InTypeT> 00088 static AttachmentContainerPtr dcast(const InTypeT oIn); 00089 00091 /*---------------------------------------------------------------------*/ 00095 AttachmentContainerPtr( void ); 00096 AttachmentContainerPtr(const AttachmentContainerPtr &source); 00097 AttachmentContainerPtr(const NullFieldContainerPtr &source); 00098 00100 /*---------------------------------------------------------------------*/ 00104 ~AttachmentContainerPtr(void); 00105 00107 /*---------------------------------------------------------------------*/ 00111 AttachmentContainer *operator->(void); 00112 AttachmentContainer *operator->(void) const; 00113 00114 AttachmentContainer &operator *(void); 00115 AttachmentContainer &operator *(void) const; 00116 00117 AttachmentContainer *getCPtr (void); 00118 AttachmentContainer *getCPtr (void) const; 00119 00121 /*---------------------------------------------------------------------*/ 00125 void operator =(const AttachmentContainerPtr &source); 00126 void operator =(const NullFieldContainerPtr &source); 00127 00129 /*---------------------------------------------------------------------*/ 00135 explicit AttachmentContainerPtr(const AttachmentContainer &source); 00136 explicit AttachmentContainerPtr(const AttachmentContainer *source); 00137 00139 /*========================= PROTECTED ===============================*/ 00140 00141 protected: 00142 00143 /*---------------------------------------------------------------------*/ 00147 AttachmentContainerPtr(const AttachmentContainer *source, 00148 const UInt16 uiSize, 00149 const UInt16 uiParentPos); 00150 00152 /*========================== PRIVATE ================================*/ 00153 00154 private: 00155 00156 friend class FieldContainer; 00157 }; 00158 00159 typedef RefPtr<AttachmentContainerPtr> AttachmentContainerRefPtr; 00160 00161 #ifdef OSG_LINUX_ICC 00162 #pragma warning( default : 444 ) 00163 #endif 00164 00165 #ifdef __sgi 00166 #pragma reset woff 1375,1424 00167 #endif 00168 00172 OSG_SYSTEMLIB_DLLMAPPING 00173 std::ostream &operator <<( std::ostream &os, 00174 const AttachmentContainerPtr &fc); 00175 OSG_END_NAMESPACE 00176 00177 #define OSGATTACHMENTCONTAINERPTR_HEADER_CVSID "@(#)$Id: $" 00178 00179 #endif /* _OSGATTACHMENTCONTAINERPTR_IMPL_ */ 00180
1.5.5