FDO API Reference Feature Data Objects

LockType.h

Go to the documentation of this file.
00001 #ifndef _LOCKTYPE_H_
00002 #define _LOCKTYPE_H_ 
00003 // 
00004 
00005 //
00006 // Copyright (C) 2004-2006  Autodesk, Inc.
00007 // 
00008 // This library is free software; you can redistribute it and/or
00009 // modify it under the terms of version 2.1 of the GNU Lesser
00010 // General Public License as published by the Free Software Foundation.
00011 // 
00012 // This library is distributed in the hope that it will be useful,
00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015 // Lesser General Public License for more details.
00016 // 
00017 // You should have received a copy of the GNU Lesser General Public
00018 // License along with this library; if not, write to the Free Software
00019 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00020 //
00021 
00022 #ifdef _WIN32
00023 #pragma once
00024 #endif
00025 
00026 /// \ingroup (enums)
00027 /// \brief
00028 /// The FdoLockType enumeration defines lock types. The lock type for 
00029 /// a locked object indicates a user's access privileges (including the user 
00030 /// who applied the persistent lock) to an object.
00031 /// <p>
00032 /// The enumeration values are used with the commands FdoIAcquireLock, FdoISelect 
00033 /// and FdoIGetLockInfo. With the command FdoIAcquireLock or FdoISelect, the 
00034 /// specified value indicates the lock type to be used when applying a lock on
00035 /// an object. With the command FdoIGetLockInfo, the enumaration values are used
00036 /// to report lock types back to the user.
00037 /// </p>
00038 /// <p>
00039 /// The enumeration contains some special lock types (FdoLockType_None and FdoLockType_Unsupported) 
00040 /// that are used only when reporting lock type information.
00041 /// These special lock types cannot be used to specify a lock type to be applied 
00042 /// to an object.
00043 /// </p>
00044 
00045 enum FdoLockType
00046 {
00047 
00048     /// Indicates that an object is unlocked. 
00049     /// This type cannot be used with the commands FdoIAcquireLock and FdoISelect.
00050     FdoLockType_None,
00051     /// Indicates a shared lock type. The type can 
00052     /// be used with the commands FdoIAcquireLock and FdoISelect.
00053     FdoLockType_Shared,
00054     /// Indicates that only this user can modify 
00055     /// this object. In a long transaction situation, any user can modify the object in any 
00056     /// other long transaction, including the root long transaction if it is not the current 
00057     /// long transaction. 
00058     /// The type can be used with the commands FdoIAcquireLock and FdoISelect.
00059     FdoLockType_Exclusive,
00060     /// Indicates that a transaction lock 
00061     /// should be applied on an object. This type can be used with the commands 
00062     /// FdoIAcquireLock and FdoISelect.
00063     FdoLockType_Transaction,
00064     /// Indicates that an unsupported lock 
00065     /// type has been encountered. This type cannot be used with the commands 
00066     /// FdoIAcquireLock and FdoISelect.
00067     FdoLockType_Unsupported,
00068     /// Indicates that only this user can 
00069     /// modify this object in this long transaction. No user, not even the user locking the object, 
00070     /// can modify the object in any long transaction created as a descendent of the one 
00071     /// containing the object being locked. When not in a long transaction situation (for example, 
00072     /// if only a root long transaction exists), the lock behaves like an Exclusive lock. 
00073     /// This type can be used with the commands FdoIAcquireLock and FdoISelect.
00074     FdoLockType_AllLongTransactionExclusive,
00075     /// Indicates that only this user can 
00076     /// modify this object in the long transaction containing the object or any long 
00077     /// transaction created as a descendent of that one. When not in a long transaction 
00078     /// situation (for example, if only a root long transaction exists), the lock behaves 
00079     /// like an Exclusive lock. 
00080     /// The type can be used with the commands FdoIAcquireLock and FdoISelect.
00081     FdoLockType_LongTransactionExclusive
00082 
00083 };
00084 #endif
00085 
00086 

Comments or suggestions? Send us feedback.