1 // TortoiseSVN - a Windows shell extension for easy version control
3 // Copyright (C) 2007-2007 - TortoiseSVN
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 ///////////////////////////////////////////////////////////////
22 // temporarily used to disambiguate LogChangedPath definitions
23 ///////////////////////////////////////////////////////////////
25 #ifndef __ILOGRECEIVER_H__
26 #define __ILOGRECEIVER_H__
29 ///////////////////////////////////////////////////////////////
31 ///////////////////////////////////////////////////////////////
33 //#include "svn_types.h"
37 * data structure to accommodate the change list.
42 // CString sCopyFromPath;
46 /// returns the action as a string
47 const CString
& GetAction() const;
51 /// cached return value of GetAction()
52 mutable CString actionAsString
;
57 /// auto-deleting extension of MFC Arrays for pointer arrays
60 class CAutoArray
: public CArray
<T
*,T
*>
64 // default and copy construction
70 CAutoArray (const CAutoArray
& rhs
)
75 // destruction deletes members
79 for (INT_PTR i
= 0, count
= GetCount(); i
< count
; ++i
)
84 typedef CAutoArray
<LogChangedPath
> LogChangedPathArray
;
87 * standard revision properties
90 struct StandardRevProps
93 // apr_time_t timeStamp;
98 * data structure to accommodate the list of user-defined revision properties.
106 typedef CAutoArray
<UserRevProp
> UserRevPropArray
;
110 * Interface for receiving log information. It will be used as a callback
111 * in ILogQuery::Log().
113 * To cancel the log and/or indicate errors, throw an SVNError exception.
119 /// call-back for every revision found
120 /// (called at most once per revision)
122 /// the implementation may modify but not delete()
123 /// the data containers passed to it
125 /// any pointer may be NULL
127 /// may throw a SVNError to cancel the log
129 virtual void ReceiveLog ( LogChangedPathArray
* changes
131 , const StandardRevProps
* stdRevProps
132 , UserRevPropArray
* userRevProps
133 , bool mergesFollow
) = 0;