00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _SVNCPP_PROPERTY_H_
00027 #define _SVNCPP_PROPERTY_H_
00028
00029
00030
00031 #if defined (_MSC_VER) && _MSC_VER <= 1200
00032 #pragma warning (disable: 4786)
00033 #endif
00034
00035
00036 #if defined (_MSC_VER) && _MSCVER > 1200 && _MSCVER <= 1310
00037 #pragma warning (disable: 4290)
00038 #endif
00039
00040
00041
00042 #include <vector>
00043 #include <string>
00044
00045
00046 #include "svncpp/context.hpp"
00047 #include "svncpp/path.hpp"
00048
00049
00050 namespace svn
00051 {
00052 struct PropertyEntry
00053 {
00054 std::string name;
00055 std::string value;
00056
00057 PropertyEntry (const char * name, const char * value);
00058 };
00059
00060
00061 class Path;
00062
00066 class Property
00067 {
00068 public:
00069 Property (Context * context = 0,
00070 const Path & path = "");
00071
00072 virtual ~Property ();
00073
00078 const std::vector<PropertyEntry> &
00079 entries () const
00080 {
00081 return m_entries;
00082 }
00083
00090 void set (const char * name, const char * value);
00091
00096 void remove (const char * name);
00097
00098 private:
00099 Context * m_context;
00100 Path m_path;
00101 std::vector<PropertyEntry> m_entries;
00102
00103 std::string getValue (const char * name);
00104 void list ();
00105
00106 };
00107
00108 }
00109
00110 #endif
00111
00112
00113
00114
00115