Fix generate-mouse-tiny.pl
[gitmo/Mouse.git] / mouse.h
CommitLineData
df6dd016 1#ifndef MOUSE_H
2#define MOUSE_H
3
4#define PERL_NO_GET_CONTEXT
5#include <EXTERN.h>
6#include <perl.h>
7#include <XSUB.h>
8
9#include "ppport.h"
10
11#define is_class_loaded(sv) mouse_is_class_loaded(aTHX_ sv)
12bool mouse_is_class_loaded(pTHX_ SV*);
13
14#define is_instance_of(sv, klass) mouse_is_instance_of(aTHX_ sv, klass)
15bool mouse_is_instance_of(pTHX_ SV* const sv, SV* const klass);
16
17#define IsObject(sv) (SvROK(sv) && SvOBJECT(SvRV(sv)))
18
19#define mcall0(invocant, m) mouse_call0(aTHX_ (invocant), (m))
20#define mcall1(invocant, m, arg1) mouse_call1(aTHX_ (invocant), (m), (arg1))
21#define mcall0s(invocant, m) mcall0((invocant), newSVpvs_flags(m, SVs_TEMP))
22#define mcall1s(invocant, m, arg1) mcall1((invocant), newSVpvs_flags(m, SVs_TEMP), (arg1))
23
24SV* mouse_call0(pTHX_ SV *const self, SV *const method);
25SV* mouse_call1(pTHX_ SV *const self, SV *const method, SV* const arg1);
26
27
28#endif /* !MOUSE_H */
29