InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
LinkResourceStatePacket.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Michael Easter
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 // Description:
24 // This class contain information about a link resource used for resource state updates
25 // and automatic resolution of a missing resource.
26 //
27 //========================================================================================
28 
29 #ifndef __LinkResourceStatePacket__
30 #define __LinkResourceStatePacket__
31 
32 // ----- Includes -----
33 #include "AsyncWork.h"
34 
35 #include "IDataBase.h"
36 #include "ILinkManager.h"
37 #include "ILinkResource.h"
38 #include "IDTime.h"
39 #include "URI.h"
40 
41 
51 {
52 public:
68  bool bNotify,
69  IDataBase* db,
70  const UID& uid,
71  const URI& uri,
73  const WideString& stamp,
74  const IDTime& modTime,
75  uint64 size);
76 
81  virtual ~LinkResourceStatePacket();
82 
89  bool operator==(const LinkResourceStatePacket& rhs) const;
90 
96  ILinkManager::OperationType GetOperationType() const { return fOpType; }
97 
103  bool GetNotify() const { return fbNotify; }
104 
112  IDataBase* GetDatabase() const { return fDB; }
113 
118  UID GetResource() const { return fUID; }
119 
124  URI GetURI() const { return fURI; }
125 
130  void SetURI(const URI& uri);
131 
136  inline bool URIChanged() { return fURIChanged; }
137 
142  ILinkResource::ResourceState GetState() const { return fState; }
143 
149 
154  inline bool StateChanged() { return fStateChanged; }
155 
160  WideString GetStamp() const { return fStamp; }
161 
166  void SetStamp(const WideString& stamp);
167 
172  inline bool StampChanged() { return fStampChanged; }
173 
178  IDTime GetModTime() const { return fModTime; }
179 
184  void SetModTime(const IDTime& modTime);
185 
190  inline bool ModTimeChanged() { return fModTimeChanged; }
191 
196  uint64 GetSize() const { return fSize; }
197 
202  void SetSize(uint64 size);
203 
208  inline bool SizeChanged() { return fSizeChanged; }
209 
214  inline bool LinkResourceChanged() { return (fURIChanged || fStateChanged || fStampChanged || fModTimeChanged || fSizeChanged); }
215 
216 private:
217  // Prevent copy construction and assignment.
220 
222  bool fbNotify;
223 
224  IDataBase* fDB;
225  UID fUID;
226  URI fURI;
228  WideString fStamp;
229  IDTime fModTime;
230  uint64 fSize;
231 
232  bool fURIChanged;
233  bool fStateChanged;
234  bool fStampChanged;
235  bool fModTimeChanged;
236  bool fSizeChanged;
237 };
238 
239 #endif // __LinkResourceStatePacket__