FDO .NET API Reference Feature Data Objects

mgLockType.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 /// \cond DOXYGEN-IGNORE
00022 BEGIN_NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING
00023 /// \endcond
00024 
00025 /// \ingroup (OSGeoFDOCommandsLocking)
00026 /// \brief
00027 /// The LockType enumeration defines lock types. The lock type for 
00028 /// a locked object indicates a user's access privileges (including the user 
00029 /// who applied the persistent lock) to an object.
00030 /// <p>
00031 /// The enumeration values are used with the AcquireLock, Select 
00032 /// and GetLockInfo commands. With the command AcquireLock or Select, the 
00033 /// specified value indicates the lock type to be used when applying a lock on
00034 /// an object. With the command IGetLockInfo, the enumaration values are used
00035 /// to report lock types back to the user.
00036 /// <p>
00037 /// The enumeration contains some special lock types (LockType_None and LockType_Unsupported) 
00038 /// that are used only when reporting lock type information.
00039 /// These special lock types cannot be used to specify a lock type to be applied 
00040 /// to an object.
00041 public __value enum LockType
00042 {
00043     /// Indicates that an object is unlocked. 
00044     /// This type cannot be used with the commands AcquireLock and Select.
00045     LockType_None = FdoLockType_None,
00046 
00047     /// Indicates a shared lock type. The type can 
00048     /// be used with the commands AcquireLock and Select.
00049     LockType_Shared = FdoLockType_Shared,
00050 
00051     /// Indicates that only this user can modify 
00052     /// this object. In a long transaction situation, any user can modify the object in any 
00053     /// other long transaction, including the root long transaction if it is not the current 
00054     /// long transaction. The type can be used with the commands AcquireLock and Select.
00055     LockType_Exclusive = FdoLockType_Exclusive,
00056 
00057     /// Indicates that a transaction lock should be applied on an object. 
00058     /// This type can be used with the commands AcquireLock and Select.
00059     LockType_Transaction = FdoLockType_Transaction,
00060 
00061     /// Indicates that an unsupported lock 
00062     /// type has been encountered. This type cannot be used with the commands 
00063     /// AcquireLock and Select.
00064     LockType_Unsupported = FdoLockType_Unsupported,
00065 
00066     /// Indicates that only this user can 
00067     /// modify this object in this long transaction. No user, not even the user locking the object, 
00068     /// can modify the object in any long transaction created as a descendent of the one 
00069     /// containing the object being locked. When not in a long transaction situation (for example, 
00070     /// if only a root long transaction exists), the lock behaves like an Exclusive lock. 
00071     /// This type can be used with the commands AcquireLock and Select.
00072     LockType_AllLongTransactionExclusive = FdoLockType_AllLongTransactionExclusive,
00073 
00074     /// Indicates that only this user can 
00075     /// modify this object in the long transaction containing the object or any long 
00076     /// transaction created as a descendent of that one. When not in a long transaction 
00077     /// situation (for example, if only a root long transaction exists), the lock behaves 
00078     /// like an Exclusive lock. 
00079     /// The type can be used with the commands AcquireLock and Select.
00080     LockType_LongTransactionExclusive = FdoLockType_LongTransactionExclusive
00081 };
00082 
00083 /// \cond DOXYGEN-IGNORE
00084 END_NAMESPACE_OSGEO_FDO_COMMANDS_LOCKING
00085 /// \endcond

Comments or suggestions? Send us feedback.