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