FDO API Reference | Feature Data Objects |
00001 #ifndef _ICOMMITLONGTRANSACTION_H_ 00002 #define _ICOMMITLONGTRANSACTION_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 #include <FdoStd.h> 00027 #include <Fdo/Connections/IConnection.h> 00028 #include <Fdo/Commands/LongTransaction/ILTConflictDirectiveEnumerator.h> 00029 #include <Fdo/Commands/IFeatureCommand.h> 00030 #include <Fdo/Commands/Locking/ILockConflictReader.h> 00031 00032 /// \brief 00033 /// The FdoICommitLongTransaction interface defines the CommitLongTransaction 00034 /// command, which allows a user to execute commit operations on a long 00035 /// transaction. Two different commit operations are distinguished: full and partial. 00036 /// 00037 /// <b>Full.</b> A full commit operation is executed on all data within a long transaction. The data is committed to the parent long transaction and the long transaction itself is removed. 00038 /// 00039 /// <b>Partial.</b> A partial commit operation is executed on a subset of the data within a long transaction (this could be all data). The data is committed to the parent long transaction. However, the long transaction, itself, is not removed. The subset of the data to be committed is defined by a class name and a set of filter criteria. 00040 /// 00041 /// To perform a commit operation the user requires the access and commit 00042 /// privileges for the long transaction to be committed (in case of a 00043 /// full commit the user also requires the remove privilege for the long 00044 /// transaction) and the access privilege for the parent long transaction. 00045 /// In addition, a full commit can be performed on a leaf long transaction 00046 /// only. A long transaction is a leaf long transaction if it does not 00047 /// have descendent versions. 00048 class FdoICommitLongTransaction : public FdoIFeatureCommand 00049 { 00050 friend class FdoIConnection; 00051 00052 public: 00053 /// \brief 00054 /// Gets the name of the long transaction to commit as a string. 00055 /// 00056 /// \return 00057 /// Returns the name of the long transaction 00058 /// 00059 FDO_API virtual FdoString* GetName() = 0; 00060 00061 /// \brief 00062 /// Sets the name of the long transaction to commit as a string. 00063 /// 00064 /// \param value 00065 /// Input the name of the long transaction 00066 /// 00067 /// \return 00068 /// Returns nothing 00069 /// 00070 FDO_API virtual void SetName(FdoString* value) = 0; 00071 00072 /// \brief 00073 /// Gets a reference to the lock conflict reader. 00074 /// 00075 /// \return 00076 /// Returns a reference to the lock conflict reader 00077 /// 00078 FDO_API virtual FdoILockConflictReader* GetLockConflictReader() = 0; 00079 00080 /// Executes the commit long transaction command and returns an 00081 /// FdoILongTransactionConflictDirectiveEnumerator. 00082 /// If the returned enumerator's count is 0 then 00083 /// no conflicts were detected and the command was executed successfully. 00084 /// Otherwise conflicts were detected and the user must specify how to 00085 /// resolve them using the enumerator and call Execute again. 00086 FDO_API virtual FdoILongTransactionConflictDirectiveEnumerator* Execute() = 0; 00087 }; 00088 #endif 00089 00090
Comments or suggestions? Send us feedback. |