FDO .NET API Reference | Feature Data Objects |
00001 /* 00002 * Copyright (C) 2004-2006 Autodesk, Inc. 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of version 2.1 of the GNU Lesser 00006 * General Public License as published by the Free Software Foundation. 00007 * 00008 * This library is distributed in the hope that it will be useful, 00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00011 * Lesser General Public License for more details. 00012 * 00013 * You should have received a copy of the GNU Lesser General Public 00014 * License along with this library; if not, write to the Free Software 00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00016 * 00017 */ 00018 00019 #pragma once 00020 00021 #include "FDO\Commands\mgIFeatureCommandImp.h" 00022 #include "FDO\Commands\Locking\mgIAcquireLock.h" 00023 #include "FDO\Commands\Locking\mgLockType.h" 00024 #include "FDO\Commands\Locking\mgLockStrategy.h" 00025 00026 class FdoIAcquireLock; 00027 00028 BEGIN_NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING 00029 public __gc __interface ILockConflictReader; 00030 00031 /// \ingroup (OSGeoFDOCommandsLocking) 00032 /// \brief 00033 /// The IAcquireLockImp class is a concrete implementation of IAcquireLock. 00034 /// The IAcquireLock interface locks feature instances of a given class 00035 /// that match the specified criteria. Input to the acquire lock command 00036 /// includes the name of the class, the lock type, the lock strategy, and 00037 /// filter criteria by which to identify the instances to be locked. The 00038 /// filter may be specified either as text or as an expression tree (most 00039 /// likely produced by a query builder). The lock type value is one of 00040 /// <p> - LockType_Shared 00041 /// <p> - LockType_Exclusive 00042 /// <p> - LockType_Transaction 00043 /// <p> - LockType_LongTransactionExclusive 00044 /// <p> - LockType_AllLongTransactionExclusive 00045 /// \remarks 00046 /// If the lock strategy has a value of all and at least one of the feature 00047 /// instances specified in the filter is locked by someone else, the command 00048 /// returns an ILockConflictReader list which contains all of the feature 00049 /// instances specified in the filter. 00050 /// <p>If the lock strategy has a value of partial, the command returns an 00051 /// ILockConflictReader list which contains all of the feature instances 00052 /// specified in the filter that are already locked by someone else. 00053 /// The command returns an empty ILockConflictReader list if all of the 00054 /// feature instances specified in the filter were successfully locked. 00055 private __gc class IAcquireLockImp : public NAMESPACE_OSGEO_FDO_COMMANDS::IFeatureCommandImp, 00056 public NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::IAcquireLock 00057 { 00058 public: 00059 /// \brief 00060 /// Gets the LockType value. 00061 /// 00062 /// \return 00063 /// Returns the lock type. 00064 /// 00065 __property NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::LockType get_LockType(); 00066 00067 /// \brief 00068 /// Sets the LockType value. 00069 /// 00070 /// \param value 00071 /// Input the lock type 00072 /// 00073 /// \return 00074 /// Returns nothing 00075 /// 00076 __property System::Void set_LockType(NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::LockType value); 00077 00078 /// \brief 00079 /// Gets the LockStrategy value. 00080 /// 00081 /// \return 00082 /// Returns the strategy value (all or partial). 00083 /// 00084 __property NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::LockStrategy get_LockStrategy(); 00085 00086 /// \brief 00087 /// Sets the LockStrategy value (all or partial). 00088 /// 00089 /// \param value 00090 /// Input the lock strategy used for locking objects 00091 /// 00092 /// \return 00093 /// Returns nothing 00094 /// 00095 __property System::Void set_LockStrategy(NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::LockStrategy value); 00096 00097 /// \brief 00098 /// Executes the AcquireLock command, returning an ILockConflictReader. 00099 /// 00100 /// \return 00101 /// Returns a list of feature instances which could not be locked. 00102 /// The list could be empty indicating that all of the feature instances 00103 /// specified in the filter have been locked, or it could contain the list 00104 /// of feature instances that could not be locked because they are already 00105 /// locked by someone or because the locking strategy is all and at least 00106 /// one of the feature instances specified in the filter is already locked 00107 /// by someone else. 00108 /// 00109 NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING::ILockConflictReader* Execute(); 00110 00111 public private: 00112 IAcquireLockImp(System::IntPtr unmanaged, System::Boolean autoDelete) : NAMESPACE_OSGEO_FDO_COMMANDS::IFeatureCommandImp(unmanaged, autoDelete) 00113 { 00114 00115 } 00116 00117 inline FdoIAcquireLock* GetImpObj(); 00118 }; 00119 00120 END_NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING 00121 00122
Comments or suggestions? Send us feedback. |