/* squeak socket support header file */
/* module initialization/shutdown */
sqInt socketInit(void);
sqInt socketShutdown(void);
typedef struct
{
int sessionID;
int socketType; /* 0 = TCP, 1 = UDP */
void *privateSocketPtr;
} SQSocket, *SocketPtr;
/* networking primitives */
sqInt sqNetworkInit(sqInt resolverSemaIndex);
void sqNetworkShutdown(void);
void sqResolverAbort(void);
void sqResolverAddrLookupResult(char *nameForAddress, sqInt nameSize);
sqInt sqResolverAddrLookupResultSize(void);
sqInt sqResolverError(void);
sqInt sqResolverLocalAddress(void);
sqInt sqResolverNameLookupResult(void);
void sqResolverStartAddrLookup(sqInt address);
void sqResolverStartNameLookup(char *hostName, sqInt nameSize);
sqInt sqResolverStatus(void);
void sqSocketAbortConnection(SocketPtr s);
void sqSocketCloseConnection(SocketPtr s);
sqInt sqSocketConnectionStatus(SocketPtr s);
void sqSocketConnectToPort(SocketPtr s, sqInt addr, sqInt port);
void sqSocketCreateNetTypeSocketTypeRecvBytesSendBytesSemaID(SocketPtr s, sqInt netType, sqInt socketType, sqInt recvBufSize, sqInt sendBufSize, sqInt semaIndex);
void sqSocketCreateNetTypeSocketTypeRecvBytesSendBytesSemaIDReadSemaIDWriteSemaID(SocketPtr s, sqInt netType, sqInt socketType, sqInt recvBufSize, sqInt sendBufSize, sqInt semaIndex, sqInt readSemaIndex, sqInt writeSemaIndex);
void sqSocketCreateRawProtoTypeRecvBytesSendBytesSemaIDReadSemaIDWriteSemaID(SocketPtr s, sqInt domain, sqInt protocol, sqInt recvBufSize, sqInt sendBufSize, sqInt semaIndex, sqInt readSemaIndex, sqInt writeSemaIndex);
void sqSocketDestroy(SocketPtr s);
sqInt sqSocketError(SocketPtr s);
void sqSocketListenOnPort(SocketPtr s, sqInt port);
sqInt sqSocketLocalAddress(SocketPtr s);
sqInt sqSocketLocalPort(SocketPtr s);
sqInt sqSocketReceiveDataAvailable(SocketPtr s);
sqInt sqSocketReceiveDataBufCount(SocketPtr s, char *buf, sqInt bufSize);
sqInt sqSocketRemoteAddress(SocketPtr s);
sqInt sqSocketRemotePort(SocketPtr s);
sqInt sqSocketSendDataBufCount(SocketPtr s, char *buf, sqInt bufSize);
sqInt sqSocketSendDone(SocketPtr s);
/* ar 7/16/1999: New primitives for accept(). Note: If accept() calls are not supported simply make the calls fail and the old connection style will be used. */
void sqSocketListenOnPortBacklogSize(SocketPtr s, sqInt port, sqInt backlogSize);
void sqSocketListenOnPortBacklogSizeInterface(SocketPtr s, sqInt port, sqInt backlogSize, sqInt addr);
void sqSocketAcceptFromRecvBytesSendBytesSemaID(SocketPtr s, SocketPtr serverSocket, sqInt recvBufSize, sqInt sendBufSize, sqInt semaIndex);
void sqSocketAcceptFromRecvBytesSendBytesSemaIDReadSemaIDWriteSemaID(SocketPtr s, SocketPtr serverSocket, sqInt recvBufSize, sqInt sendBufSize, sqInt semaIndex, sqInt readSemaIndex, sqInt writeSemaIndex);
sqInt sqSocketReceiveUDPDataBufCountaddressportmoreFlag(SocketPtr s, char *buf, sqInt bufSize, sqInt *address, sqInt *port, sqInt *moreFlag);
sqInt sqSockettoHostportSendDataBufCount(SocketPtr s, sqInt address, sqInt port, char *buf, sqInt bufSize);
sqInt sqSocketSetOptionsoptionNameStartoptionNameSizeoptionValueStartoptionValueSizereturnedValue(SocketPtr s, char *optionName, sqInt optionNameSize, char *optionValue, sqInt optionValueSize, sqInt *result);
sqInt sqSocketGetOptionsoptionNameStartoptionNameSizereturnedValue(SocketPtr s, char *optionName, sqInt optionNameSize, sqInt *result);
/* tpr 4/12/06 add declarations for two new socket routines */
void sqSocketBindToPort(SocketPtr s, int addr, int port);
void sqSocketSetReusable(SocketPtr s);
void sqResolverGetAddressInfoHostSizeServiceSizeFlagsFamilyTypeProtocol(char *hostName, sqInt hostSize, char *servName, sqInt servSize,
sqInt flags, sqInt family, sqInt type, sqInt protocol);
sqInt sqResolverGetAddressInfoSize(void);
void sqResolverGetAddressInfoResultSize(char *addr, sqInt addrSize);
sqInt sqResolverGetAddressInfoFamily(void);
sqInt sqResolverGetAddressInfoType(void);
sqInt sqResolverGetAddressInfoProtocol(void);
sqInt sqResolverGetAddressInfoNext(void);
sqInt sqSocketAddressSizeGetPort(char *addr, sqInt addrSize);
void sqSocketAddressSizeSetPort(char *addr, sqInt addrSize, sqInt port);
void sqResolverGetNameInfoSizeFlags(char *addr, sqInt addrSize, sqInt flags);
sqInt sqResolverGetNameInfoHostSize(void);
void sqResolverGetNameInfoHostResultSize(char *name, sqInt nameSize);
sqInt sqResolverGetNameInfoServiceSize(void);
void sqResolverGetNameInfoServiceResultSize(char *name, sqInt nameSize);
sqInt sqResolverHostNameSize(void);
void sqResolverHostNameResultSize(char *name, sqInt nameSize);
void sqSocketBindToAddressSize(SocketPtr s, char *addr, sqInt addrSize);
void sqSocketListenBacklog(SocketPtr s, sqInt backlogSize);
void sqSocketConnectToAddressSize(SocketPtr s, char *addr, sqInt addrSize);
sqInt sqSocketLocalAddressSize(SocketPtr s);
void sqSocketLocalAddressResultSize(SocketPtr s, char *addr, int addrSize);
sqInt sqSocketRemoteAddressSize(SocketPtr s);
void sqSocketRemoteAddressResultSize(SocketPtr s, char *addr, int addrSize);
|