SvnCpp
property.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_PROPERTY_H_
26 #define _SVNCPP_PROPERTY_H_
27 
28 
29 // Ignore MSVC 6 compiler warning: debug symbol truncated
30 #if defined (_MSC_VER) && _MSC_VER <= 1200
31 #pragma warning (disable: 4786)
32 #endif
33 
34 // Ignore MSVC 7 compiler warning: C++ exception specification
35 #if defined (_MSC_VER) && _MSCVER > 1200 && _MSCVER <= 1310
36 #pragma warning (disable: 4290)
37 #endif
38 
39 
40 // stl
43 
44 // svncpp
45 #include "svncpp/context.hpp"
46 #include "svncpp/path.hpp"
47 
48 namespace svn
49 {
51  {
52  std::string name;
53  std::string value;
54 
55  PropertyEntry(const char * name, const char * value);
56  };
57 
58  // forward declarations
59  class Path;
60 
64  class Property
65  {
66  public:
67  Property(Context * context = 0,
68  const Path & path = "");
69 
70  virtual ~Property();
71 
76  const std::vector<PropertyEntry> &
77  entries() const
78  {
79  return m_entries;
80  }
81 
88  void set(const char * name, const char * value);
89 
94  void remove(const char * name);
95 
96  private:
97  Context * m_context;
98  Path m_path;
99  std::vector<PropertyEntry> m_entries;
100 
101  std::string getValue(const char * name);
102  void list();
103  };
104 }
105 
106 #endif
107 /* -----------------------------------------------------------------
108  * local variables:
109  * eval: (load-file "../../rapidsvn-dev.el")
110  * end:
111  */
PropertyEntry(const char *name, const char *value)
Property(Context *context=0, const Path &path="")
void set(const char *name, const char *value)
std::string value
Definition: property.hpp:53
Definition: context.hpp:48
Definition: path.hpp:37
Definition: annotate_line.hpp:31
const std::vector< PropertyEntry > & entries() const
Definition: property.hpp:77
std::string name
Definition: property.hpp:52
Definition: property.hpp:64
Definition: property.hpp:50
virtual ~Property()