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