File indexing completed on 2024-05-12 04:38:53

0001 /*
0002     SPDX-FileCopyrightText: 2007 Andreas Pakulat <apaku@gmx.de>
0003     SPDX-FileCopyrightText: 2007 Matthew Woehlke <mw_triad@users.sourceforge.net>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef KDEVPLATFORM_IREPOSITORYVERSIONCONTROL_H
0009 #define KDEVPLATFORM_IREPOSITORYVERSIONCONTROL_H
0010 
0011 #include <QObject>
0012 
0013 class QString;
0014 class QStringList;
0015 
0016 namespace KDevelop
0017 {
0018 
0019 class VcsRevision;
0020 class VcsJob;
0021 
0022 class IRepositoryVersionControl
0023 {
0024 public:
0025     virtual ~IRepositoryVersionControl() {}
0026 
0027     /**
0028      * Copies the source location in the repository to the destination
0029      */
0030     virtual VcsJob* copy( const QString& commitMessage,
0031                           const QString& repoSrc,
0032                           const QString& repoDst,
0033                           const VcsRevision& srcRev ) = 0;
0034 
0035     /**
0036      * Moves the source location in the repository to the destination
0037      */
0038     virtual VcsJob* move( const QString& commitMessage,
0039                           const QString& repoSrc,
0040                           const QString& repoDst,
0041                           const VcsRevision& srcRev ) = 0;
0042 
0043 
0044     /**
0045      * Removes the source locations in the repository
0046      */
0047     virtual VcsJob* remove( const QString& commitMessage,
0048                             const QStringList& repoLocations ) = 0;
0049 };
0050 
0051 }
0052 
0053 Q_DECLARE_INTERFACE( KDevelop::IRepositoryVersionControl, "org.kdevelop.IRepositoryVersionControl" )
0054 
0055 #endif
0056