FDO .NET API Reference Feature Data Objects

mgICommitLongTransactionImp.h

Go to the documentation of this file.
00001 /*
00002 * Copyright (C) 2004-2006  Autodesk, Inc.
00003 * 
00004 * This library is free software; you can redistribute it and/or
00005 * modify it under the terms of version 2.1 of the GNU Lesser
00006 * General Public License as published by the Free Software Foundation.
00007 * 
00008 * This library is distributed in the hope that it will be useful,
00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 * Lesser General Public License for more details.
00012 * 
00013 * You should have received a copy of the GNU Lesser General Public
00014 * License along with this library; if not, write to the Free Software
00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00016 *
00017 */
00018 
00019 #pragma once
00020 
00021 #include "FDO\Commands\mgIFeatureCommandImp.h"
00022 #include "FDO\Commands\LongTransaction\mgICommitLongTransaction.h"
00023 
00024 class FdoICommitLongTransaction;
00025 
00026 BEGIN_NAMESPACE_OSGEO_FDO_COMMANDS_LONGTRANSACTION
00027 public __gc __interface ILongTransactionConflictDirectiveEnumerator;
00028 
00029 /// \ingroup (OSGeoFDOCommandsLongTransaction)
00030 /// \brief
00031 /// The ICommitLongTransactionImp class is a 
00032 /// concrete implementation of ICommitLongTransaction.
00033 /// The ICommitLongTransaction 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 private __gc class ICommitLongTransactionImp : public NAMESPACE_OSGEO_FDO_COMMANDS::IFeatureCommandImp, 
00049                                                public NAMESPACE_OSGEO_FDO_COMMANDS_LONGTRANSACTION::ICommitLongTransaction
00050 {
00051 public:
00052     /// \brief
00053     /// Gets the name of the long transaction to commit as a string.
00054     /// 
00055     /// \return
00056     /// Returns the name of the long transaction
00057     /// 
00058     __property System::String* get_Name();
00059 
00060     /// \brief
00061     /// Sets the name of the long transaction to commit as a string.
00062     /// 
00063     /// \param value 
00064     /// Input the name of the long transaction
00065     /// 
00066     /// \return
00067     /// Returns nothing
00068     /// 
00069     __property System::Void set_Name(System::String* value);
00070 
00071     /// Executes the commit long transaction command and returns an
00072     /// ILongTransactionConflictDirectiveEnumerator.
00073     /// If the returned enumerator's count is 0 then
00074     /// no conflicts were detected and the command was executed successfully.
00075     /// Otherwise conflicts were detected and the user must specify how to
00076     /// resolve them using the enumerator and call Execute again.
00077     ILongTransactionConflictDirectiveEnumerator* Execute();
00078 
00079 public private:
00080     ICommitLongTransactionImp(System::IntPtr unmanaged, System::Boolean autoDelete) : NAMESPACE_OSGEO_FDO_COMMANDS::IFeatureCommandImp(unmanaged, autoDelete)
00081     {
00082 
00083     }
00084 
00085     inline FdoICommitLongTransaction* GetImpObj();
00086 };
00087 
00088 END_NAMESPACE_OSGEO_FDO_COMMANDS_LONGTRANSACTION
00089 
00090 

Comments or suggestions? Send us feedback.