Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Handle, used for all APIs */
- typedef size_t enh;
- /* Create new engine instance; result returned in handle */
- int en_open(int mode, enh *handle);
- /* Start an engine */
- int en_start(enh handle);
- /* Add a new hook to the engine; hook handle returned in h2 */
- int en_add_hook(enh handle, int hooknum, enh *h2);
- struct engine
- {
- // ... implementation details ...
- };
- int en_open(int mode, *enh handle)
- {
- struct engine *en;
- en = malloc(sizeof(*en));
- if (!en)
- return -1;
- // ...initialization...
- *handle = (enh)en;
- return 0;
- }
- int en_start(enh handle)
- {
- struct engine *en = (struct engine*)handle;
- return en->start(en);
- }
- struct engine; /* Forward declaration */
- typedef size_t hook_h; /* Still a handle, for other reasons */
- /* Create new engine instance, result returned in en */
- int en_open(int mode, struct engine **en);
- /* Start an engine */
- int en_start(struct engine *en);
- /* Add a new hook to the engine; hook handle returned in hh */
- int en_add_hook(struct engine *en, int hooknum, hook_h *hh);
- struct engine
- {
- // ... implementation details ...
- };
- int en_open(int mode, struct engine **en)
- {
- struct engine *_e;
- _e = malloc(sizeof(*_e));
- if (!_e)
- return -1;
- // ...initialization...
- *en = _e;
- return 0;
- }
- int en_start(struct engine *en)
- {
- return en->start(en);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement