Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

vtkExtensionsObject.h

Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 00002 * 00003 * $Id: vtkExtensionsObject.h,v 1.8 2004/08/10 07:37:21 xpxqx Exp $ 00004 * 00005 * Copyright (c) 2004 Sean McInerney 00006 * All rights reserved. 00007 * 00008 * See Copyright.txt or http://vtkextensions.sourceforge.net/Copyright.html 00009 * for details. 00010 * 00011 * This software is distributed WITHOUT ANY WARRANTY; without even 00012 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 * PURPOSE. See the above copyright notice for more information. 00014 * 00015 */ 00016 #ifndef VTK_EXTENSIONS_OBJECT_H_ 00017 # define VTK_EXTENSIONS_OBJECT_H_ 00018 # include "vtkExtensionsCommonConfigure.h" // vtkExtensions configuration 00019 # include <assert.h> // ANSI C assertions 00020 // VTK Common 00021 # include "vtkObject.h" 00022 00023 VTK_EXTENSIONS_NAMESPACE_BEGIN 00024 00025 class vtkExtensionsObjectInternal; 00026 class vtkUUID; 00027 00033 class VTK_EXTENSIONS_COMMON_EXPORT vtkExtensionsObject : public vtkObject 00034 { 00035 public: 00036 static vtkExtensionsObject* New (void); 00037 vtkTypeRevisionMacro (vtkExtensionsObject, vtkObject); 00038 void PrintSelf (ostream&, vtkIndent); 00039 00041 const vtkUUID* GetUUID (void) const; 00042 00050 int SetUUID (const char* a); 00051 00058 int SetUUID (const unsigned char a[16]); 00059 00060 protected: 00061 vtkExtensionsObject (void); 00062 ~vtkExtensionsObject(); 00063 00064 private: 00065 //BTX 00066 vtkExtensionsObjectInternal* Internal; 00067 00068 void Lock (void) const; 00069 void Unlock (void) const; 00070 //ETX 00071 00072 public: 00073 //BTX 00074 class ScopeLock; 00075 friend class ScopeLock; 00076 class ScopeLock 00077 { 00078 const vtkExtensionsObject* Object; 00079 00080 public: 00081 ScopeLock (const vtkExtensionsObject* const& a) : Object(a) 00082 { assert(this->Object != NULL); this->Object->Lock(); } 00083 ~ScopeLock() 00084 { this->Object->Unlock(); } 00085 }; 00086 //ETX 00087 00088 private: 00094 vtkExtensionsObject (const vtkExtensionsObject&); 00095 void operator= (const vtkExtensionsObject&); 00097 }; 00098 00099 VTK_EXTENSIONS_NAMESPACE_END 00100 00101 #endif /* VTK_EXTENSIONS_OBJECT_H_ */ 00102 /* 00103 * End of: $Id: vtkExtensionsObject.h,v 1.8 2004/08/10 07:37:21 xpxqx Exp $. 00104 * 00105 */

Generated on Tue Aug 10 03:37:11 2004 for vtkExtensions by doxygen 1.3.7