FDO API Reference Feature Data Objects

IRollbackLongTransaction.h

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