00001 #ifndef PERL_BLESS_H
00002 #define PERL_BLESS_H
00003
00004 #ifndef __FreeBSD__
00005 #define __EXTENSIONS__
00006 #endif
00007
00008 #ifdef bool
00009 #define HAS_BOOL
00010 #endif
00011
00012 #include <EXTERN.h>
00013 #include <perl.h>
00014 #include <XSUB.h>
00015
00016 typedef enum {
00017 BLESS_SCRIPT = 0,
00018 BLESS_SESSION,
00019 BLESS_VARIABLE,
00020 BLESS_PLUGIN,
00021 BLESS_WINDOW,
00022 BLESS_WATCH,
00023 BLESS_COMMAND,
00024 BLESS_SESSION_PARAM,
00025 BLESS_TIMER,
00026 BLESS_USER,
00027
00028 BLESS_FSTRING = 10,
00029 BLESS_LIST,
00030
00031 BLESS_IRC_SERVER = 20,
00032 BLESS_IRC_CHANNEL,
00033 BLESS_IRC_USER,
00034 BLESS_IRC_CHANNUSER,
00035 } perl_bless_t;
00036
00037 SV *ekg2_bless(perl_bless_t flag, int flag2, void *object);
00038
00039
00040
00041 #define bless_script(var)\
00042 (SV *) ekg2_bless(BLESS_SCRIPT, 0, var)
00043
00044 #define bless_variable(var)\
00045 (SV *) ekg2_bless(BLESS_VARIABLE, 0, var)
00046
00047 #define bless_session(session)\
00048 (SV *) ekg2_bless(BLESS_SESSION, 0, session)
00049
00050 #define bless_plugin(plugin)\
00051 (SV *) ekg2_bless(BLESS_PLUGIN, 0, plugin)
00052
00053 #define bless_window(window)\
00054 (SV *) ekg2_bless(BLESS_WINDOW, 0, window)
00055
00056 #define bless_watch(watch)\
00057 (SV *) ekg2_bless(BLESS_WATCH, 0, watch)
00058
00059 #define bless_command(command)\
00060 (SV *) ekg2_bless(BLESS_COMMAND, 0, command)
00061
00062 #define bless_session_param(param)\
00063 (SV *) ekg2_bless(BLESS_SESSION_PARAM, 0, param)
00064
00065 #define bless_timer(timer)\
00066 (SV *) ekg2_bless(BLESS_TIMER, 0, timer)
00067
00068 #define bless_user(user)\
00069 (SV *) ekg2_bless(BLESS_USER, 0, user)
00070 #define bless_list(ptr, id)\
00071 (SV *) ekg2_bless(BLESS_LIST, id, ptr);
00072
00073
00074
00075 #define bless_server(server)\
00076 (SV *) ekg2_bless(BLESS_IRC_SERVER, 0, server)
00077
00078 #define bless_channel(channel)\
00079 (SV *) ekg2_bless(BLESS_IRC_CHANNEL, 0, channel)
00080
00081 #define bless_person(person)\
00082 (SV *) ekg2_bless(BLESS_IRC_USER, 0, person)
00083
00084 #define bless_channperson(person)\
00085 (SV *) ekg2_bless(BLESS_IRC_CHANNUSER, 0, person)
00086
00087 #endif