0
+ − 1 /*
+ − 2
+ − 3 Package: dyncall
+ − 4 Library: dyncallback
+ − 5 File: dyncallback/dyncall_callback.h
+ − 6 Description: Callback - Interface
+ − 7 License:
+ − 8
281
+ − 9 Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
0
+ − 10 Tassilo Philipp <tphilipp@potion-studios.com>
+ − 11
+ − 12 Permission to use, copy, modify, and distribute this software for any
+ − 13 purpose with or without fee is hereby granted, provided that the above
+ − 14 copyright notice and this permission notice appear in all copies.
+ − 15
+ − 16 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ − 17 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ − 18 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ − 19 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ − 20 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ − 21 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ − 22 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ − 23
+ − 24 */
+ − 25
+ − 26 #ifndef DYNCALL_CALLBACK_H
+ − 27 #define DYNCALL_CALLBACK_H
+ − 28
+ − 29 #include "dyncall_args.h"
+ − 30 #include "dyncall_signature.h"
+ − 31 #include "dyncall_value.h"
+ − 32
+ − 33 typedef struct DCCallback DCCallback;
+ − 34
405
+ − 35 /* return value is the type encoded as a type-specifying signature char (see dyncall_signature.h) */
0
+ − 36 typedef char (DCCallbackHandler)(DCCallback* pcb, DCArgs* args, DCValue* result, void* userdata);
+ − 37
+ − 38 #ifdef __cplusplus
+ − 39 extern "C" {
+ − 40 #endif
+ − 41
+ − 42 DCCallback* dcbNewCallback(const char* signature, DCCallbackHandler* funcptr, void* userdata);
+ − 43 void dcbInitCallback(DCCallback* pcb, const char* signature, DCCallbackHandler* handler, void* userdata);
+ − 44 void dcbFreeCallback(DCCallback* pcb);
+ − 45 void* dcbGetUserData (DCCallback* pcb);
+ − 46
+ − 47 #ifdef __cplusplus
+ − 48 }
+ − 49 #endif
+ − 50
+ − 51 #endif /* DYNCALL_CALLBACK_H */