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 #ifdef WIN32
00018
00019 #pragma warning(disable: 4786)
00020 #endif
00021
00022
00023 #include <vector>
00024 #include <string>
00025
00026
00027 #include "context.hpp"
00028 #include "path.hpp"
00029
00030 namespace svn
00031 {
00032 struct PropertyEntry
00033 {
00034 std::string name;
00035 std::string value;
00036
00037 PropertyEntry (const char * name, const char * value);
00038 };
00039
00040
00041 class Path;
00042
00046 class Property
00047 {
00048 public:
00049 Property (Context * context = 0,
00050 const Path & path = "");
00051
00052 virtual ~Property ();
00053
00058 const std::vector<PropertyEntry> &
00059 entries () const
00060 {
00061 return m_entries;
00062 }
00063
00070 void set (const char * name, const char * value);
00071
00076 void remove (const char * name);
00077
00078 private:
00079 Context * m_context;
00080 Path m_path;
00081 std::vector<PropertyEntry> m_entries;
00082
00083 std::string getValue (const char * name);
00084 void list ();
00085
00086 };
00087
00088 }
00089
00090 #endif
00091
00092
00093
00094
00095