FDO .NET API Reference Feature Data Objects

mgIAcquireLockImp.h

Go to the documentation of this file.
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.