]> git.saurik.com Git - cycript.git/blobdiff - cycript.hpp
Finished implementing array ffi.
[cycript.git] / cycript.hpp
index 87d8d2c4950ae05131c715bea482ffdb0ba57dec..05fc892edcdea24688c00834aa389f01614e21f2 100644 (file)
 #ifndef CYCRIPT_HPP
 #define CYCRIPT_HPP
 
+#ifdef __APPLE__
+#include <JavaScriptCore/JavaScriptCore.h>
+#else
 #include <JavaScriptCore/JavaScript.h>
+#endif
 
 #include <apr_pools.h>
 #include <ffi.h>
@@ -51,6 +55,8 @@
 
 #include <sqlite3.h>
 
+void CYInitialize();
+
 bool CYRecvAll_(int socket, uint8_t *data, size_t size);
 bool CYSendAll_(int socket, const uint8_t *data, size_t size);
 
@@ -78,6 +84,8 @@ void CYSetArgs(int argc, const char *argv[]);
 
 bool CYCastBool(JSContextRef context, JSValueRef value);
 double CYCastDouble(JSContextRef context, JSValueRef value);
+
+CYUTF8String CYPoolUTF8String(apr_pool_t *pool, JSContextRef context, JSStringRef value);
 const char *CYPoolCString(apr_pool_t *pool, JSContextRef context, JSStringRef value);
 
 JSValueRef CYGetProperty(JSContextRef context, JSObjectRef object, size_t index);
@@ -124,6 +132,7 @@ struct CYHooks {
 
     JSValueRef (*RuntimeProperty)(JSContextRef, CYUTF8String);
     void (*CallFunction)(JSContextRef, ffi_cif *, void (*)(), uint8_t *, void **);
+    void (*SetupContext)(JSContextRef);
 
     bool (*PoolFFI)(apr_pool_t *, JSContextRef, sig::Type *, ffi_type *, void *, JSValueRef);
     JSValueRef (*FromFFI)(JSContextRef, sig::Type *, ffi_type *, void *, bool, JSObjectRef);
@@ -133,7 +142,7 @@ extern struct CYHooks *hooks_;
 
 char *sqlite3_column_pooled(apr_pool_t *pool, sqlite3_stmt *stmt, int n);
 
-JSObjectRef CYMakePointer(JSContextRef context, void *pointer, sig::Type *type, ffi_type *ffi, JSObjectRef owner);
+JSObjectRef CYMakePointer(JSContextRef context, void *pointer, size_t length, sig::Type *type, ffi_type *ffi, JSObjectRef owner);
 
 void CYFinalize(JSObjectRef object);