InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
VOSCursor.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: EricM
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //========================================================================================
23 
24 #ifndef __VOSCURSOR__
25 #define __VOSCURSOR__
26 
27 #include "VOSSimpleCursor.h"
28 
29 class IVOSCache;
30 class IVOSDiskPage;
31 
32 
48 {
49  public:
50  VOS_Cursor(IVOSCache* cache);
51  VOS_Cursor(IVOSCache* cache, IVOSDiskPage* block, int32 offset);
52  VOS_Cursor(const VOS_SimpleCursor& cursor);
53  ~VOS_Cursor();
54 
59  VOS_Cursor GetPrevious(bool16 *found = nil) const;
60 
65  VOS_Cursor GetNext(bool16 *found = nil) const;
66 
71  void AppendAfter(VOS_Object *object, bool16 duplicate = kTrue);
72 
78  void AppendAfterAndMove(VOS_Object *object, bool16 duplicate = kTrue);
79 
84  void InsertBefore(VOS_Object *object, bool16 duplicate = kTrue);
85 
90  void ReplaceObjectWith(VOS_Object *obj, bool16 duplicate = kTrue);
91 
92 #ifdef DEBUG
93  private:
96  // In a multi-threaded environment these stats may not be updated accurately.
97  // Atomic add and subtracts of these stats are required in order to have accurate values.
98  // This would put a great overhead on the performance. Hence, we are not using atomic add and
99  // subtract expecting that these stats need not be accurate.
100  static int32 ts_Count;
101 #endif
102 
103  private:
104 
109  UID GetFirstPageOfStrand();
110 
111 };
112 
113 
114 
115 #endif // __VOSCURSOR__