Sha256: 9f5c800984ee122afda672311a0508fae63fee6506bd61e493e6e960b45acbe2

Contents?: true

Size: 937 Bytes

Versions: 3

Compression:

Stored size: 937 Bytes

Contents

#ifndef _CALLBACK_H
#define	_CALLBACK_H

#include "Types.h"
#include "Type.h"

#ifdef	__cplusplus
extern "C" {
#endif
#include <ffi.h>
    
typedef struct {
    Type type; // The native type of a CallbackInfo object
    VALUE rbReturnType;
    VALUE rbParameterTypes;

    Type* returnType;
    Type** parameterTypes;
    ffi_type* ffiReturnType;
    ffi_type** ffiParameterTypes;
    ffi_cif ffi_cif;
    int parameterCount;
    int flags;
    ffi_abi abi;
} CallbackInfo;

typedef struct {
    void* code;
    ffi_closure* ffi_closure;
    ffi_cif ffi_cif;
    int flags;
    CallbackInfo* cbInfo;
    VALUE rbCallbackInfo;
    VALUE rbProc;
} NativeCallback;

extern VALUE rbffi_CallbackInfoClass;
extern void rbffi_Callback_Init(VALUE ffiModule);
extern VALUE rbffi_NativeCallback_NewInstance(VALUE, VALUE);
extern VALUE rbffi_NativeCallback_ForProc(VALUE proc, VALUE cbInfo);

#ifdef	__cplusplus
}
#endif

#endif	/* _CALLBACK_H */

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
minilab-1.1.0-x86-mswin32-60 vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Callback.h
ffi-0.4.0-x86-mswin32 ext/ffi_c/Callback.h
ffi-0.4.0 ext/ffi_c/Callback.h