home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / UPDATE.HPP < prev    next >
C/C++ Source or Header  |  1997-02-28  |  6KB  |  148 lines

  1. //----------------------------------------------------------------------------
  2. // Update.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
  3. // From: Update.pas
  4. //----------------------------------------------------------------------------
  5. #ifndef UpdateHPP
  6. #define UpdateHPP
  7. //----------------------------------------------------------------------------
  8. #include <TypInfo.hpp>
  9. #include <Classes.hpp>
  10. #include <SysUtils.hpp>
  11. #include <System.hpp>
  12. #pragma warn -par
  13. #pragma warn -hid 
  14. #pragma warn -inl
  15.  
  16. namespace Update
  17. {
  18. //-- type declarations -------------------------------------------------------
  19. enum TUpdateFilterState { usFilter, usReading, usWriting };
  20.  
  21. class __declspec(delphiclass) TUpdateFiler;
  22. class __declspec(delphiclass) TUpdateObject;
  23. class __declspec(delphiclass) TUpdateManager;
  24. class __declspec(pascalimplementation) TUpdateObject : public System::TObject
  25. {
  26.     typedef System::TObject inherited;
  27.     
  28. private:
  29.     TUpdateObject* FOwner;
  30.     Classes::TPersistent* FObject;
  31.     Classes::TPersistent* FAncestor;
  32.     Classes::TComponent* FObjectOwner;
  33.     Classes::TComponent* FAncestorOwner;
  34.     Classes::TList* FPropList;
  35.     Classes::TList* FChildList;
  36.     TUpdateFiler* FUpdateFiler;
  37.     bool FIsComponent;
  38.     bool FIsCollection;
  39.     bool FUpdateCollection;
  40.     bool FUpdateOrder;
  41.     int FOrder;
  42.     Typinfo::TPropInfo *FPropInfo;
  43.     bool FCompare;
  44.     __fastcall TUpdateObject(TUpdateObject* AOwner, Classes::TPersistent* AObject, Classes::TPersistent* 
  45.         AAncestor, Typinfo::PPropInfo APropInfo, bool Compare);
  46.     __fastcall virtual ~TUpdateObject(void);
  47.     void __fastcall AddChild(Classes::TComponent* Component);
  48.     bool __fastcall CanRevert(Classes::TPersistent* Instance, Typinfo::PPropInfo PropInfo, bool &Continue
  49.         );
  50.     Sysutils::TMethod __fastcall GetAncestorMethod(Typinfo::PPropInfo PropInfo);
  51.     void * __fastcall GetAncestorPointer(void * Value);
  52.     void * __fastcall GetAncestorReference(Typinfo::PPropInfo PropInfo);
  53.     TUpdateObject* __fastcall FindChild(Classes::TComponent* Component);
  54.     TUpdateObject* __fastcall FindChildProp(Typinfo::PPropInfo APropInfo);
  55.     void __fastcall ComponentDelete(Classes::TComponent* AComponent);
  56.     void __fastcall Filter(void);
  57.     void __fastcall FilterOrder(void);
  58.     bool __fastcall Revert(Classes::TPersistent* Instance, Typinfo::PPropInfo PropInfo);
  59.     void __fastcall Update(TUpdateManager* UpdateManager);
  60.     void __fastcall ValidateObjects(void);
  61. public:
  62.     /* TObject.Create */ __fastcall TUpdateObject(void) : System::TObject() { }
  63.     
  64. };
  65.  
  66. class __declspec(pascalimplementation) TUpdateFiler : public Classes::TFiler
  67. {
  68.     typedef Classes::TFiler inherited;
  69.     
  70. private:
  71.     Classes::TStringList* FPropertyList;
  72.     TUpdateObject* FUpdateObject;
  73.     Classes::TWriter* FWriter;
  74.     Classes::TReader* FReader;
  75.     bool FFiltered;
  76.     TUpdateFilterState FState;
  77.     System::AnsiString FPropName;
  78.     bool FCompare;
  79.     bool __fastcall Empty(void);
  80.     void __fastcall Filter(void);
  81.     void __fastcall FilterProp(const System::AnsiString Name, bool HasData);
  82.     void __fastcall Update(void);
  83.     
  84. public:
  85.     __fastcall TUpdateFiler(TUpdateObject* AUpdateObject, bool ACompare);
  86.     __fastcall virtual ~TUpdateFiler(void);
  87.     virtual void __fastcall DefineProperty(const System::AnsiString Name, Classes::TReaderProc ReadData
  88.         , Classes::TWriterProc WriteData, bool HasData);
  89.     virtual void __fastcall DefineBinaryProperty(const System::AnsiString Name, Classes::TStreamProc ReadData
  90.         , Classes::TStreamProc WriteData, bool HasData);
  91.     virtual void __fastcall FlushBuffer(void);
  92. };
  93.  
  94. enum TUpdateMode { umNone, umUpdate, umFilter };
  95.  
  96. class __declspec(pascalimplementation) TUpdateManager : public System::TObject
  97. {
  98.     typedef System::TObject inherited;
  99.     
  100. private:
  101.     TUpdateObject* FComponentUpdate;
  102.     Classes::TList* FChildList;
  103.     Classes::TComponent* FComponent;
  104.     Classes::TComponent* FAncestor;
  105.     TUpdateManager* FParent;
  106.     TUpdateMode FMode;
  107.     Classes::TList* FUpdateList;
  108.     Classes::TNotifyEvent FOnUpdating;
  109.     Classes::TNotifyEvent FOnUpdate;
  110.     void __fastcall Filter(void);
  111.     bool __fastcall GetHasDescendents(void);
  112.     bool __fastcall GetIsDescendent(void);
  113.     void __fastcall UpdateChildren(void);
  114.     void __fastcall SetChildAncestor(Classes::TComponent* Child);
  115.     void __fastcall Updating(Classes::TComponent* Component);
  116.     
  117. public:
  118.     __fastcall TUpdateManager(Classes::TComponent* AComponent, Classes::TComponent* AAncestor, TUpdateManager* 
  119.         AAncestorManager);
  120.     __fastcall virtual ~TUpdateManager(void);
  121.     bool __fastcall CanRevert(Classes::TPersistent* Instance, Typinfo::PPropInfo PropInfo);
  122.     void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
  123.     void __fastcall Modified(void);
  124.     bool __fastcall NameExists(const System::AnsiString Name);
  125.     void __fastcall Revert(Classes::TPersistent* Instance, Typinfo::PPropInfo PropInfo);
  126.     void __fastcall Update(void);
  127.     __property Classes::TNotifyEvent OnUpdating = {read=FOnUpdating, write=FOnUpdating};
  128.     __property Classes::TNotifyEvent OnUpdate = {read=FOnUpdate, write=FOnUpdate};
  129.     __property Classes::TComponent* Component = {read=FComponent, nodefault};
  130.     __property Classes::TComponent* Ancestor = {read=FAncestor, nodefault};
  131.     __property bool HasDescendents = {read=GetHasDescendents, nodefault};
  132.     __property bool IsDescendent = {read=GetIsDescendent, nodefault};
  133. };
  134.  
  135. //-- var, const, procedure ---------------------------------------------------
  136.  
  137. }    /* namespace Update */
  138.  
  139. #pragma warn .par
  140. #pragma warn .hid 
  141. #pragma warn .inl
  142.  
  143. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  144. using namespace Update;
  145. #endif
  146. //-- end unit ----------------------------------------------------------------
  147. #endif    // Update
  148.