InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CusDtLnkLinkAssetConverter.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: SusanCL
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 __CusDtLnkLinkResourceConverter__
25 #define __CusDtLnkLLinkResourceConverter__
26 
27 // ----- Includes -----
28 #include "ILinkResource.h"
29 
30 #include "CPMUnknown.h"
31 #include "IDTime.h"
32 #include "WideString.h"
33 #include "URI.h"
34 
35 class FileTypeInfo;
36 class IPMStream;
37 class IDataLink;
38 
39 //========================================================================================
40 // Class CusDtLnkLinkAssetConverter
41 //========================================================================================
42 class CusDtLnkLinkAssetConverter : public CPMUnknown<ILinkResource>
43 {
44 public:
46 
48  virtual ~CusDtLnkLinkAssetConverter();
49 
50  virtual ResourceId GetURI() const { return fId; }
51  virtual ResourceId GetId() const { return fId; }
52  virtual bool IsIdEquivalent(const ResourceId& id) const { ASSERT_UNIMPLEMENTED(); return false; }
53 
54  virtual LinkClientID GetClientID() const { return fClientId; }
55 
56  virtual WideString GetShortName(bool bUIName) const;
57  virtual WideString GetLongName(bool bUIName) const;
58 
59  virtual ResourceState GetState() const { return fState; }
60  virtual void SetState(ResourceState state);
61 
62  virtual ResourceStoreState GetStoreState() const { return fStoreState; }
63  virtual void SetContainedInObject() { ASSERT_UNIMPLEMENTED(); }
64 
65  virtual ResourceStamp GetStamp() const { return fStamp; }
66  virtual void SetStamp(const ResourceStamp& stamp);
67  virtual bool IsStampEquivalent(const ResourceStamp& stamp) const;
68 
69  virtual IDTime GetModTime() const { return fModTime; };
70  virtual void SetModTime(const IDTime& time);
71 
72  virtual uint64 GetSize() const { return fSize; }
73  virtual void SetSize(uint64 size);
74 
75  virtual FileTypeInfo GetDataType() const;
76  virtual PMString GetFormatType() const { return fFormatType; }
77  virtual void SetFormatType(const PMString& formatType);
78 
79  virtual bool IsAccessSupported(AccessMode mode) const;
80  virtual bool CanQueryStream(AccessMode mode) const;
81  virtual IPMStream* QueryStream(AccessMode mode) const;
82 
83  virtual bool CanCache() const {ASSERT_UNIMPLEMENTED(); return false;}
84  virtual ErrorCode Cache() {ASSERT_UNIMPLEMENTED(); return kFailure;}
85  virtual ErrorCode Uncache() {ASSERT_UNIMPLEMENTED(); return kFailure;}
86 
87  virtual bool CanEmbed() const {ASSERT_UNIMPLEMENTED(); return false;}
88  virtual ErrorCode Embed() {ASSERT_UNIMPLEMENTED(); return kFailure;}
89 
90  virtual bool CanUnembed() const {ASSERT_UNIMPLEMENTED(); return false;}
91  virtual ErrorCode Unembed() {ASSERT_UNIMPLEMENTED(); return kFailure;}
92 
93  virtual bool CanCopyToFile() const { ASSERT_UNIMPLEMENTED(); return false; }
94  virtual ErrorCode CopyToFile(IDFile& file) const { ASSERT_UNIMPLEMENTED(); return kFailure; }
95 
96  virtual bool CanEdit() const {return false;}
97  virtual ErrorCode Edit(const AppInfo& appInfo, PMString* errorString) {ASSERT_UNIMPLEMENTED(); return kFailure;}
98 
99  virtual bool CanReveal() const { return false; }
100  virtual ErrorCode Reveal() { ASSERT_UNIMPLEMENTED(); return kFailure; }
101  virtual bool CanRevealInBridge() const { return false; }
102  virtual ErrorCode RevealInBridge() { ASSERT_UNIMPLEMENTED(); return kFailure; }
103  virtual bool CanRevealInCloudLibraries() const { return false; }
104  virtual ErrorCode RevealInCloudLibraries() { ASSERT_UNIMPLEMENTED(); return kFailure; }
105 
106  virtual bool IsFPO() const { return false; }
107  virtual bool CanGetXMPPacketInfo() const { return false; }
108  virtual bool GetXMPPacketInfo(std::string& packet) const { return false; }
110  virtual bool CanDownloadOriginal() const { return false; }
111  virtual ErrorCode DownloadOriginal() { return kFailure; }
112  virtual ErrorCode AsyncDownloadOriginal(ILinkResource::DownloadCompletionFunction completionFunction) { return kFailure; }
113  virtual bool CanReplaceFPOWithOriginal() const { return false; }
114  virtual bool CanProvideFile() const { return false; }
115  virtual ErrorCode GetFile(IDFile& idFile) const { return kFailure; }
116 
117  virtual void AddChildren(const UIDList& children) { ASSERT_UNIMPLEMENTED(); return; }
118  virtual void DeleteChildren(const UIDList& children) { ASSERT_UNIMPLEMENTED(); return; }
119  virtual uint32 GetChildren(UIDList& children) const { ASSERT_UNIMPLEMENTED(); return 0; }
120  virtual uint32 GetNumChildren() const { ASSERT_UNIMPLEMENTED(); return 0; }
121 
122  virtual uint32 GetParents(UIDList& parents) const { ASSERT_UNIMPLEMENTED(); return 0; }
123 
124  virtual ErrorCode CopyAttributes(const UIDRef& resourceRef);
125 
126  virtual ErrorCode EmbedFromStream(IPMStream* stream) { ASSERT_UNIMPLEMENTED(); return kFailure; }
127 
128  // Specific to this implementation only
129  virtual ErrorCode Init(IDataLink* iDataLink, const URI& uri);
130  virtual bool CanGetLinkInstance() const { return false; };
131  virtual ErrorCode GetlinkInstance(PMString &pmStr) const { return kFailure; };
132 
133 private:
134  // Prevent copy construction and assignment.
137 
138  virtual ErrorCode Init(LinkClientID clientId, const URI& uri, const ClassID& providerId) { ASSERT_UNIMPLEMENTED(); return kFailure; }
139  virtual ErrorCode SoftInit(const ResourceId& resourceId) { ASSERT_UNIMPLEMENTED(); return kFailure; }
140  virtual void DeleteOwnedObjects() { ASSERT_UNIMPLEMENTED(); }
141 
142  bool GetCurrentTimeAndSizeFromURI(ATime& currentTime, uint64& currentSize);
143  bool ConstructStampFromURI(WideString& newStamp);
144  void ConstructStampFromTimeSize(ATime storedTime, uint64 storedSize, WideString& newStamp);
145 
146  bool TimeStampsCloseEnough(uint64 storedTimeStamp, uint64 currentTimeStamp);
147 
148  // Stream query methods
149  IPMStream* QueryReadStream() const;
150 
151 
152  // Member variables
153  IDataBase* fDB;
154 
155  ResourceId fId;
156  LinkClientID fClientId;
157  uint64 fSize;
158  IDTime fModTime;
159  ResourceState fState;
160  ResourceStamp fStamp;
161  PMString fFormatType;
162  ResourceStoreState fStoreState;
163  UID fStoredResourceUID;
164 };
165 
166 #endif // __CusDtLnkLinkResourceConverter__