00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #pragma once
00020
00021 class FdoIDisposable;
00022
00023 BEGIN_NAMESPACE_OSGEO_RUNTIME
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 public __gc __abstract class Disposable : public System::IDisposable, public System::MarshalByRefObject
00034 {
00035 System::IntPtr m_imp;
00036 System::Boolean m_bAutoDelete;
00037
00038 public:
00039 __property System::IntPtr get_UnmanagedObject();
00040 __property System::Boolean get_Disposed();
00041 __property System::Boolean get_AutoDelete();
00042 __property System::Void set_AutoDelete(System::Boolean value);
00043 __property System::Int32 get_RefCount();
00044
00045 protected:
00046 Disposable();
00047 Disposable(System::IntPtr unmanagedPointer, System::Boolean autoDelete);
00048 virtual ~Disposable();
00049 virtual System::Void ReleaseUnmanagedObject();
00050
00051 public:
00052 System::Void Dispose();
00053 System::Void Detach();
00054 System::Void Attach(System::IntPtr unmanagedPointer, System::Boolean autoDelete);
00055 virtual System::Boolean Equals(System::Object* obj);
00056 static System::Boolean op_Inequality(Disposable* leftObject, Disposable* rightObject);
00057 static System::Boolean op_Equality(Disposable* leftObject, Disposable* rightObject);
00058 System::Int32 GetHashCode();
00059
00060 public private:
00061 inline FdoIDisposable* GetImpObj();
00062 };
00063
00064 END_NAMESPACE_OSGEO_RUNTIME
00065
00066