FDO API Reference | Feature Data Objects |
00001 #ifndef _IROLLBACKLONGTRANSACTION_H_ 00002 #define _IROLLBACKLONGTRANSACTION_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/IFeatureCommand.h> 00029 #include <Fdo/Commands/Locking/ILockConflictReader.h> 00030 00031 /// \brief 00032 /// The FdoIRollbackLongTransaction interface defines the RollbackLongTransaction 00033 /// command, which allows a user to execute rollback operations on a long 00034 /// transaction. Two different rollback operations are distinguished: full and partial. 00035 /// 00036 /// <ol> 00037 /// <li>A full rollback operation is executed on all data within a long transaction and all its descendents. The data is removed from the database and all versions involved in the process deleted. 00038 /// <li>A partial rollback operation is executed on a subset of the data within a long transaction (which could be all data). The specified data in this long transaction and all its descendents are removed from the database. The versions involved in the process are not removed. The subset of the data to be rolled back is defined by a class name and a set of filter criteria. 00039 /// </ol> 00040 /// To perform a rollback operation, the user requires the access and 00041 /// rollback privileges for the long transaction to be rolled back (in the case 00042 /// of a full rollback, the user also requires the remove privilege for the 00043 /// long transaction) and the access privilege for all the descendent 00044 /// versions. 00045 class FdoIRollbackLongTransaction : public FdoIFeatureCommand 00046 { 00047 friend class FdoIConnection; 00048 00049 public: 00050 /// \brief 00051 /// Gets the name of the long transaction to roll back as a string. 00052 /// 00053 /// \return 00054 /// Returns the name of the long transaction. 00055 /// 00056 FDO_API virtual FdoString* GetName() = 0; 00057 00058 /// \brief 00059 /// Sets the name of the long transaction to roll back as a string. 00060 /// 00061 /// \param value 00062 /// Input the name of the long transaction. 00063 /// 00064 /// \return 00065 /// Returns nothing 00066 /// 00067 FDO_API virtual void SetName(FdoString* value) = 0; 00068 00069 /// \brief 00070 /// Gets a reference to the lock conflict reader. 00071 /// 00072 /// \return 00073 /// Returns a reference to the lock conflict reader 00074 /// 00075 FDO_API virtual FdoILockConflictReader* GetLockConflictReader() = 0; 00076 00077 /// \brief 00078 /// Executes the RollbackLongTransaction command. 00079 /// 00080 /// \return 00081 /// Returns nothing 00082 /// 00083 FDO_API virtual void Execute() = 0; 00084 }; 00085 #endif 00086 00087
Comments or suggestions? Send us feedback. |