00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #pragma once
00020
00021 #include "FDO\Commands\Locking\mgLockType.h"
00022
00023 class FdoClassCapabilities;
00024
00025 template <typename T>
00026 class FdoArray;
00027
00028 enum FdoLockType;
00029
00030 BEGIN_NAMESPACE_OSGEO_FDO_SCHEMA
00031 public __gc class ClassDefinition;
00032
00033
00034
00035
00036
00037 public __gc class ClassCapabilities : public NAMESPACE_OSGEO_RUNTIME::Disposable
00038 {
00039 public:
00040
00041
00042
00043
00044
00045
00046
00047 ClassCapabilities(NAMESPACE_OSGEO_FDO_SCHEMA::ClassDefinition* parent);
00048
00049
00050
00051
00052
00053
00054
00055 __property System::Boolean get_SupportsLocking();
00056
00057
00058
00059
00060
00061
00062
00063
00064 __property System::Void set_SupportsLocking(System::Boolean value);
00065
00066
00067
00068
00069
00070
00071
00072 __property NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::LockType get_LockTypes() [];
00073
00074
00075
00076
00077
00078
00079
00080
00081 __property System::Void set_LockTypes(NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::LockType types[]);
00082
00083
00084
00085
00086
00087
00088
00089
00090 __property System::Boolean get_SupportsLongTransactions();
00091
00092
00093
00094
00095
00096
00097
00098
00099 __property System::Void set_SupportsLongTransactions(System::Boolean value );
00100
00101
00102
00103
00104
00105
00106
00107 __property NAMESPACE_OSGEO_FDO_SCHEMA::ClassDefinition* get_Parent();
00108
00109
00110
00111
00112 __property System::Boolean get_SupportsWrite();
00113
00114 public private:
00115 ClassCapabilities(System::IntPtr unmanaged, System::Boolean autoDelete);
00116
00117 inline FdoClassCapabilities* GetImpObj();
00118
00119
00120 protected:
00121 System::Void ReleaseUnmanagedObject();
00122
00123
00124 private:
00125 typedef FdoArray<FdoLockType> FdoLockTypeArray;
00126
00127 inline NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::LockType WrapFdoLockTypeArray(const FdoLockType* umArray, FdoInt32 len) []
00128 {
00129 NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::LockType mgArray __gc[] = __gc new NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::LockType[len];
00130 for (FdoInt32 i = 0; i < len; i++)
00131 {
00132 mgArray[i] = static_cast<NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::LockType>(umArray[i]);
00133 }
00134 return mgArray;
00135 }
00136
00137 inline FdoLockTypeArray* UnwrapLockTypeArray(NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::LockType mgArray __gc[])
00138 {
00139 FdoLockType* umArray = new FdoLockType[mgArray->Length];
00140 for (FdoInt32 i = 0; i < mgArray->Length; i++)
00141 {
00142 umArray[i] = static_cast<FdoLockType>(mgArray[i]);
00143 }
00144 return FdoLockTypeArray::Create(umArray, mgArray->Length);
00145 }
00146
00147 };
00148
00149 END_NAMESPACE_OSGEO_FDO_SCHEMA
00150
00151