New doc system done for core
[io.git] / libs / iovm / source / IoWeakLink.h
blob858ea92c4fd4590d5ebcca2fd0b2f247a45ae69f
1 //metadoc WeakLink copyright Steve Dekorte 2002
2 //metadoc WeakLink license BSD revised
4 #ifndef IOWEAKLINK_DEFINED
5 #define IOWEAKLINK_DEFINED 1
7 #include "Common.h"
8 #include "IoObject_struct.h"
9 #include "IoMessage.h"
10 #include "BStream.h"
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
16 #define ISWEAKLINK(self) IOOBJECT_ISTYPE(self, WeakLink)
18 typedef IoObject IoWeakLink;
20 typedef struct
22 IoObject *link;
23 } IoWeakLinkData;
25 IoObject *IoWeakLink_proto(void *state);
26 IoObject *IoWeakLink_new(void *state);
28 void IoWeakLink_writeToStream_(IoWeakLink *self, BStream *stream);
29 void IoWeakLink_readFromStream_(IoWeakLink *self, BStream *stream);
31 IoObject *IoWeakLink_rawClone(IoWeakLink *self);
32 void IoWeakLink_free(IoWeakLink *self);
33 void IoWeakLink_mark(IoWeakLink *self);
35 IoObject *IoWeakLink_rawLink(IoWeakLink *self);
37 void IoObject_collectorNotification(IoWeakLink *self);
39 IoObject *IoWeakLink_setLink(IoWeakLink *self, IoObject *locals, IoMessage *m);
40 void IoWeakLink_rawSetLink(IoWeakLink *self, IoObject *v);
41 IoObject *IoWeakLink_link(IoWeakLink *self, IoObject *locals, IoMessage *m);
43 void IoWeakLink_notification(IoWeakLink *self, void *notification);
45 #ifdef __cplusplus
47 #endif
48 #endif