00001 /***************************************************************************** 00002 * Copyright (C) 2011 by Benjamin Hadorn (b_hadorn@bluewin.ch) 00003 ***************************************************************************** 00004 * Project : Zeus Base Library 00005 * Module : IXSynchronAction 00006 * Package : Zeus.ZeusBase.System.Interfaces 00007 * Author : Benjamin Hadorn 00008 * Date : 27.12.2011 00009 * System : Zeus-Framework 00010 ***************************************************************************** 00011 * Licence: * 00012 * This library is free software; you can redistribute it and/or modify * 00013 * it under the terms of the GNU Lesser General Public License as * 00014 * published by the Free Software Foundation; either version * 00015 * 2.1 of the License, or (at your option) any later version. * 00016 * * 00017 * This library is distributed in the hope that it will be useful, * 00018 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00020 * GNU Lesser General Public License for more details. * 00021 * * 00022 * You should have received a copy of the GNU Lesser General Public * 00023 * License along with this library; if not, write to the Free Software * 00024 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA * 00025 *****************************************************************************/ 00026 00027 /***************************************************************************** 00028 * Changes: 00029 * 27.12.2011 bha: created zeus 2.0 00030 *****************************************************************************/ 00031 00032 #ifndef IXSynchronActionHPP 00033 #define IXSynchronActionHPP 00034 00035 #include <zeusbase/System/Interfaces/IZUnknown.hpp> 00036 #include <zeusbase/System/Interfaces/IXObject.hpp> 00037 00038 // {847DFF5E-30D9-44a2-9DC3-C0AF867642A1} 00039 #define INTERFACE_IXSynchronAction TIID(0x847dff5e, 0x30d9, 0x44a2, 0x9d, 0xc3, 0xc0, 0xaf, 0x86, 0x76, 0x42, 0xa1) 00040 00041 BEGIN_NAMESPACE_Zeus 00042 00043 class IXSynchronActionListener; 00044 00045 /*************************************************************************/ 00065 /*************************************************************************/ 00066 class IXSynchronAction : public IZUnknown 00067 { 00068 HIDE_ASSIGNMENT_OPERATOR(IXSynchronAction) 00069 00070 public: 00071 /*********************************************************************/ 00075 /*********************************************************************/ 00076 enum ENodeActionType 00077 { 00078 etNodeUnchanged = 0, 00079 etNodeChange = 1, 00080 etNodeAdd = 2, 00081 etNodeRemove = 3, 00082 etNodeError = 4 00083 }; 00084 00085 /*********************************************************************/ 00088 /*********************************************************************/ 00089 virtual Retval MQUALIFIER addNewChild(IXObject* pNode1, IXObject* pNode2, IXSynchronAction::ENodeActionType eType, IXSynchronAction*& pChild)=0; 00090 00091 /*********************************************************************/ 00094 /*********************************************************************/ 00095 virtual void MQUALIFIER add(IXSynchronAction& pChild)=0; 00096 00097 /*********************************************************************/ 00106 /*********************************************************************/ 00107 virtual Retval MQUALIFIER getNextChildOfAction(IXSynchronAction& rRefChild, IXSynchronAction*& rpNextChild)=0; 00108 00109 /*********************************************************************/ 00113 /*********************************************************************/ 00114 virtual Int MQUALIFIER getCount() const =0; 00115 00116 /*********************************************************************/ 00123 /*********************************************************************/ 00124 virtual Retval MQUALIFIER getChild(Int iIndex, IXSynchronAction*& rpAction) const =0; 00125 00126 /*********************************************************************/ 00130 /*********************************************************************/ 00131 virtual ENodeActionType MQUALIFIER getType() const =0; 00132 00133 /*********************************************************************/ 00139 /*********************************************************************/ 00140 virtual Retval MQUALIFIER getNode1(IXObject*& rpNode) const =0; 00141 00142 /*********************************************************************/ 00148 /*********************************************************************/ 00149 virtual Retval MQUALIFIER getNode2(IXObject*& rpNode) const =0; 00150 00151 /*********************************************************************/ 00157 /*********************************************************************/ 00158 virtual Retval MQUALIFIER getParent(IXSynchronAction*& rpParent) const =0; 00159 00160 /*********************************************************************/ 00164 /*********************************************************************/ 00165 virtual void MQUALIFIER setParent(IXSynchronAction& rParent)=0; 00166 00167 /*********************************************************************/ 00171 /*********************************************************************/ 00172 virtual void MQUALIFIER disable()=0; 00173 00174 /*********************************************************************/ 00178 /*********************************************************************/ 00179 virtual void MQUALIFIER enable()=0; 00180 00181 /*********************************************************************/ 00187 /*********************************************************************/ 00188 virtual bool MQUALIFIER isEnabled() const=0; 00189 00190 /*********************************************************************/ 00206 /*********************************************************************/ 00207 virtual Retval MQUALIFIER executeAction(Int iCycleCount=0, bool bUnfreeze = false, bool bCleanTree = false, IXSynchronActionListener* pListener = NULL)=0; 00208 00209 /*********************************************************************/ 00212 /*********************************************************************/ 00213 virtual void MQUALIFIER getCaption(IString& rCaption) const=0; 00214 00215 /*********************************************************************/ 00222 /*********************************************************************/ 00223 virtual Retval MQUALIFIER findAction(IXObject& rObject, IXSynchronAction*& rpAction)= 0; 00224 00225 /*********************************************************************/ 00234 /*********************************************************************/ 00235 virtual Retval MQUALIFIER executeRecurs(Int iActCylceIndex, IXSynchronActionListener* pListener = NULL)=0; 00236 00237 /*********************************************************************/ 00241 /*********************************************************************/ 00242 virtual void MQUALIFIER finishRecurs() = 0; 00243 00244 /*********************************************************************/ 00248 /*********************************************************************/ 00249 virtual void MQUALIFIER cleanTargetTree()=0; 00250 00251 /*********************************************************************/ 00254 /*********************************************************************/ 00255 virtual Int MQUALIFIER getSubActionCount() const = 0; 00256 00257 /*********************************************************************/ 00261 /*********************************************************************/ 00262 virtual Retval MQUALIFIER getErrorCode() const = 0; 00263 00264 /*********************************************************************/ 00274 /*********************************************************************/ 00275 virtual Retval MQUALIFIER checkPreConditions(Int iCycleIndex = 0, bool bForce = false) = 0; 00276 00277 /*********************************************************************/ 00282 /*********************************************************************/ 00283 virtual void MQUALIFIER setRootObjectNotification(bool bFlag) = 0; 00284 00285 /*********************************************************************/ 00288 /*********************************************************************/ 00289 virtual Retval MQUALIFIER getRootAction(IXSynchronAction*& rpRoot) const=0; 00290 }; 00291 00292 00293 END_NAMESPACE_Zeus 00294 00295 #endif