forked from LeenkxTeam/LNXSDK
		
	
		
			
				
	
	
		
			933 lines
		
	
	
		
			43 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			933 lines
		
	
	
		
			43 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef HX_STDLIBS_H
 | |
| #define HX_STDLIBS_H
 | |
| 
 | |
| // --- Resource -------------------------------------------------------------
 | |
| 
 | |
| namespace haxe {
 | |
| 	namespace ds {
 | |
| 		class HXCPP_CLASS_ATTRIBUTES StringMap_obj;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| namespace hx
 | |
| {
 | |
| struct Resource
 | |
| {
 | |
|    String        mName;
 | |
|    int           mDataLength;
 | |
|    unsigned char *mData;
 | |
| 
 | |
|    bool operator<(const Resource &inRHS) const { return mName < inRHS.mName; }
 | |
| };
 | |
| 
 | |
| Resource *GetResources();
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES
 | |
| void RegisterResources(hx::Resource *inResources);
 | |
| 
 | |
| 
 | |
| struct AnyCast
 | |
| {
 | |
|    template<typename T>
 | |
|    explicit AnyCast(T* inPtr) : mPtr((void *)inPtr) { }
 | |
| 
 | |
|    template<typename T>
 | |
|    operator T*() const { return (T*)mPtr; }
 | |
| 
 | |
|    void *mPtr;
 | |
| };
 | |
| 
 | |
| } // end namespace hx
 | |
| 
 | |
| Array<String>        __hxcpp_resource_names();
 | |
| String               __hxcpp_resource_string(String inName);
 | |
| Array<unsigned char> __hxcpp_resource_bytes(String inName);
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| // System access
 | |
| Array<String>  __get_args();
 | |
| double         __time_stamp();
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void __hxcpp_print_string(const String &inV);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void __hxcpp_println_string(const String &inV);
 | |
| 
 | |
| template<typename T> inline void __hxcpp_println(T inV)
 | |
| {
 | |
|    Dynamic d(inV);
 | |
|    __hxcpp_println_string(d);
 | |
| }
 | |
| // Specialization that does not need dynamic boxing
 | |
| template<> inline void __hxcpp_println(String inV)
 | |
| {
 | |
|    __hxcpp_println_string(inV);
 | |
| }
 | |
| 
 | |
| template<typename T> inline void __hxcpp_print(T inV)
 | |
| {
 | |
|    Dynamic d(inV);
 | |
|    __hxcpp_print_string(d);
 | |
| }
 | |
| // Specialization that does not need dynamic boxing
 | |
| template<> inline void __hxcpp_print(String inV)
 | |
| {
 | |
|    __hxcpp_print_string(inV);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void __trace(Dynamic inPtr, Dynamic inData);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void __hxcpp_exit(int inExitCode);
 | |
| void           __hxcpp_stdlibs_boot();
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int hxcpp_alloc_kind();
 | |
| 
 | |
| // --- Maths ---------------------------------------------------------
 | |
| double __hxcpp_drand();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int __hxcpp_irand(int inMax);
 | |
| 
 | |
| // --- Casting/Converting ---------------------------------------------------------
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool  __instanceof(const Dynamic &inValue, const Dynamic &inType);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int   __int__(double x);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool  __hxcpp_same_closure(Dynamic &inF1,Dynamic &inF2);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic __hxcpp_parse_int(const String &inString);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES double __hxcpp_parse_float(const String &inString);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES double __hxcpp_parse_substr_float(const String &inString, int start, int len);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int __hxcpp_parse_substr_int(const String &inString, int start=0, int len=-1);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic __hxcpp_create_var_args(Dynamic &inArrayFunc);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void __hxcpp_set_float_format(String inFormat);
 | |
| 
 | |
| inline int _hx_idiv(int inNum,int inDenom) { return inNum/inDenom; }
 | |
| inline int _hx_imod(int inNum,int inDenom) { return inNum%inDenom; }
 | |
| inline int _hx_cast_int(int inX) { return inX; }
 | |
| inline int _hx_fast_floor(double inX) {
 | |
|    union Cast
 | |
|    {
 | |
|       double d;
 | |
|       long l;
 | |
|    };
 | |
|    Cast c;
 | |
|    c.d = (inX-0.5) + 6755399441055744.0;
 | |
|    return c.l;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| // --- CFFI helpers ------------------------------------------------------------------
 | |
| 
 | |
| // Used for accessing object fields by integer ID, rather than string ID.
 | |
| // Used mainly for neko ndll interaction.
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int           __hxcpp_field_to_id( const char *inField );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES const String &__hxcpp_field_from_id( int f );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int           __hxcpp_register_prim(const HX_CHAR *inName,void *inFunc);
 | |
| 
 | |
| // Get function pointer from dll file
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic __loadprim(String inLib, String inPrim,int inArgCount);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void *__hxcpp_get_proc_address(String inLib, String inPrim,bool inNdll, bool inQuietFail=false);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void __hxcpp_run_dll(String inLib, String inPrim);
 | |
| // Can assign to function pointer without error
 | |
| inline hx::AnyCast __hxcpp_cast_get_proc_address(String inLib, String inPrim,bool inQuietFail=false)
 | |
| {
 | |
|    return hx::AnyCast(__hxcpp_get_proc_address(inLib,inPrim,false,inQuietFail));
 | |
| }
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int __hxcpp_unload_all_libraries();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void __hxcpp_push_dll_path(String inPath);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String __hxcpp_get_dll_extension();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String __hxcpp_get_bin_dir();
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String __hxcpp_get_kind(Dynamic inObject);
 | |
| 
 | |
| 
 | |
| // Loading functions via name (dummy return value)
 | |
| 
 | |
| 
 | |
| 
 | |
| // --- haxe.io.BytesData ----------------------------------------------------------------
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void __hxcpp_bytes_of_string(Array<unsigned char> &outBytes,const String &inString);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void __hxcpp_string_of_bytes(Array<unsigned char> &inBytes,String &outString,int pos,int len,bool inCopyPointer=false);
 | |
| // UTF8 processing
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String __hxcpp_char_array_to_utf8_string(Array<int> &inChars,int inFirst=0, int inLen=-1);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<int> __hxcpp_utf8_string_to_char_array(String &inString);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String __hxcpp_char_bytes_to_utf8_string(String &inBytes);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String __hxcpp_utf8_string_to_char_bytes(String &inUTF8);
 | |
| 
 | |
| 
 | |
| #ifdef HXCPP_GC_GENERATIONAL
 | |
|    #define HX_MAP_THIS this, h
 | |
|    #define HX_MAP_THIS_ this,
 | |
|    #define HX_MAP_THIS_ARG hx::Object *owner, Dynamic &ioHash
 | |
| #else
 | |
|    #define HX_MAP_THIS h
 | |
|    #define HX_MAP_THIS_ 
 | |
|    #define HX_MAP_THIS_ARG Dynamic &ioHash
 | |
| #endif
 | |
| 
 | |
| // --- HashRoot ---------------------------------------------------------------------
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int           __root_hash_size(Dynamic *rtHash);
 | |
| 
 | |
| // --- IntHash ----------------------------------------------------------------------
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES inline hx::Object   *__int_hash_create() { return 0; }
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __int_hash_set(HX_MAP_THIS_ARG,int inKey,const Dynamic &value);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool          __int_hash_exists(Dynamic &hash,int inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool          __int_hash_remove(Dynamic &hash,int inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<int>    __int_hash_keys(Dynamic &hash);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic       __int_hash_values(Dynamic &hash);
 | |
| // Typed IntHash access...
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __int_hash_set_int(HX_MAP_THIS_ARG,int inKey,int inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __int_hash_set_string(HX_MAP_THIS_ARG,int inKey,::String inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __int_hash_set_float(HX_MAP_THIS_ARG,int inKey,Float inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __int_hash_set_int64(HX_MAP_THIS_ARG,int inKey,cpp::Int64 inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES ::String      __int_hash_to_string(Dynamic &hash);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __int_hash_clear(Dynamic &hash);
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic       __int_hash_get(Dynamic inHash,int inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int           __int_hash_get_int(Dynamic inHash,int inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES ::String      __int_hash_get_string(Dynamic inHash,int inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Float         __int_hash_get_float(Dynamic inHash,int inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES cpp::Int64    __int_hash_get_int64(Dynamic inHash,int inKey);
 | |
| inline  bool   __int_hash_get_bool(Dynamic inHash,int inKey) { return __int_hash_get_int(inHash,inKey); }
 | |
| 
 | |
| // --- Int64Hash -----------------------------------------------------------------------
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES inline hx::Object   *__int64_hash_create() { return 0; }
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void              __int64_hash_set(HX_MAP_THIS_ARG,cpp::Int64 inKey,const Dynamic &value);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool              __int64_hash_exists(Dynamic &hash,cpp::Int64 inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool              __int64_hash_remove(Dynamic &hash,cpp::Int64 inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<cpp::Int64> __int64_hash_keys(Dynamic &hash);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic           __int64_hash_values(Dynamic &hash);
 | |
| // Typed IntHash access...
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __int64_hash_set_int(HX_MAP_THIS_ARG,cpp::Int64 inKey,int inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __int64_hash_set_string(HX_MAP_THIS_ARG,cpp::Int64 inKey,::String inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __int64_hash_set_float(HX_MAP_THIS_ARG,cpp::Int64 inKey,Float inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __int64_hash_set_int64(HX_MAP_THIS_ARG,cpp::Int64 inKey,cpp::Int64 inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES ::String      __int64_hash_to_string(Dynamic &hash);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __int64_hash_clear(Dynamic &hash);
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic       __int64_hash_get(Dynamic inHash,cpp::Int64 inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int           __int64_hash_get_int(Dynamic inHash,cpp::Int64 inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES ::String      __int64_hash_get_string(Dynamic inHash,cpp::Int64 inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Float         __int64_hash_get_float(Dynamic inHash,cpp::Int64 inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES cpp::Int64    __int64_hash_get_int64(Dynamic inHash,cpp::Int64 inKey);
 | |
| inline  bool   __int64_hash_get_bool(Dynamic inHash,cpp::Int64 inKey) { return __int64_hash_get_int(inHash,inKey); }
 | |
| 
 | |
| // --- StringHash ----------------------------------------------------------------------
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __string_hash_set(HX_MAP_THIS_ARG,String inKey,const Dynamic &value,bool inForceDynamic=false);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool          __string_hash_exists(Dynamic &hash,String inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool          __string_hash_remove(Dynamic &hash,String inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array< ::String> __string_hash_keys(Dynamic &hash);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic       __string_hash_values(Dynamic &hash);
 | |
| // Typed StringHash access...
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __string_hash_set_int(HX_MAP_THIS_ARG,String inKey,int inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __string_hash_set_string(HX_MAP_THIS_ARG,String inKey,::String inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __string_hash_set_float(HX_MAP_THIS_ARG,String inKey,Float inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __string_hash_set_int64(HX_MAP_THIS_ARG,String inKey,cpp::Int64 inValue);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES ::String      __string_hash_map_substr(HX_MAP_THIS_ARG,String inKey,int inStart, int inLength);
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES ::String      __string_hash_to_string(Dynamic &hash);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES ::String      __string_hash_to_string_raw(Dynamic &hash);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __string_hash_clear(Dynamic &hash);
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic       __string_hash_get(Dynamic inHash,String inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic       __string_hash_get2(haxe::ds::StringMap_obj* map,String* inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int           __string_hash_get_int(Dynamic inHash,String inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES ::String      __string_hash_get_string(Dynamic inHash,String inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Float         __string_hash_get_float(Dynamic inHash,String inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES cpp::Int64    __string_hash_get_int64(Dynamic inHash,String inKey);
 | |
| inline  bool __string_hash_get_bool(Dynamic inHash,String inKey) { return __string_hash_get_int(inHash,inKey); }
 | |
| 
 | |
| // --- ObjectHash ----------------------------------------------------------------------
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __object_hash_set(HX_MAP_THIS_ARG,Dynamic inKey,const Dynamic &value,bool inWeakKey=false);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool          __object_hash_exists(Dynamic &hash,Dynamic inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool          __object_hash_remove(Dynamic &hash,Dynamic inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array< ::Dynamic> __object_hash_keys(Dynamic &hash);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic       __object_hash_values(Dynamic &hash);
 | |
| // Typed ObjectHash access...
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __object_hash_set_int(HX_MAP_THIS_ARG,Dynamic inKey,int inValue,bool inWeakKey=false);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __object_hash_set_string(HX_MAP_THIS_ARG,Dynamic inKey,::String inValue,bool inWeakKey=false);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __object_hash_set_float(HX_MAP_THIS_ARG,Dynamic inKey,Float inValue,bool inWeakKey=false);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __object_hash_set_int64(HX_MAP_THIS_ARG,Dynamic inKey,cpp::Int64 inValue,bool inWeakKey=false);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES ::String      __object_hash_to_string(Dynamic &hash);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void          __object_hash_clear(Dynamic &hash);
 | |
| 
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic       __object_hash_get(Dynamic inHash,Dynamic inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int           __object_hash_get_int(Dynamic inHash,Dynamic inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES ::String      __object_hash_get_string(Dynamic inHash,Dynamic inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Float         __object_hash_get_float(Dynamic inHash,Dynamic inKey);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES cpp::Int64    __object_hash_get_int64(Dynamic inHash,Dynamic inKey);
 | |
| inline bool  __object_hash_get_bool(Dynamic inHash,Dynamic inKey) { return __object_hash_get_int(inHash,inKey); }
 | |
| 
 | |
| // --- Date --------------------------------------------------------------------------
 | |
| 
 | |
| // returns Epoch UTC timestamp (in seconds); assumes that input date parts are considered to be in local timezone date/time representation
 | |
| double __hxcpp_new_date(int inYear,int inMonth,int inDay,int inHour, int inMin, int inSeconds,int inMilliseconds = 0);
 | |
| 
 | |
| double __hxcpp_utc_date(int inYear,int inMonth,int inDay,int inHour, int inMin, int inSeconds);
 | |
| int    __hxcpp_get_hours(double inSeconds);
 | |
| int    __hxcpp_get_minutes(double inSeconds);
 | |
| int    __hxcpp_get_seconds(double inSeconds);
 | |
| int    __hxcpp_get_year(double inSeconds);
 | |
| int    __hxcpp_get_month(double inSeconds);
 | |
| int    __hxcpp_get_date(double inSeconds);
 | |
| int    __hxcpp_get_day(double inSeconds);
 | |
| String __hxcpp_to_string(double inSeconds);
 | |
| double __hxcpp_date_now();
 | |
| 
 | |
| 
 | |
| int    __hxcpp_get_utc_hours(double inSeconds); /* returns hour part of UTC date/time representation of input time (Epoch, in seconds), 0-23 */
 | |
| int    __hxcpp_get_utc_minutes(double inSeconds); /* returns minutes part of UTC date/time representation of input time (Epoch, in seconds), 0-59 */
 | |
| int    __hxcpp_get_utc_seconds(double inSeconds); /* returns seconds part of UTC date/time representation of input time (Epoch, in seconds), 0-59 */
 | |
| int    __hxcpp_get_utc_year(double inSeconds); /* returns year part of UTC date/time representation of input time (Epoch, in seconds) */
 | |
| int    __hxcpp_get_utc_month(double inSeconds); /* returns month part of UTC date/time representation of input time (Epoch, in seconds), 0-January...11-December */
 | |
| int    __hxcpp_get_utc_date(double inSeconds); /* returns day of the month part of UTC date/time representation of input time (Epoch, in seconds), 1-31 */
 | |
| int    __hxcpp_get_utc_day(double inSeconds); /* returns day of the week part of UTC date/time representation of input time (Epoch, in seconds), 0-Sunday...6-Saturday */
 | |
| String __hxcpp_to_utc_string(double inSeconds); /* same as __hxcpp_to_string but in corresponding UTC format */
 | |
| 
 | |
| int    __hxcpp_is_dst(double inSeconds); /* is input time (Epoch UTC timestamp, in seconds)'s local time in DST ? 1 for true, 0 for false */
 | |
| double __hxcpp_timezone_offset(double inSeconds); /* input time (Epoch UTC timestamp, in seconds)'s local time zone offset from UTC, in seconds */
 | |
| double __hxcpp_from_utc(int inYear,int inMonth,int inDay,int inHour, int inMin, int inSeconds, int inMilliSeconds); /* returns Epoch timestamp (in seconds); assumes that input date parts are considered to be in UTC date/time representation */ 
 | |
| 
 | |
| 
 | |
| 
 | |
| double __hxcpp_time_stamp();
 | |
| 
 | |
| // --- vm/threading --------------------------------------------------------------------
 | |
| 
 | |
| Dynamic __hxcpp_thread_create(Dynamic inFunc);
 | |
| Dynamic __hxcpp_thread_current();
 | |
| void    __hxcpp_thread_send(Dynamic inThread, Dynamic inMessage);
 | |
| Dynamic __hxcpp_thread_read_message(bool inBlocked);
 | |
| bool __hxcpp_is_current_thread(hx::Object *inThread);
 | |
| 
 | |
| Dynamic __hxcpp_mutex_create();
 | |
| void    __hxcpp_mutex_acquire(Dynamic);
 | |
| bool    __hxcpp_mutex_try(Dynamic);
 | |
| void    __hxcpp_mutex_release(Dynamic);
 | |
| 
 | |
| Dynamic __hxcpp_semaphore_create(int);
 | |
| void __hxcpp_semaphore_acquire(Dynamic);
 | |
| bool __hxcpp_semaphore_try_acquire(Dynamic, double timeout);
 | |
| void __hxcpp_semaphore_release(Dynamic);
 | |
| 
 | |
| Dynamic __hxcpp_condition_create(void);
 | |
| void __hxcpp_condition_acquire(Dynamic);
 | |
| bool __hxcpp_condition_try_acquire(Dynamic);
 | |
| void __hxcpp_condition_release(Dynamic);
 | |
| void __hxcpp_condition_wait(Dynamic);
 | |
| bool __hxcpp_condition_timed_wait(Dynamic,double);
 | |
| void __hxcpp_condition_signal(Dynamic);
 | |
| void __hxcpp_condition_broadcast(Dynamic);
 | |
| 
 | |
| Dynamic __hxcpp_lock_create();
 | |
| bool    __hxcpp_lock_wait(Dynamic inlock,double inTime);
 | |
| void    __hxcpp_lock_release(Dynamic inlock);
 | |
| 
 | |
| Dynamic __hxcpp_deque_create();
 | |
| void    __hxcpp_deque_add(Dynamic q,Dynamic inVal);
 | |
| void    __hxcpp_deque_push(Dynamic q,Dynamic inVal);
 | |
| Dynamic __hxcpp_deque_pop(Dynamic q,bool block);
 | |
| 
 | |
| Dynamic __hxcpp_tls_get(int inID);
 | |
| void    __hxcpp_tls_set(int inID,Dynamic inVal);
 | |
| 
 | |
| bool _hx_atomic_exchange_if(::cpp::Pointer<cpp::AtomicInt> inPtr, int test, int newVal  );
 | |
| int _hx_atomic_inc(::cpp::Pointer<cpp::AtomicInt> inPtr );
 | |
| int _hx_atomic_dec(::cpp::Pointer<cpp::AtomicInt> inPtr );
 | |
| 
 | |
| // Assumptions made:
 | |
| //    People are not using 8 year old versions of GCC.
 | |
| 
 | |
| #if defined(__GNUC__) || defined(__clang__)
 | |
| #define HX_GCC_ATOMICS
 | |
| #define HX_HAS_ATOMIC 1
 | |
| #elif defined(_MSC_VER)
 | |
| #define HX_MSVC_ATOMICS
 | |
| #define HX_HAS_ATOMIC 1
 | |
| #include <intrin.h>
 | |
| #else
 | |
| #define HX_HAS_ATOMIC 0
 | |
| #endif
 | |
| 
 | |
| inline int _hx_atomic_add(volatile int *a, int b) {
 | |
| #if defined(HX_GCC_ATOMICS)
 | |
|   return __atomic_fetch_add(a, b, __ATOMIC_SEQ_CST);
 | |
| #elif defined(HX_MSVC_ATOMICS)
 | |
|   return _InterlockedExchangeAdd((long volatile *)a, b);
 | |
| #else
 | |
|    int old = *a;
 | |
|    *a += b;
 | |
|    return old;
 | |
| #endif
 | |
| }
 | |
| 
 | |
| inline int _hx_atomic_sub(volatile int *a, int b) {
 | |
| #if defined(HX_GCC_ATOMICS)
 | |
|   return __atomic_fetch_sub(a, b, __ATOMIC_SEQ_CST);
 | |
| #elif defined(HX_MSVC_ATOMICS)
 | |
|   return _InterlockedExchangeAdd((long volatile *)a, -b);
 | |
| #else
 | |
|    int old = *a;
 | |
|    *a -= b;
 | |
|    return old;
 | |
| #endif
 | |
| }
 | |
| 
 | |
| inline int _hx_atomic_and(volatile int *a, int b) {
 | |
| #if defined(HX_GCC_ATOMICS)
 | |
|   return __atomic_fetch_and(a, b, __ATOMIC_SEQ_CST);
 | |
| #elif defined(HX_MSVC_ATOMICS)
 | |
|   return _InterlockedAnd((long volatile *)a, b);
 | |
| #else
 | |
|    int old = *a;
 | |
|    *a &= b;
 | |
|    return old;
 | |
| #endif
 | |
| }
 | |
| 
 | |
| inline int _hx_atomic_or(volatile int *a, int b) {
 | |
| #if defined(HX_GCC_ATOMICS)
 | |
|   return __atomic_fetch_or(a, b, __ATOMIC_SEQ_CST);
 | |
| #elif defined(HX_MSVC_ATOMICS)
 | |
|   return _InterlockedOr((long volatile *)a, b);
 | |
| #else
 | |
|    int old = *a;
 | |
|    *a |= b;
 | |
|    return old;
 | |
| #endif
 | |
| }
 | |
| 
 | |
| inline int _hx_atomic_xor(int *a, int b) {
 | |
| #if defined(HX_GCC_ATOMICS)
 | |
|   return __atomic_fetch_xor(a, b, __ATOMIC_SEQ_CST);
 | |
| #elif defined(HX_MSVC_ATOMICS)
 | |
|   return _InterlockedXor((long volatile *)a, b);
 | |
| #else
 | |
|    int old = *a;
 | |
|    *a ^= b;
 | |
|    return old;
 | |
| #endif
 | |
| }
 | |
| 
 | |
| inline int _hx_atomic_compare_exchange(volatile int *a, int expected,
 | |
|                                        int replacement) {
 | |
| #if defined(HX_GCC_ATOMICS)
 | |
|    int _expected = expected;
 | |
|   __atomic_compare_exchange(a, &_expected, &replacement, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
 | |
|   return _expected;
 | |
| #elif defined(HX_MSVC_ATOMICS)
 | |
|   return _InterlockedCompareExchange((long volatile *)a, replacement, expected);
 | |
| #else
 | |
|    int old = *a;
 | |
|    if(old == expected) {
 | |
|       *a = replacement;
 | |
|    }
 | |
|    return old;
 | |
| #endif
 | |
| }
 | |
| 
 | |
| inline int _hx_atomic_exchange(volatile int *a, int replacement) {
 | |
| #if defined(HX_GCC_ATOMICS)
 | |
|    int ret = 0;
 | |
|   __atomic_exchange(a, &replacement, &ret, __ATOMIC_SEQ_CST);
 | |
|   return ret;
 | |
| #elif defined(HX_MSVC_ATOMICS)
 | |
|   return _InterlockedExchange((long volatile *)a, replacement);
 | |
| #else
 | |
|    int old = *a;
 | |
|    *a = replacement;
 | |
|    return old;
 | |
| #endif
 | |
| }
 | |
| 
 | |
| inline int _hx_atomic_load(volatile int *a) {
 | |
| #if defined(HX_GCC_ATOMICS)
 | |
|    int ret = 0;
 | |
|   __atomic_load(a, &ret, __ATOMIC_SEQ_CST);
 | |
|   return ret;
 | |
| #elif defined(HX_MSVC_ATOMICS)
 | |
|    return _InterlockedXor((long volatile *)a, 0);
 | |
| #else
 | |
|    return *a;
 | |
| #endif
 | |
| }
 | |
| 
 | |
| inline int _hx_atomic_store(volatile int *a, int value) {
 | |
| #if defined(HX_GCC_ATOMICS)
 | |
|   __atomic_store(a, &value, __ATOMIC_SEQ_CST);
 | |
|   return value;
 | |
| #elif defined(HX_MSVC_ATOMICS)
 | |
|    _InterlockedExchange((long volatile *)a, value);
 | |
|    return value;
 | |
| #else
 | |
|    *a = value;
 | |
|    return value;
 | |
| #endif
 | |
| }
 | |
| 
 | |
| inline void* _hx_atomic_compare_exchange_ptr(volatile void **a, void *expected, void* replacement) {
 | |
| #if defined(HX_GCC_ATOMICS)
 | |
|    void* _expected = expected;
 | |
|   __atomic_compare_exchange(a, (volatile void **)&_expected, (volatile void**)&replacement, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
 | |
|   return _expected;
 | |
| #elif defined(HX_MSVC_ATOMICS)
 | |
|   return _InterlockedCompareExchangePointer((void *volatile *)a, replacement, expected);
 | |
| #else
 | |
|    void *old = *a;
 | |
|    *a = replacement;
 | |
|    return old;
 | |
| #endif
 | |
| }
 | |
| 
 | |
| inline void* _hx_atomic_compare_exchange_cast_ptr(void *a, void *expected, void *replacement) {
 | |
|    return _hx_atomic_compare_exchange_ptr((volatile void **)a, expected, replacement);
 | |
| }
 | |
| 
 | |
| Array<String> __hxcpp_get_call_stack(bool inSkipLast);
 | |
| Array<String> __hxcpp_get_exception_stack();
 | |
| #define HXCPP_HAS_CLASSLIST
 | |
| Array<String> __hxcpp_get_class_list();
 | |
| 
 | |
| // --- Profile -------------------------------------------------------------------
 | |
| 
 | |
| void __hxcpp_start_profiler(::String inDumpFile);
 | |
| void __hxcpp_stop_profiler();
 | |
| 
 | |
| 
 | |
| // --- Memory --------------------------------------------------------------------------
 | |
| 
 | |
| inline void __hxcpp_align_set_float32( unsigned char *base, int addr, float v)
 | |
| {
 | |
|    #ifdef HXCPP_ALIGN_FLOAT
 | |
|    if (addr & 3)
 | |
|    {
 | |
|       const unsigned char *src = (const unsigned char *)&v;
 | |
|       unsigned char *dest = base + addr;
 | |
|       dest[0] = src[0];
 | |
|       dest[1] = src[1];
 | |
|       dest[2] = src[2];
 | |
|       dest[3] = src[3];
 | |
|    }
 | |
|    else
 | |
|    #endif
 | |
|    *(float *)(base+addr) = v;
 | |
| }
 | |
| 
 | |
| 
 | |
| inline float __hxcpp_align_get_float32( unsigned char *base, int addr)
 | |
| {
 | |
|    #ifdef HXCPP_ALIGN_FLOAT
 | |
|    if (addr & 3)
 | |
|    {
 | |
|       float buf;
 | |
|       unsigned char *dest = (unsigned char *)&buf;
 | |
|       const unsigned char *src = base + addr;
 | |
|       dest[0] = src[0];
 | |
|       dest[1] = src[1];
 | |
|       dest[2] = src[2];
 | |
|       dest[3] = src[3];
 | |
|       return buf;
 | |
|    }
 | |
|    #endif
 | |
|    return *(float *)(base+addr);
 | |
| }
 | |
| 
 | |
| 
 | |
| inline void __hxcpp_align_set_float64( unsigned char *base, int addr, double v)
 | |
| {
 | |
|    #ifdef HXCPP_ALIGN_FLOAT
 | |
|    if (addr & 3)
 | |
|    {
 | |
|       unsigned char *dest = base + addr;
 | |
|       const unsigned char *src = (const unsigned char *)&v;
 | |
|       dest[0] = src[0];
 | |
|       dest[1] = src[1];
 | |
|       dest[2] = src[2];
 | |
|       dest[3] = src[3];
 | |
|       dest[4] = src[4];
 | |
|       dest[5] = src[5];
 | |
|       dest[6] = src[6];
 | |
|       dest[7] = src[7];
 | |
|    }
 | |
|    else
 | |
|    #endif
 | |
|    *(double *)(base + addr) = v;
 | |
| }
 | |
| 
 | |
| 
 | |
| inline double __hxcpp_align_get_float64( unsigned char *base, int addr)
 | |
| {
 | |
|    #ifdef HXCPP_ALIGN_FLOAT
 | |
|    if (addr & 3)
 | |
|    {
 | |
|       double buf;
 | |
|       unsigned char *dest = (unsigned char *)&buf;
 | |
|       const unsigned char *src = base + addr;
 | |
|       dest[0] = src[0];
 | |
|       dest[1] = src[1];
 | |
|       dest[2] = src[2];
 | |
|       dest[3] = src[3];
 | |
|       dest[4] = src[4];
 | |
|       dest[5] = src[5];
 | |
|       dest[6] = src[6];
 | |
|       dest[7] = src[7];
 | |
|       return buf;
 | |
|    }
 | |
|    #endif
 | |
|    return *(double *)(base+addr);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| // Threadsafe methods - takes buffer
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void  __hxcpp_memory_memset(Array<unsigned char> &inBuffer ,int pos, int len, int value);
 | |
| 
 | |
| inline int __hxcpp_memory_get_byte(Array<unsigned char> inBuffer ,int addr) { return inBuffer->GetBase()[addr]; }
 | |
| inline double __hxcpp_memory_get_double(Array<unsigned char> inBuffer ,int addr) {
 | |
|    return __hxcpp_align_get_float64((unsigned char *)inBuffer->GetBase(), addr);
 | |
| }
 | |
| inline float __hxcpp_memory_get_float(Array<unsigned char> inBuffer ,int addr) {
 | |
|    return __hxcpp_align_get_float32((unsigned char *)inBuffer->GetBase(), addr);
 | |
| }
 | |
| inline int __hxcpp_memory_get_i16(Array<unsigned char> inBuffer ,int addr) { return *(short *)(inBuffer->GetBase()+addr); }
 | |
| inline int __hxcpp_memory_get_i32(Array<unsigned char> inBuffer ,int addr) { return *(int *)(inBuffer->GetBase()+addr); }
 | |
| inline int __hxcpp_memory_get_ui16(Array<unsigned char> inBuffer ,int addr) { return *(unsigned short *)(inBuffer->GetBase()+addr); }
 | |
| inline int __hxcpp_memory_get_ui32(Array<unsigned char> inBuffer ,int addr) { return *(unsigned int *)(inBuffer->GetBase()+addr); }
 | |
| inline float __hxcpp_memory_get_f32(Array<unsigned char> inBuffer ,int addr) {
 | |
|    return __hxcpp_align_get_float32((unsigned char *)inBuffer->GetBase(), addr);
 | |
| }
 | |
| 
 | |
| inline void __hxcpp_memory_set_byte(Array<unsigned char> inBuffer ,int addr,int v) { inBuffer->GetBase()[addr] = v; }
 | |
| inline void __hxcpp_memory_set_double(Array<unsigned char> inBuffer ,int addr,double v) {
 | |
|    return __hxcpp_align_set_float64((unsigned char *)inBuffer->GetBase(), addr,v);
 | |
| }
 | |
| inline void __hxcpp_memory_set_float(Array<unsigned char> inBuffer ,int addr,float v) {
 | |
|    return __hxcpp_align_set_float32((unsigned char *)inBuffer->GetBase(), addr,v);
 | |
| }
 | |
| inline void __hxcpp_memory_set_i16(Array<unsigned char> inBuffer ,int addr,int v) { *(short *)(inBuffer->GetBase()+addr) = v; }
 | |
| inline void __hxcpp_memory_set_i32(Array<unsigned char> inBuffer ,int addr,int v) { *(int *)(inBuffer->GetBase()+addr) = v; }
 | |
| inline void __hxcpp_memory_set_ui16(Array<unsigned char> inBuffer ,int addr,int v) { *(unsigned short *)(inBuffer->GetBase()+addr) = v; }
 | |
| inline void __hxcpp_memory_set_ui32(Array<unsigned char> inBuffer ,int addr,int v) { *(unsigned int *)(inBuffer->GetBase()+addr) = v; }
 | |
| inline void __hxcpp_memory_set_f32(Array<unsigned char> inBuffer ,int addr,float v) {
 | |
|    return __hxcpp_align_set_float32((unsigned char *)inBuffer->GetBase(), addr, v);
 | |
| }
 | |
| 
 | |
| 
 | |
| // Uses global pointer...
 | |
| extern unsigned char *__hxcpp_memory;
 | |
| 
 | |
| inline void __hxcpp_memory_clear( ) { __hxcpp_memory = 0; }
 | |
| inline void __hxcpp_memory_select( Array<unsigned char> inBuffer )
 | |
|    { __hxcpp_memory= (unsigned char *)inBuffer->GetBase(); }
 | |
| 
 | |
| inline int __hxcpp_memory_get_byte(int addr) { return __hxcpp_memory[addr]; }
 | |
| inline double __hxcpp_memory_get_double(int addr) { return __hxcpp_align_get_float64(__hxcpp_memory,addr); }
 | |
| inline float __hxcpp_memory_get_float(int addr) { return __hxcpp_align_get_float32(__hxcpp_memory,addr); }
 | |
| inline int __hxcpp_memory_get_i16(int addr) { return *(short *)(__hxcpp_memory+addr); }
 | |
| inline int __hxcpp_memory_get_i32(int addr) { return *(int *)(__hxcpp_memory+addr); }
 | |
| inline int __hxcpp_memory_get_ui16(int addr) { return *(unsigned short *)(__hxcpp_memory+addr); }
 | |
| inline int __hxcpp_memory_get_ui32(int addr) { return *(unsigned int *)(__hxcpp_memory+addr); }
 | |
| inline float __hxcpp_memory_get_f32(int addr) { return __hxcpp_align_get_float32(__hxcpp_memory,addr); }
 | |
| 
 | |
| inline void __hxcpp_memory_set_byte(int addr,int v) { __hxcpp_memory[addr] = v; }
 | |
| inline void __hxcpp_memory_set_double(int addr,double v) { __hxcpp_align_set_float64(__hxcpp_memory,addr,v); }
 | |
| inline void __hxcpp_memory_set_float(int addr,float v) { __hxcpp_align_set_float32(__hxcpp_memory,addr,v); }
 | |
| inline void __hxcpp_memory_set_i16(int addr,int v) { *(short *)(__hxcpp_memory+addr) = v; }
 | |
| inline void __hxcpp_memory_set_i32(int addr,int v) { *(int *)(__hxcpp_memory+addr) = v; }
 | |
| inline void __hxcpp_memory_set_ui16(int addr,int v) { *(unsigned short *)(__hxcpp_memory+addr) = v; }
 | |
| inline void __hxcpp_memory_set_ui32(int addr,int v) { *(unsigned int *)(__hxcpp_memory+addr) = v; }
 | |
| inline void __hxcpp_memory_set_f32(int addr,float v) { __hxcpp_align_set_float32(__hxcpp_memory,addr,v); }
 | |
| 
 | |
| // FPHelper conversion
 | |
| 
 | |
| inline void __hxcpp_reverse_endian(int &ioData)
 | |
| {
 | |
|    ioData =   (((ioData>>24) & 0xff )    )|
 | |
|               (((ioData>>16) & 0xff )<<8 )|
 | |
|               (((ioData>>8 ) & 0xff )<<16 )|
 | |
|               (((ioData    ) & 0xff )<<24  );
 | |
| }
 | |
| 
 | |
| 
 | |
| inline float __hxcpp_reinterpret_le_int32_as_float32(int inInt)
 | |
| {
 | |
|    #ifdef HXCPP_BIG_ENDIAN
 | |
|    __hxcpp_reverse_endian(inInt);
 | |
|    #endif
 | |
|    return *(float*)(&inInt);
 | |
| }
 | |
| 
 | |
| 
 | |
| inline int __hxcpp_reinterpret_float32_as_le_int32(float inFloat)
 | |
| {
 | |
|    #ifdef HXCPP_BIG_ENDIAN
 | |
|    __hxcpp_reverse_endian(*(int *)&inFloat);
 | |
|    #endif
 | |
|    return *(int*)(&inFloat);
 | |
| }
 | |
| 
 | |
| 
 | |
| inline double __hxcpp_reinterpret_le_int32s_as_float64(int inLow, int inHigh)
 | |
| {
 | |
|    int vals[2] = {inLow, inHigh};
 | |
|    #ifdef HXCPP_BIG_ENDIAN
 | |
|    __hxcpp_reverse_endian(vals[0]);
 | |
|    __hxcpp_reverse_endian(vals[1]);
 | |
|    #endif
 | |
|    return *(double*)(vals);
 | |
| }
 | |
| 
 | |
| 
 | |
| inline int __hxcpp_reinterpret_float64_as_le_int32_low(double inValue)
 | |
| {
 | |
|    int *asInts = (int *)&inValue;
 | |
|    #ifdef HXCPP_BIG_ENDIAN
 | |
|    __hxcpp_reverse_endian(asInts[0]);
 | |
|    #endif
 | |
|    return asInts[0];
 | |
| }
 | |
| 
 | |
| 
 | |
| inline int __hxcpp_reinterpret_float64_as_le_int32_high(double inValue)
 | |
| {
 | |
|    int *asInts = (int *)&inValue;
 | |
|    #ifdef HXCPP_BIG_ENDIAN
 | |
|    __hxcpp_reverse_endian(asInts[1]);
 | |
|    #endif
 | |
|    return asInts[1];
 | |
| }
 | |
| 
 | |
| #ifdef __OBJC__
 | |
| #ifdef HXCPP_OBJC
 | |
| 
 | |
| inline NSData *_hx_bytes_to_nsdata( ::Array<unsigned char> inBytes)
 | |
| {
 | |
|    if (!inBytes.mPtr)
 | |
|      return nil;
 | |
| 
 | |
|    return [NSData dataWithBytes: inBytes->getBase() length:inBytes->length ];
 | |
| 
 | |
| }
 | |
| 
 | |
| inline ::Array<unsigned char> _hx_nsdata_to_bytes(NSData *inData)
 | |
| {
 | |
|    if (inData==nil)
 | |
|       return null();
 | |
| 
 | |
|    return ::Array_obj<unsigned char>::fromData( (const unsigned char *)inData.bytes, inData.length );
 | |
| }
 | |
| 
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_regexp_new_options(String s, String options);
 | |
| 
 | |
| // EReg.hx -> src/hx/libs/regexp/RegExp.cpp
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_regexp_new_options(String s, String options);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool    _hx_regexp_match(Dynamic handle, String string, int pos, int len);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String  _hx_regexp_matched(Dynamic handle, int pos);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_regexp_matched_pos(Dynamic handle, int match);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int     _hx_regexp_matched_num(Dynamic handle);
 | |
| 
 | |
| 
 | |
| // haxe.zip.(Un)Compress.hx -> src/hx/libs/zlib/ZLib.cpp
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_deflate_init(int level);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_deflate_bound(Dynamic handle,int length);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_deflate_buffer(Dynamic handle, Array<unsigned char> src, int srcPos, Array<unsigned char> dest, int destPos);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_deflate_end(Dynamic handle);
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_inflate_init(Dynamic windowBits);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_inflate_buffer(Dynamic handle, Array<unsigned char> src, int srcPos, Array<unsigned char> dest, int destPos);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_inflate_end(Dynamic handle);
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_zip_set_flush_mode(Dynamic handle, String flushMode);
 | |
| 
 | |
| // sys.db.Mysql.hx -> src/hx/libs/regexp/RegExp.cpp
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_mysql_connect(Dynamic params);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void    _hx_mysql_select_db(Dynamic handle,String db);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_mysql_request(Dynamic handle,String req);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_mysql_close(Dynamic handle);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String  _hx_mysql_escape(Dynamic handle,String str);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int     _hx_mysql_result_get_length(Dynamic handle);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int     _hx_mysql_result_get_nfields(Dynamic handle);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_mysql_result_next(Dynamic handle);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String  _hx_mysql_result_get(Dynamic handle,int i);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int     _hx_mysql_result_get_int(Dynamic handle,int i);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Float   _hx_mysql_result_get_float(Dynamic handle,int i);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<String> _hx_mysql_result_get_fields_names(Dynamic handle);
 | |
| 
 | |
| namespace cpp { template<typename T> class Function; }
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_mysql_set_conversion(
 | |
|       cpp::Function< Dynamic(Dynamic) > inCharsToBytes,
 | |
|       cpp::Function< Dynamic(Float) > inTimeToDate );
 | |
| 
 | |
| // sys.db.Sqlite.hx -> src/hx/libs/sqlite/RegExp.cpp
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_sqlite_connect(String filename);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_sqlite_request(Dynamic handle,String req);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void    _hx_sqlite_close(Dynamic handle);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int     _hx_sqlite_last_insert_id(Dynamic handle);
 | |
| 
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int     _hx_sqlite_result_get_length(Dynamic handle);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int     _hx_sqlite_result_get_nfields(Dynamic handle);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_sqlite_result_next(Dynamic handle);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String  _hx_sqlite_result_get(Dynamic handle,int i);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int     _hx_sqlite_result_get_int(Dynamic handle,int i);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Float   _hx_sqlite_result_get_float(Dynamic handle,int i);
 | |
| 
 | |
| // src/hx/libs/std ..
 | |
| // File
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_std_file_open( String fname, String r );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_file_close( Dynamic handle );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_file_write( Dynamic handle, Array<unsigned char> s, int p, int n );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_file_write_char( Dynamic handle, int c );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_file_read( Dynamic handle, Array<unsigned char> buf, int p, int n );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_file_read_char( Dynamic handle );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_file_seek( Dynamic handle, int pos, int kind );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_file_tell( Dynamic handle );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool _hx_std_file_eof( Dynamic handle );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_file_flush( Dynamic handle );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_file_contents_string( String name );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<unsigned char> _hx_std_file_contents_bytes( String name );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_std_file_stdin();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_std_file_stdout();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_std_file_stderr();
 | |
| 
 | |
| // Process
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_std_process_run( String cmd, Array<String> vargs, int inShow= 1 /* SHOW_NORMAL */ );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_process_stdout_read( Dynamic handle, Array<unsigned char> buf, int pos, int len );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_process_stderr_read( Dynamic handle, Array<unsigned char> buf, int pos, int len );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_process_stdin_write( Dynamic handle, Array<unsigned char> buf, int pos, int len );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_process_stdin_close( Dynamic handle );
 | |
| #if (HXCPP_API_LEVEL > 420)
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_std_process_exit( Dynamic handle, bool block );
 | |
| #else
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_process_exit( Dynamic handle );
 | |
| #endif
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_process_pid( Dynamic handle );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_process_kill( Dynamic handle );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_process_close( Dynamic handle );
 | |
| 
 | |
| // Random
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_std_random_new();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_random_set_seed( Dynamic handle, int v );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_random_int( Dynamic handle, int max );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES double _hx_std_random_float( Dynamic handle );
 | |
| 
 | |
| // Socket
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_init();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_std_socket_new( bool udp, bool ipv6 = false );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_bind( Dynamic o, int host, int port );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_bind_ipv6( Dynamic o, Array<unsigned char> host, int port );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_close( Dynamic handle );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_send_char( Dynamic o, int c );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_socket_send( Dynamic o, Array<unsigned char> buf, int p, int l );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_socket_recv( Dynamic o, Array<unsigned char> buf, int p, int l );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_socket_recv_char( Dynamic o );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_write( Dynamic o, Array<unsigned char> buf );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<unsigned char> _hx_std_socket_read( Dynamic o );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_host_resolve( String host );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<unsigned char> _hx_std_host_resolve_ipv6( String host, bool dummy=true );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_host_to_string( int ip );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_host_to_string_ipv6( Array<unsigned char> ip );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_host_reverse( int host );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_host_reverse_ipv6( Array<unsigned char> host );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_host_local();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_connect( Dynamic o, int host, int port );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_connect_ipv6( Dynamic o, Array<unsigned char> host, int port );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_listen( Dynamic o, int n );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<Dynamic> _hx_std_socket_select( Array<Dynamic> rs, Array<Dynamic> ws, Array<Dynamic> es, Dynamic timeout );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_fast_select( Array<Dynamic> rs, Array<Dynamic> ws, Array<Dynamic> es, Dynamic timeout );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_std_socket_accept( Dynamic o );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<int> _hx_std_socket_peer( Dynamic o );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<int> _hx_std_socket_host( Dynamic o );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_set_timeout( Dynamic o, Dynamic t );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_shutdown( Dynamic o, bool r, bool w );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_set_blocking( Dynamic o, bool b );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_set_fast_send( Dynamic o, bool b );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_set_broadcast( Dynamic o, bool b );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_std_socket_poll_alloc( int nsocks );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<Dynamic> _hx_std_socket_poll_prepare( Dynamic pdata, Array<Dynamic> rsocks, Array<Dynamic> wsocks );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_socket_poll_events( Dynamic pdata, double timeout );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<Dynamic> _hx_std_socket_poll( Array<Dynamic> socks, Dynamic pdata, double timeout );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_socket_send_to( Dynamic o, Array<unsigned char> buf, int p, int l, Dynamic inAddr );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_socket_recv_from( Dynamic o, Array<unsigned char> buf, int p, int l, Dynamic outAddr);
 | |
| 
 | |
| // Sys
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_get_env( String v );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_put_env( String e, String v );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_sys_sleep( double f );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool _hx_std_set_time_locale( String l );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_get_cwd();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool _hx_std_set_cwd( String d );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_sys_string();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool _hx_std_sys_is64();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_sys_command( String cmd );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_sys_exit( int code );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool _hx_std_sys_exists( String path );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_file_delete( String path );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_sys_rename( String path, String newname );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Dynamic _hx_std_sys_stat( String path );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_sys_file_type( String path );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES bool _hx_std_sys_create_dir( String path, int mode );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES void _hx_std_sys_remove_dir( String path );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES double _hx_std_sys_time();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES double _hx_std_sys_cpu_time();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<String> _hx_std_sys_read_dir( String p);
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_file_full_path( String path );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES String _hx_std_sys_exe_path();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES Array<String> _hx_std_sys_env();
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_sys_getch( bool b );
 | |
| HXCPP_EXTERN_CLASS_ATTRIBUTES int _hx_std_sys_get_pid();
 | |
| 
 | |
| 
 | |
| // SSL
 | |
| void _hx_ssl_init();
 | |
| Dynamic _hx_ssl_new( Dynamic hconf );
 | |
| void _hx_ssl_close( Dynamic hssl );
 | |
| void _hx_ssl_debug_set (int i);
 | |
| void _hx_ssl_handshake( Dynamic handle );
 | |
| void _hx_ssl_set_socket( Dynamic hssl, Dynamic hsocket );
 | |
| void _hx_ssl_set_hostname( Dynamic hssl, String hostname );
 | |
| Dynamic _hx_ssl_get_peer_certificate( Dynamic hssl );
 | |
| bool _hx_ssl_get_verify_result( Dynamic hssl );
 | |
| void _hx_ssl_send_char( Dynamic hssl, int v );
 | |
| int _hx_ssl_send( Dynamic hssl, Array<unsigned char> buf, int p, int l );
 | |
| void _hx_ssl_write( Dynamic hssl, Array<unsigned char> buf );
 | |
| int _hx_ssl_recv_char( Dynamic hssl );
 | |
| int _hx_ssl_recv( Dynamic hssl, Array<unsigned char> buf, int p, int l );
 | |
| Array<unsigned char> _hx_ssl_read( Dynamic hssl );
 | |
| Dynamic _hx_ssl_conf_new( bool server );
 | |
| void _hx_ssl_conf_close( Dynamic hconf );
 | |
| void _hx_ssl_conf_set_ca( Dynamic hconf, Dynamic hcert );
 | |
| void _hx_ssl_conf_set_verify( Dynamic hconf, int mode );
 | |
| void _hx_ssl_conf_set_cert( Dynamic hconf, Dynamic hcert, Dynamic hpkey );
 | |
| void _hx_ssl_conf_set_servername_callback( Dynamic hconf, Dynamic obj );
 | |
| Dynamic _hx_ssl_cert_load_defaults();
 | |
| Dynamic _hx_ssl_cert_load_file( String file );
 | |
| Dynamic _hx_ssl_cert_load_path( String path );
 | |
| String _hx_ssl_cert_get_subject( Dynamic hcert, String objname );
 | |
| String _hx_ssl_cert_get_issuer( Dynamic hcert, String objname );
 | |
| Array<String> _hx_ssl_cert_get_altnames( Dynamic hcert );
 | |
| Array<int> _hx_ssl_cert_get_notbefore( Dynamic hcert );
 | |
| Array<int> _hx_ssl_cert_get_notafter( Dynamic hcert );
 | |
| Dynamic _hx_ssl_cert_get_next( Dynamic hcert );
 | |
| Dynamic _hx_ssl_cert_add_pem( Dynamic hcert, String data );
 | |
| Dynamic _hx_ssl_cert_add_der( Dynamic hcert, Array<unsigned char> buf );
 | |
| Dynamic _hx_ssl_key_from_der( Array<unsigned char> buf, bool pub );
 | |
| Dynamic _hx_ssl_key_from_pem( String data, bool pub, String pass );
 | |
| Array<unsigned char> _hx_ssl_dgst_make( Array<unsigned char> buf, String alg );
 | |
| Array<unsigned char> _hx_ssl_dgst_sign( Array<unsigned char> buf, Dynamic hpkey, String alg );
 | |
| bool _hx_ssl_dgst_verify( Array<unsigned char> buf, Array<unsigned char> sign, Dynamic hpkey, String alg );
 | |
| 
 | |
| 
 | |
| #endif
 |