2 //metadoc copyright Steve Dekorte 2002
4 //metadoc license BSD revised
7 #ifndef IOSOCKET_DEFINED
8 #define IOSOCKET_DEFINED 1
12 #include "IoMessage.h"
15 #define ISSOCKET(self) IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoSocket_rawClone)
16 #define SOCKETERROR(leadingErrorDescription) IoState_setErrorDescription_(IOSTATE, "%s: %s", leadingErrorDescription, Socket_errorDescription())
18 typedef IoObject IoSocket
;
20 IoSocket
*IoMessage_locals_socketArgAt_(IoMessage
*self
, IoObject
*locals
, int n
);
22 IoSocket
*IoSocket_rawClone(IoSocket
*self
);
23 IoSocket
*IoSocket_proto(void *state
);
24 IoSocket
*IoSocket_new(void *state
);
25 IoSocket
*IoSocket_newWithSocket_(void *state
, Socket
*socket
);
26 void IoSocket_free(IoSocket
*self
);
28 // -----------------------------------------------------------
30 IoObject
*IoSocket_descriptorId(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
31 SOCKET_DESCRIPTOR
IoSocket_rawDescriptor(IoSocket
*self
);
33 IoObject
*IoSocket_asyncStreamOpen(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
34 IoObject
*IoSocket_asyncUdpOpen(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
35 IoObject
*IoSocket_isOpen(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
36 IoObject
*IoSocket_isValid(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
37 IoObject
*IoSocket_isStream(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
38 IoObject
*IoSocket_close(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
42 IoObject
*IoSocket_connectTo(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
43 IoObject
*IoSocket_didConnect(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
47 IoObject
*IoSocket_asyncStreamRead(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
48 IoObject
*IoSocket_asyncStreamWrite(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
52 IoObject
*IoSocket_udpRead(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
53 IoObject
*IoSocket_udpWrite(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
57 IoObject
*IoSocket_asyncBind(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
58 IoObject
*IoSocket_asyncListen(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
59 IoObject
*IoSocket_asyncAccept(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
61 //IoObject *IoSocket_sendfile(IoSocket *self, IoObject *locals, IoMessage *m);
62 //IoObject *IoSocket_sync(IoSocket *self, IoObject *locals, IoMessage *m);
64 IoObject
*IoSocket_setSocketReadBufferSize(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
65 IoObject
*IoSocket_setSocketWriteBufferSize(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
67 IoObject
*IoSocket_setSocketReadLowWaterMark(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
68 IoObject
*IoSocket_setSocketWriteLowWaterMark(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
70 IoObject
*IoSocket_getSocketReadLowWaterMark(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
71 IoObject
*IoSocket_getSocketWriteLowWaterMark(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
73 IoObject
*IoSocket_setNoDelay(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
75 IoObject
*IoSocket_errorNumber(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);
76 IoObject
*IoSocket_errorDescription(IoSocket
*self
, IoObject
*locals
, IoMessage
*m
);