Main Page | Namespace List | Class Hierarchy | Data Structures | File List | Namespace Members | Data Fields | Globals

client.hpp

Go to the documentation of this file.
00001 /* 00002 * ==================================================================== 00003 * Copyright (c) 2002-2004 The RapidSvn Group. All rights reserved. 00004 * 00005 * This software is licensed as described in the file LICENSE.txt, 00006 * which you should have received as part of this distribution. 00007 * 00008 * This software consists of voluntary contributions made by many 00009 * individuals. For exact contribution history, see the revision 00010 * history and logs, available at http://rapidsvn.tigris.org/. 00011 * ==================================================================== 00012 */ 00013 00014 #ifndef _SVNCPP_CLIENT_H_ 00015 #define _SVNCPP_CLIENT_H_ 00016 00017 // Ignore MSVC 6 compiler warning: debug symbol truncated 00018 #if defined (_MSC_VER) && _MSC_VER <= 1200 00019 #pragma warning (disable: 4786) 00020 #endif 00021 00022 // Ignore MSVC 7 compiler warning: C++ exception specification 00023 #if defined (_MSC_VER) && _MSC_VER > 1200 && _MSC_VER <= 1310 00024 #pragma warning (disable: 4290) 00025 #endif 00026 00027 00028 // stl 00029 #include <vector> 00030 #include <utility> 00031 #include <map> 00032 00033 // svncpp 00034 #include "svncpp/context.hpp" 00035 #include "svncpp/exception.hpp" 00036 #include "svncpp/path.hpp" 00037 #include "svncpp/entry.hpp" 00038 #include "svncpp/revision.hpp" 00039 #include "svncpp/log_entry.hpp" 00040 #include "svncpp/annotate_line.hpp" 00041 00042 00043 namespace svn 00044 { 00045 // forward declarations 00046 class Context; 00047 class Status; 00048 class Targets; 00049 class DirEntry; 00050 00051 typedef std::vector<LogEntry> LogEntries; 00052 typedef std::vector<Status> StatusEntries; 00053 typedef std::vector<DirEntry> DirEntries; 00054 typedef std::vector<AnnotateLine> AnnotatedFile; 00055 00056 // map of property names to values 00057 typedef std::map<std::string,std::string> PropertiesMap; 00058 // pair of path, PropertiesMap 00059 typedef std::pair<std::string, PropertiesMap> PathPropertiesMapEntry; 00060 // vector of path, Properties pairs 00061 typedef std::vector<PathPropertiesMapEntry> PathPropertiesMapList; 00062 00066 class Client 00067 { 00068 public: 00072 Client (Context * context = 0); 00073 00074 virtual ~Client (); 00075 00076 00080 const Context * 00081 getContext () const; 00082 00090 void 00091 setContext (Context * context = NULL); 00092 00105 StatusEntries 00106 status (const char * path, 00107 const bool descend = false, 00108 const bool get_all = true, 00109 const bool update = false, 00110 const bool no_ignore = false) throw (ClientException); 00111 00120 Status 00121 singleStatus (const char * path) throw (ClientException); 00122 00132 svn_revnum_t 00133 checkout (const char * moduleName, const Path & destPath, 00134 const Revision & revision, 00135 bool recurse) throw (ClientException); 00136 00141 void 00142 relocate (const Path & path, const char *from_url, 00143 const char *to_url, bool recurse) throw (ClientException); 00144 00149 void 00150 remove (const Path & path, bool force) throw (ClientException); 00151 00159 void 00160 remove (const Targets & targets, 00161 bool force) throw (ClientException); 00162 00167 void 00168 revert (const Targets & targets, bool recurse) throw (ClientException); 00169 00170 00175 void 00176 add (const Path & path, bool recurse) throw (ClientException); 00177 00187 svn_revnum_t 00188 update (const Path & path, const Revision & revision, 00189 bool recurse) throw (ClientException); 00190 00199 std::string 00200 cat (const Path & path, 00201 const Revision & revision) throw (ClientException); 00202 00203 00219 void 00220 get (Path & dstPath, const Path & path, 00221 const Revision & revision) throw (ClientException); 00222 00223 00233 AnnotatedFile * 00234 annotate (const Path & path, 00235 const Revision & revisionStart, 00236 const Revision & revisionEnd) throw (ClientException); 00237 00248 svn_revnum_t 00249 commit (const Targets & targets, 00250 const char * message, 00251 bool recurse) throw (ClientException); 00252 00257 void 00258 copy (const Path & srcPath, 00259 const Revision & srcRevision, 00260 const Path & destPath) throw (ClientException); 00261 00266 void 00267 move (const Path & srcPath, 00268 const Revision & srcRevision, 00269 const Path & destPath, 00270 bool force) throw (ClientException); 00271 00281 void 00282 mkdir (const Path & path, 00283 const char * message) throw (ClientException); 00284 void 00285 mkdir (const Targets & targets, 00286 const char * message) throw (ClientException); 00287 00294 void 00295 cleanup (const Path & path) throw (ClientException); 00296 00301 void 00302 resolved (const Path & path, bool recurse) throw (ClientException); 00303 00314 svn_revnum_t 00315 doExport (const Path & srcPath, 00316 const Path & destPath, 00317 const Revision & revision, 00318 bool force=false) throw (ClientException); 00319 00325 svn_revnum_t 00326 doSwitch (const Path & path, const char * url, 00327 const Revision & revision, 00328 bool recurse) throw (ClientException); 00329 00339 void 00340 import (const Path & path, const char * url, 00341 const char * message, 00342 bool recurse) throw (ClientException); 00343 00348 void 00349 merge (const Path & path1, const Revision & revision1, 00350 const Path & path2, const Revision & revision2, 00351 const Path & localPath, bool force, 00352 bool recurse, 00353 bool notice_ancestry=false, 00354 bool dry_run=false) throw (ClientException); 00355 00363 Entry 00364 info (const char *path ); 00365 00381 const LogEntries * 00382 log (const char * path, const Revision & revisionStart, 00383 const Revision & revisionEnd, 00384 bool discoverChangedPaths=false, 00385 bool strictNodeHistory=true) throw (ClientException); 00386 00409 std::string 00410 diff (const Path & tmpPath, const Path & path, 00411 const Revision & revision1, const Revision & revision2, 00412 const bool recurse, const bool ignoreAncestry, 00413 const bool noDiffDeleted) throw (ClientException); 00414 00423 DirEntries 00424 ls (const char * pathOrUrl, 00425 svn_opt_revision_t * revision, 00426 bool recurse) throw (ClientException); 00427 00437 PathPropertiesMapList 00438 proplist(const Path &path, 00439 const Revision &revision, 00440 bool recurse=false); 00441 00452 PathPropertiesMapList 00453 propget(const char *propName, 00454 const Path &path, 00455 const Revision &revision, 00456 bool recurse=false); 00457 00469 void 00470 propset(const char *propName, 00471 const char *propValue, 00472 const Path &path, 00473 const Revision &revision, 00474 bool recurse=false); 00475 00485 void 00486 propdel(const char *propName, 00487 const Path &path, 00488 const Revision &revision, 00489 bool recurse=false); 00490 00491 00500 std::pair<svn_revnum_t,PropertiesMap> 00501 revproplist(const Path &path, 00502 const Revision &revision); 00503 00513 std::pair<svn_revnum_t,std::string> 00514 revpropget(const char *propName, 00515 const Path &path, 00516 const Revision &revision); 00517 00529 svn_revnum_t 00530 revpropset(const char *propName, 00531 const char *propValue, 00532 const Path &path, 00533 const Revision &revision, 00534 bool force=false); 00535 00546 svn_revnum_t 00547 revpropdel(const char *propName, 00548 const Path &path, 00549 const Revision &revision, 00550 bool force=false); 00551 00552 00553 private: 00554 Context * m_context; 00555 00559 Client & operator= (const Client &); 00560 00564 Client (const Client &); 00565 00566 }; 00567 00568 } 00569 00570 #endif 00571 /* ----------------------------------------------------------------- 00572 * local variables: 00573 * eval: (load-file "../../rapidsvn-dev.el") 00574 * end: 00575 */

Generated on Thu Sep 2 20:34:39 2004 for SvnCpp by doxygen 1.3.8