00001 #ifndef _pxattr_h_included_
00002 #define _pxattr_h_included_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include <string>
00029 #include <vector>
00030 using std::string;
00031 using std::vector;
00032
00065 namespace pxattr {
00067 enum nspace {
00069 PXATTR_USER
00070 };
00071
00073 enum flags {PXATTR_NONE=0,
00075 PXATTR_NOFOLLOW = 1,
00077 PXATTR_CREATE=2,
00079 PXATTR_REPLACE=4
00080 };
00081
00085 bool get(const string& path, const string& name, string* value,
00086 flags flags = PXATTR_NONE, nspace dom = PXATTR_USER);
00090 bool get(int fd, const string& name, string* value,
00091 flags flags = PXATTR_NONE, nspace dom = PXATTR_USER);
00095 bool set(const string& path, const string& name, const string& value,
00096 flags flags = PXATTR_NONE, nspace dom = PXATTR_USER);
00100 bool set(int fd, const string& name, const string& value,
00101 flags flags = PXATTR_NONE, nspace dom = PXATTR_USER);
00105 bool del(const string& path, const string& name,
00106 flags flags = PXATTR_NONE, nspace dom = PXATTR_USER);
00110 bool del(int fd, const string& name,
00111 flags flags = PXATTR_NONE, nspace dom = PXATTR_USER);
00115 bool list(const string& path, vector<string>* names,
00116 flags flags = PXATTR_NONE, nspace dom = PXATTR_USER);
00120 bool list(int fd, vector<string>* names,
00121 flags flags = PXATTR_NONE, nspace dom = PXATTR_USER);
00122
00127 bool sysname(nspace dom, const string& pname, string* sname);
00132 bool pxname(nspace dom, const string& sname, string* pname);
00133 }
00134
00135
00136 #endif