Develop and Download Open Source Software

Browse CVS Repository

Contents of /tombo/Tombo/Src/RepositoryImpl.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.20 - (show annotations) (download) (as text)
Mon Sep 18 17:45:03 2006 UTC (17 years, 6 months ago) by hirami
Branch: MAIN
CVS Tags: B231, B230, Tombo_2_0b4, HEAD
Changes since 1.19: +7 -0 lines
File MIME type: text/x-chdr
* FIX: password timeout occures in serveral minutes even though timeout value is 60 min (#8952)
* FIX: "Use random filename" option is always ON even though check is off (#8960)
* FIX: PocketPC's menu is corrupt(#8961)

1 #ifndef REPOSITORYIMPL_H
2 #define REPOSITORYIMPL_H
3
4 class TomboURI;
5 class TString;
6 class Repository;
7 class URIOption;
8 class DirList;
9 class URIList;
10
11 class MemoNote;
12
13 /////////////////////////////////////////
14 // Repository implimentation
15 /////////////////////////////////////////
16 // The base class of implimentation
17
18 class RepositoryImpl {
19 private:
20 LPTSTR pRepName;
21 LPTSTR pDispName;
22 TomboURI *pRootURI;
23 DWORD nRepType;
24 DWORD nRepNameLen;
25
26 public:
27 RepositoryImpl();
28 virtual ~RepositoryImpl();
29
30 BOOL Init(LPCTSTR pRepName, LPCTSTR pDispName, DWORD nRepType);
31
32 LPCTSTR GetRepositoryName() { return pRepName; }
33 LPCTSTR GetDisplayName() { return pDispName; }
34 const TomboURI *GetRootURI() { return pRootURI; }
35 DWORD GetRepNameLen() { return nRepNameLen; }
36 DWORD GetRepositoryType() { return nRepType; }
37
38 ////////////////////////////
39 // Interface definitions
40
41 // clone this instance
42 virtual RepositoryImpl *Clone() = 0;
43
44 // get XML string to restore this subrepository
45 virtual LPTSTR GetXMLSaveString() = 0;
46
47 virtual BOOL Update(const TomboURI *pCurrentURI, LPCTSTR pData, TomboURI *pNewURI, TString *pNewHeadLine) = 0;
48 virtual BOOL Delete(const TomboURI *pURI, URIOption *pOption) = 0;
49 virtual BOOL Copy(const TomboURI *pCopyFrom, const TomboURI *pCopyTo, URIOption *pOption) = 0;
50 virtual BOOL Move(const TomboURI *pMoveFrom, const TomboURI *pMoveTo, URIOption *pOption) = 0;
51
52 virtual BOOL ChangeHeadLine(const TomboURI *pURI, LPCTSTR pReqNewHeadLine, URIOption *pOption) = 0;
53
54 virtual BOOL GetHeadLine(const TomboURI *pURI, TString *pHeadLine) = 0;
55
56 virtual BOOL GetOption(const TomboURI *pURI, URIOption *pOption) const = 0;
57 virtual BOOL SetOption(const TomboURI *pCurrentURI, URIOption *pOption) = 0;
58
59 virtual BOOL GetPhysicalPath(const TomboURI *pURI, TString *pFullPath) = 0;
60
61 virtual URIList *GetChild(const TomboURI *pFolder, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose) = 0;
62
63 virtual BOOL RequestAllocateURI(const TomboURI *pBaseURI, LPCTSTR pText, TString *pHeadLine, TomboURI *pURI, const TomboURI *pTemplateURI) = 0;
64
65 virtual BOOL GetAttribute(const TomboURI *pURI, NoteAttribute *pAttribute) = 0;
66 virtual BOOL SetAttribute(const TomboURI *pURI, const NoteAttribute *pAttribute) = 0;
67 virtual BOOL GetNoteAttribute(const TomboURI *pURI, UINT64 *pLastUpdate, UINT64 *pCreateDate, UINT64 *pFileSize) = 0;
68
69 virtual LPTSTR GetNoteData(const TomboURI *pURI) = 0;
70 virtual LPBYTE GetNoteDataNative(const TomboURI *pURI, LPDWORD pSize) = 0;
71
72 virtual BOOL ExecuteAssoc(const TomboURI *pURI, ExeAppType nType) = 0;
73 virtual BOOL MakeFolder(const TomboURI *pURI, LPCTSTR pFolderName) = 0;
74
75 ////////////////////////////
76 // helper function
77
78 BOOL IsEncrypted(const TomboURI *pURI);
79 };
80
81 ///////////////////////////////////////////////////////////////////
82 // Repository implimentation which stores notes to local file
83 ///////////////////////////////////////////////////////////////////
84
85 class LocalFileRepository : public RepositoryImpl {
86 LPTSTR pTopDir;
87
88 BOOL bKeepTitle;
89 BOOL bKeepCaret;
90 BOOL bSafeFileName;
91
92 protected:
93 //////////////////////////////////////////
94 // Save notes and its subroutines
95
96 BOOL Save(const TomboURI *pCurrentURI, LPCTSTR pMemo, TomboURI *pNewURI, TString *pHeadLine);
97
98 BOOL SaveIfHeadLineIsNotChanged(MemoNote *pNote, LPCTSTR pMemo, LPCTSTR pOrigFile);
99 BOOL SaveIfHeadLineIsChanged(MemoNote *pNote, LPCTSTR pMemo,
100 LPCTSTR pOrigFile, LPCTSTR pHeadLine,
101 TString *pNewHeadLine);
102
103 ////////////////////////////////////////
104 // Encryption/Decryption subroutines
105 BOOL EncryptLeaf(const TomboURI *pCurrentURI, URIOption *pOption);
106 BOOL DecryptLeaf(const TomboURI *pCurrentURI, URIOption *pOption);
107 BOOL EnDecryptFolder(const TomboURI *pCurrentURI, URIOption *pOption);
108
109 TomboURI *DoEncryptFile(const TomboURI *pOldURI, MemoNote *pNote, TString *pHeadLine);
110 BOOL NegotiateNewName(LPCTSTR pMemoPath, LPCTSTR pText,
111 LPCTSTR pMemoDir,
112 TString *pFullPath, LPCTSTR *ppNotePath, TString *pHeadLine);
113
114 ////////////////////////////////////////
115 // others
116 BOOL GetSafeFileName(const TString *pBasePath, TString *pNewName);
117 BOOL GetTDTFullPath(const TomboURI *pURI, TString *pTdtName);
118
119 public:
120 LocalFileRepository();
121 virtual ~LocalFileRepository();
122
123 BOOL Init(LPCTSTR pRepName, LPCTSTR pDispName, LPCTSTR pTopDir,
124 BOOL bKeepTitle, BOOL bKeepCaret, BOOL bSafeFileName);
125
126 // temporary method for refactoring
127 BOOL SetTopDir(LPCTSTR pDir);
128
129 ///////////////////////////////
130 // impliment RepositoryImpl methods
131
132 RepositoryImpl *Clone();
133 LPTSTR GetXMLSaveString();
134
135 BOOL Update(const TomboURI *pCurrentURI, LPCTSTR pData, TomboURI *pNewURI, TString *pNewHeadLine);
136 BOOL Delete(const TomboURI *pURI, URIOption *pOption);
137 BOOL Copy(const TomboURI *pCopyFrom, const TomboURI *pCopyTo, URIOption *pOption);
138 BOOL Move(const TomboURI *pMoveFrom, const TomboURI *pMoveTo, URIOption *pOption);
139
140 BOOL ChangeHeadLine(const TomboURI *pURI, LPCTSTR pReqNewHeadLine, URIOption *pOption);
141
142 BOOL GetHeadLine(const TomboURI *pURI, TString *pHeadLine);
143 BOOL GetPhysicalPath(const TomboURI *pURI, TString *pFullPath);
144
145 BOOL GetOption(const TomboURI *pURI, URIOption *pOption) const;
146
147 // change note status
148 BOOL SetOption(const TomboURI *pCurrentURI, URIOption *pOption);
149
150 DWORD GetList(const TomboURI *pFolder, DirList *pList, BOOL bSkipEncrypt, BOOL bLooseDecrypt);
151 URIList *GetChild(const TomboURI *pFolder, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);
152
153 BOOL RequestAllocateURI(const TomboURI *pBaseURI, LPCTSTR pText, TString *pHeadLine, TomboURI *pURI, const TomboURI *pTemplateURI);
154
155 BOOL GetAttribute(const TomboURI *pURI, NoteAttribute *pAttribute);
156 BOOL SetAttribute(const TomboURI *pURI, const NoteAttribute *pAttribute);
157 BOOL GetNoteAttribute(const TomboURI *pURI, UINT64 *pLastUpdate, UINT64 *pCreateDate, UINT64 *pFileSize);
158
159 LPTSTR GetNoteData(const TomboURI *pURI);
160 LPBYTE GetNoteDataNative(const TomboURI *pURI, LPDWORD pSize);
161
162 BOOL ExecuteAssoc(const TomboURI *pURI, ExeAppType nType);
163 BOOL MakeFolder(const TomboURI *pURI, LPCTSTR pFolderName);
164
165 BOOL GetKeepTitle() { return bKeepTitle; }
166 void SetKeepTitle(BOOL b) { bKeepTitle = b; }
167 BOOL GetKeepCaret() { return bKeepCaret; }
168 void SetKeepCaret(BOOL b) { bKeepCaret = b; }
169 BOOL GetSafeFileName() { return bSafeFileName; }
170 void SetSafeFileName(BOOL b) { bSafeFileName = b; }
171 };
172
173 ///////////////////////////////////////////////////////////////////
174 // virtual folder repository implimentation
175 ///////////////////////////////////////////////////////////////////
176 // in this time, VFolderRepository is psudo implementation.
177
178 class VFolderRepository : public RepositoryImpl {
179 public:
180 VFolderRepository();
181 virtual ~VFolderRepository();
182 BOOL Init(LPCTSTR pRepName, LPCTSTR pDispName);
183
184 RepositoryImpl *Clone();
185 LPTSTR GetXMLSaveString();
186
187 BOOL Update(const TomboURI *pCurrentURI, LPCTSTR pData, TomboURI *pNewURI, TString *pNewHeadLine);
188 BOOL Delete(const TomboURI *pURI, URIOption *pOption);
189 BOOL Copy(const TomboURI *pCopyFrom, const TomboURI *pCopyTo, URIOption *pOption);
190 BOOL Move(const TomboURI *pMoveFrom, const TomboURI *pMoveTo, URIOption *pOption);
191
192 BOOL ChangeHeadLine(const TomboURI *pURI, LPCTSTR pReqNewHeadLine, URIOption *pOption);
193
194 BOOL GetHeadLine(const TomboURI *pURI, TString *pHeadLine);
195
196 BOOL GetOption(const TomboURI *pURI, URIOption *pOption) const;
197 BOOL SetOption(const TomboURI *pCurrentURI, URIOption *pOption);
198
199 BOOL GetPhysicalPath(const TomboURI *pURI, TString *pFullPath);
200
201 URIList *GetChild(const TomboURI *pFolder, BOOL bSkipEncrypt, BOOL bLooseDecrypt, BOOL *pLoose);
202
203 BOOL RequestAllocateURI(const TomboURI *pBaseURI, LPCTSTR pText, TString *pHeadLine, TomboURI *pURI, const TomboURI *pTemplateURI);
204
205 BOOL GetAttribute(const TomboURI *pURI, NoteAttribute *pAttribute);
206 BOOL SetAttribute(const TomboURI *pURI, const NoteAttribute *pAttribute);
207 BOOL GetNoteAttribute(const TomboURI *pURI, UINT64 *pLastUpdate, UINT64 *pCreateDate, UINT64 *pFileSize);
208
209 LPTSTR GetNoteData(const TomboURI *pURI);
210 LPBYTE GetNoteDataNative(const TomboURI *pURI, LPDWORD pSize);
211
212 BOOL ExecuteAssoc(const TomboURI *pURI, ExeAppType nType);
213 BOOL MakeFolder(const TomboURI *pURI, LPCTSTR pFolderName);
214 };
215
216
217 #endif

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26