File indexing completed on 2024-04-28 05:42:11
0001 /*************************************************************************** 0002 * Copyright (C) 2007-2009 by Rajko Albrecht ral@alwins-world.de * 0003 * https://kde.org/applications/development/org.kde.kdesvn * 0004 * * 0005 * This program is free software; you can redistribute it and/or * 0006 * modify it under the terms of the GNU Lesser General Public * 0007 * License as published by the Free Software Foundation; either * 0008 * version 2.1 of the License, or (at your option) any later version. * 0009 * * 0010 * This program is distributed in the hope that it will be useful, * 0011 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 0012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 0013 * Lesser General Public License for more details. * 0014 * * 0015 * You should have received a copy of the GNU Lesser General Public * 0016 * License along with this program (in the file LGPL.txt); if not, * 0017 * write to the Free Software Foundation, Inc., 51 Franklin St, * 0018 * Fifth Floor, Boston, MA 02110-1301 USA * 0019 * * 0020 * This software consists of voluntary contributions made by many * 0021 * individuals. For exact contribution history, see the revision * 0022 * history and logs, available at https://commits.kde.org/kdesvn. * 0023 ***************************************************************************/ 0024 0025 #ifndef SVNQT_TYPES_H 0026 #define SVNQT_TYPES_H 0027 0028 #include <QMap> 0029 #include <QPair> 0030 #include <QSharedPointer> 0031 #include <QVector> 0032 0033 namespace svn 0034 { 0035 // forward declarations 0036 class AnnotateLine; 0037 class Context; 0038 class DirEntry; 0039 class Entry; 0040 class InfoEntry; 0041 class LogEntry; 0042 class Revision; 0043 class Status; 0044 class Targets; 0045 class Path; 0046 class StringArray; 0047 class CommitItem; 0048 class CopyParameter; 0049 class DiffParameter; 0050 class StatusParameter; 0051 class LogParameter; 0052 class PropertiesParameter; 0053 class MergeParameter; 0054 class CheckoutParameter; 0055 class CommitParameter; 0056 class AnnotateParameter; 0057 class UpdateParameter; 0058 0059 typedef QVector<AnnotateLine> AnnotatedFile; 0060 typedef QSharedPointer<svn::Context> ContextP; 0061 typedef QWeakPointer<svn::Context> ContextWP; 0062 0063 typedef QVector<DirEntry> DirEntries; 0064 typedef QVector<InfoEntry> InfoEntries; 0065 /// simple list of log entries 0066 typedef QVector<LogEntry> LogEntries; 0067 0068 /// map of logentries - key is revision 0069 typedef QMap<long, LogEntry> LogEntriesMap; 0070 typedef QSharedPointer<LogEntriesMap> LogEntriesMapPtr; 0071 0072 typedef QSharedPointer<Status> StatusPtr; 0073 typedef QVector<StatusPtr> StatusEntries; 0074 typedef QVector<Revision> Revisions; 0075 0076 /** Range of Revision */ 0077 typedef QPair<Revision, Revision> RevisionRange; 0078 /** list of revision ranges */ 0079 typedef QVector<RevisionRange> RevisionRanges; 0080 0081 /// map of property names to values 0082 typedef QMap<QString, QString> PropertiesMap; 0083 /// pair of path, PropertiesMap 0084 typedef QPair<QString, PropertiesMap> PathPropertiesMapEntry; 0085 /// vector of path, Properties pairs 0086 typedef QVector<PathPropertiesMapEntry> PathPropertiesMapList; 0087 /// shared pointer for properties 0088 typedef QSharedPointer<PathPropertiesMapList> PathPropertiesMapListPtr; 0089 0090 typedef QVector<Path> Paths; 0091 0092 typedef QVector<CommitItem> CommitItemList; 0093 0094 //! Mapper enum for svn_depth_t 0095 /*! 0096 * Until subversion prior 1.5 is supported by this lib we must hide the svn_depth_t enum from interface. 0097 * \since subversion 1.5 / svnqt 1.0 0098 * \sa svn_depth_t 0099 */ 0100 enum Depth { DepthUnknown, DepthExclude, DepthEmpty, DepthFiles, DepthImmediates, DepthInfinity }; 0101 0102 //! For search specific server capabilities 0103 /*! 0104 * \since subversion 1.5 0105 * when build with subversion earlier 1.5 this will not used. 0106 * \sa svn_repos_has_capability 0107 */ 0108 enum Capability { CapabilityMergeinfo = 0, CapabilityDepth, CapabilityCommitRevProps, CapabilityLogRevProps }; 0109 0110 namespace repository 0111 { 0112 class CreateRepoParameter; 0113 } 0114 } 0115 0116 #endif