00001 /* 00002 * ==================================================================== 00003 * Copyright (c) 2002-2006 The RapidSvn Group. All rights reserved. 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Lesser General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2.1 of the License, or (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this library (in the file LGPL.txt); if not, 00017 * write to the Free Software Foundation, Inc., 51 Franklin St, 00018 * Fifth Floor, Boston, MA 02110-1301 USA 00019 * 00020 * This software consists of voluntary contributions made by many 00021 * individuals. For exact contribution history, see the revision 00022 * history and logs, available at http://rapidsvn.tigris.org/. 00023 * ==================================================================== 00024 */ 00025 00026 #ifndef _SVNCPP_TARGETS_HPP_ 00027 #define _SVNCPP_TARGETS_HPP_ 00028 00029 // stl 00030 #include <vector> 00031 00032 // apr api 00033 #include "apr_tables.h" 00034 00035 00036 namespace svn 00037 { 00038 // forward declarations 00039 class Path; 00040 class Pool; 00041 00045 class Targets 00046 { 00047 public: 00053 Targets (const std::vector<Path> & targets); 00054 00061 Targets (const apr_array_header_t * targets); 00062 00069 Targets (const char * target = 0); 00070 00076 Targets (const Targets & targets); 00077 00081 virtual ~Targets (); 00082 00089 const apr_array_header_t * 00090 array (const Pool & pool) const; 00091 00097 const std::vector<Path> & 00098 targets() const; 00099 00103 size_t size () const; 00104 00110 operator const std::vector<Path> & () const 00111 { 00112 return m_targets; 00113 } 00114 00123 const Path 00124 target () const; 00125 00126 00127 private: 00128 std::vector<Path> m_targets; 00129 }; 00130 } 00131 00132 #endif 00133 /* ----------------------------------------------------------------- 00134 * local variables: 00135 * eval: (load-file "../../rapidsvn-dev.el") 00136 * end: 00137 */