SvnCpp
targets.hpp
Go to the documentation of this file.
1 /*
2  * ====================================================================
3  * Copyright (c) 2002-2009 The RapidSvn Group. All rights reserved.
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program (in the file GPL.txt.
17  * If not, see <http://www.gnu.org/licenses/>.
18  *
19  * This software consists of voluntary contributions made by many
20  * individuals. For exact contribution history, see the revision
21  * history and logs, available at http://rapidsvn.tigris.org/.
22  * ====================================================================
23  */
24 
25 #ifndef _SVNCPP_TARGETS_HPP_
26 #define _SVNCPP_TARGETS_HPP_
27 
28 // apr api
29 #include "apr_tables.h"
30 
31 // svncpp
32 #include "svncpp/path.hpp"
33 
34 namespace svn
35 {
36  // forward declarations
37  class Pool;
38 
39 
43  class Targets
44  {
45  public:
51  Targets(const PathVector & targets);
52 
59  Targets(const apr_array_header_t * targets);
60 
67  Targets(const char * target = 0);
68 
74  Targets(const Targets & targets);
75 
79  virtual ~Targets();
80 
87  const apr_array_header_t *
88  array(const Pool & pool) const;
89 
95  const PathVector &
96  targets() const;
97 
101  size_t size() const;
102 
108  operator const PathVector & () const
109  {
110  return m_targets;
111  }
112 
121  const Path
122  target() const;
123 
130  void
131  push_back(const Path & path);
132 
133 
137  void
138  clear();
139 
144  void
145  reserve(size_t size);
146 
147  private:
148  PathVector m_targets;
149  };
150 }
151 
152 #endif
153 /* -----------------------------------------------------------------
154  * local variables:
155  * eval: (load-file "../../rapidsvn-dev.el")
156  * end:
157  */