00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef _SVNCPP_CLIENT_H_
00015 #define _SVNCPP_CLIENT_H_
00016
00017
00018 #include <vector>
00019
00020
00021 #include "context.hpp"
00022 #include "path.hpp"
00023 #include "revision.hpp"
00024 #include "log_entry.hpp"
00025
00029 namespace svn
00030 {
00031
00032 class Context;
00033 class Notify;
00034 class Status;
00035 class Targets;
00036 class DirEntry;
00037
00038 typedef std::vector<LogEntry> LogEntries;
00039 typedef std::vector<Status> StatusEntries;
00040 typedef std::vector<DirEntry> DirEntries;
00041
00045 class Client
00046 {
00047 public:
00051 Client (Context * context = 0);
00052
00053 virtual ~Client ();
00054
00055
00059 const Context *
00060 getContext () const;
00061
00069 void
00070 setContext (Context * context = NULL);
00071
00084 StatusEntries
00085 status (const char * path,
00086 const bool descend = false,
00087 const bool get_all = true,
00088 const bool update = false,
00089 const bool no_ignore = false);
00090
00099 Status
00100 singleStatus (const char * path);
00101
00111 void
00112 checkout (const char * moduleName, const Path & destPath,
00113 const Revision & revision, bool recurse);
00114
00122 void
00123 notification (Notify * notify);
00124
00129 void
00130 remove (const Path & path, bool force);
00131
00139 void
00140 remove (const Targets & targets, bool force);
00141
00146 void
00147 revert (const Path & path, bool recurse);
00148
00153 void
00154 add (const Path & path, bool recurse);
00155
00165 void
00166 update (const Path & path, const Revision & revision,
00167 bool recurse);
00168
00177 std::string
00178 cat (const Path & path, const Revision & revision);
00179
00190 svn_revnum_t
00191 commit (const Targets & targets, const char * message, bool recurse);
00192
00197 void
00198 copy (const Path & srcPath,
00199 const Revision & srcRevision,
00200 const Path & destPath);
00201
00206 void
00207 move (const Path & srcPath,
00208 const Revision & srcRevision,
00209 const Path & destPath,
00210 bool force);
00211
00219 void
00220 mkdir (const Path & path, const char * message);
00221
00229 void
00230 mkdir (const Targets & targets, const char * message);
00231
00238 void
00239 cleanup (const Path & path);
00240
00245 void
00246 resolved (const Path & path, bool recurse);
00247
00258 void
00259 doExport (const Path & srcPath, const Path & destPath,
00260 const Revision & revision, bool force=false);
00261
00267 void
00268 doSwitch (const Path & path, const char * url,
00269 const Revision & revision, bool recurse);
00270
00280 void
00281 import (const Path & path, const char * url,
00282 const char * message, bool recurse);
00283
00288 void
00289 merge (const Path & path1, const Revision & revision1,
00290 const Path & path2, const Revision & revision2,
00291 const Path & localPath, bool force, bool recurse);
00292
00306 const LogEntries *
00307 log (const char * path, const Revision & revisionStart,
00308 const Revision & revisionEnd);
00309
00332 std::string
00333 diff (const Path & tmpPath, const Path & path,
00334 const Revision & revision1, const Revision & revision2,
00335 const bool recurse, const bool ignoreAncestry,
00336 const bool noDiffDeleted);
00337
00346 DirEntries
00347 ls (const char * pathOrUrl,
00348 svn_opt_revision_t * revision,
00349 bool recurse);
00350
00351 private:
00352 Context * m_context;
00353 Notify * m_notify;
00354
00358 Client & operator= (const Client &);
00359
00363 Client (const Client &);
00364
00365 };
00366
00367 }
00368
00369 #endif
00370
00371
00372
00373
00374