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

# ICommitLongTransaction.h

Go to the documentation of this file.

    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

Please send us your comment about this page