Updating built in Io code to use += instead of x = x + y
[io/quag.git] / libs / iovm / source / IoWeakLink.h
blob898a5ce44b05ff8f86f93ce54b5b3ecd642b19f8
1 /*#io
2 docCopyright("Steve Dekorte", 2002)
3 docLicense("BSD revised")
4 */
6 #ifndef IOWEAKLINK_DEFINED
7 #define IOWEAKLINK_DEFINED 1
9 #include "Common.h"
10 #include "IoObject_struct.h"
11 #include "IoMessage.h"
12 #include "BStream.h"
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
18 #define ISWEAKLINK(self) IOOBJECT_ISTYPE(self, WeakLink)
20 typedef IoObject IoWeakLink;
22 typedef struct
24 IoObject *link;
25 } IoWeakLinkData;
27 IoObject *IoWeakLink_proto(void *state);
28 IoObject *IoWeakLink_new(void *state);
30 void IoWeakLink_writeToStream_(IoWeakLink *self, BStream *stream);
31 void IoWeakLink_readFromStream_(IoWeakLink *self, BStream *stream);
33 IoObject *IoWeakLink_rawClone(IoWeakLink *self);
34 void IoWeakLink_free(IoWeakLink *self);
35 void IoWeakLink_mark(IoWeakLink *self);
37 IoObject *IoWeakLink_rawLink(IoWeakLink *self);
39 void IoObject_collectorNotification(IoWeakLink *self);
41 IoObject *IoWeakLink_setLink(IoWeakLink *self, IoObject *locals, IoMessage *m);
42 void IoWeakLink_rawSetLink(IoWeakLink *self, IoObject *v);
43 IoObject *IoWeakLink_link(IoWeakLink *self, IoObject *locals, IoMessage *m);
45 void IoWeakLink_notification(IoWeakLink *self, void *notification);
47 #ifdef __cplusplus
49 #endif
50 #endif