- Main Page
- Related Pages
- Modules
- Classes
- Files

# 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

Please send us your comment about this page