1 //metadoc Block copyright Steve Dekorte 2002
2 //metadoc Block license BSD revised
4 #ifndef IOBLOCK_DEFINED
5 #define IOBLOCK_DEFINED 1
17 #define ISBLOCK(self) IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoBlock_rawClone)
19 typedef IoObject IoBlock
;
25 IoObject
*scope
; // if 0x0, then use target as the locals proto
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
);
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
);
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
);