New doc system done for core
[io.git] / libs / iovm / source / IoBlock.h
blob808e3f5cb99d6e57c590bbb00e32c74871313977
1 //metadoc Block copyright Steve Dekorte 2002
2 //metadoc Block license BSD revised
4 #ifndef IOBLOCK_DEFINED
5 #define IOBLOCK_DEFINED 1
7 #include "Common.h"
8 #include "List.h"
9 #include "IoObject.h"
10 #include "IoState.h"
11 #include "IoCall.h"
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
17 #define ISBLOCK(self) IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoBlock_rawClone)
19 typedef IoObject IoBlock;
21 typedef struct
23 IoMessage *message;
24 List *argNames;
25 IoObject *scope; // if 0x0, then use target as the locals proto
26 int passStops;
27 } IoBlockData;
29 IoBlock *IoBlock_proto(void *state);
30 IoBlock *IoBlock_rawClone(IoBlock *self);
31 IoBlock *IoBlock_new(IoState *state);
32 void IoBlock_mark(IoBlock *self);
33 void IoBlock_free(IoBlock *self);
34 void IoBlock_message_(IoBlock *self, IoMessage *m);
36 void IoBlock_writeToStream_(IoBlock *self, BStream *stream);
37 void IoBlock_readFromStream_(IoBlock *self, BStream *stream);
39 // calling
41 IoObject *IoBlock_activate(IoBlock *self, IoObject *target, IoObject *locals, IoMessage *m, IoObject *slotContext);
42 IoObject *IoBlock_print(IoBlock *self, IoObject *locals, IoMessage *m);
44 UArray *IoBlock_justCode(IoBlock *self);
45 IoObject *IoBlock_code(IoBlock *self, IoObject *locals, IoMessage *m);
46 IoObject *IoBlock_code_(IoBlock *self, IoObject *locals, IoMessage *m);
48 IoObject *IoBlock_message(IoBlock *self, IoObject *locals, IoMessage *m);
49 IoObject *IoBlock_setMessage(IoBlock *self, IoObject *locals, IoMessage *m);
51 IoObject *IoBlock_argumentNames(IoBlock *self, IoObject *locals, IoMessage *m);
52 IoObject *IoBlock_argumentNames_(IoBlock *self, IoObject *locals, IoMessage *m);
54 IoObject *IoBlock_setScope_(IoBlock *self, IoObject *locals, IoMessage *m);
55 IoObject *IoBlock_scope(IoBlock *self, IoObject *locals, IoMessage *m);
57 IoObject *IoBlock_setPassStops_(IoBlock *self, IoObject *locals, IoMessage *m);
58 IoObject *IoBlock_passStops(IoBlock *self, IoObject *locals, IoMessage *m);
60 // lobby methods
62 IoObject *IoBlock_method(IoObject *target, IoObject *locals, IoMessage *m);
63 IoObject *IoObject_block(IoObject *target, IoObject *locals, IoMessage *m);
65 IoObject *IoBlock_performOn(IoBlock *self, IoObject *locals, IoMessage *m);
66 IoObject *IoBlock_call(IoBlock *self, IoObject *locals, IoMessage *m);
68 #ifdef __cplusplus
70 #endif
71 #endif