1 #ifndef CYCRIPT_STRING_HPP
2 #define CYCRIPT_STRING_HPP
10 CYUTF8String(const char *data, size_t size) :
16 bool operator ==(const char *value) const {
17 size_t length(strlen(data));
18 return length == size && memcmp(value, data, length) == 0;
22 struct CYUTF16String {
26 CYUTF16String(const uint16_t *data, size_t size) :
33 JSStringRef CYCopyJSString(const char *value);
34 JSStringRef CYCopyJSString(JSStringRef value);
35 JSStringRef CYCopyJSString(CYUTF8String value);
36 JSStringRef CYCopyJSString(JSContextRef context, JSValueRef value);
44 JSStringRelease(string_);
48 CYJSString(const CYJSString &rhs) :
49 string_(CYCopyJSString(rhs.string_))
53 template <typename Arg0_>
54 CYJSString(Arg0_ arg0) :
55 string_(CYCopyJSString(arg0))
59 template <typename Arg0_, typename Arg1_>
60 CYJSString(Arg0_ arg0, Arg1_ arg1) :
61 string_(CYCopyJSString(arg0, arg1))
65 CYJSString &operator =(const CYJSString &rhs) {
67 string_ = CYCopyJSString(rhs.string_);
80 operator JSStringRef() const {
85 size_t CYGetIndex(const CYUTF8String &value);
86 bool CYIsKey(CYUTF8String value);
87 bool CYGetOffset(const char *value, ssize_t &index);
89 const char *CYPoolCString(apr_pool_t *pool, JSContextRef context, JSValueRef value);
91 #endif/*CYCRIPT_STRING_HPP*/