AlterOffice
AlterOffice 3.4 SDK C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
socket.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 
3 
4 #ifndef INCLUDED_OSL_SOCKET_H
5 #define INCLUDED_OSL_SOCKET_H
6 
7 #include "rtl/ustring.h"
8 #include "osl/time.h"
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 /* error returns */
15 #define OSL_INADDR_NONE 0xffffffff
16 #define OSL_INVALID_PORT (-1)
17 
24 typedef struct oslSocketAddrImpl * oslSocketAddr;
25 
29 typedef enum {
35 
39 typedef enum {
46 } oslProtocol;
47 
51 typedef enum {
64 
65 
69 typedef enum {
101 
105 typedef enum {
111 
115 typedef enum {
124 
128 typedef enum {
135 
138 typedef enum {
174 
177 typedef enum {
186 
189 
196 typedef struct oslSocketImpl * oslSocket;
197 
204 SAL_DLLPUBLIC oslSocket SAL_CALL osl_createSocket(
205  oslAddrFamily Family,
206  oslSocketType Type,
207  oslProtocol Protocol);
208 
211 SAL_DLLPUBLIC void SAL_CALL osl_acquireSocket(oslSocket Socket);
212 
218 SAL_DLLPUBLIC void SAL_CALL osl_releaseSocket(oslSocket Socket);
219 
227 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_getLocalAddrOfSocket(oslSocket Socket);
228 
235 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_getPeerAddrOfSocket(oslSocket Socket);
236 
245  oslSocket Socket,
246  oslSocketAddr Addr);
247 
260  oslSocket Socket,
261  oslSocketAddr Addr,
262  const TimeValue* pTimeout);
263 
264 
274  oslSocket Socket,
275  sal_Int32 MaxPendingConnections);
276 
277 
286  oslSocket Socket,
287  oslSocketAddr* pAddr);
288 
307 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_receiveSocket(
308  oslSocket Socket,
309  void* pBuffer,
310  sal_uInt32 BytesToRead,
311  oslSocketMsgFlag Flag);
312 
333 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_receiveFromSocket(
334  oslSocket Socket,
335  oslSocketAddr SenderAddr,
336  void* pBuffer,
337  sal_uInt32 BufferSize,
338  oslSocketMsgFlag Flag);
339 
356 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_sendSocket(
357  oslSocket Socket,
358  const void* pBuffer,
359  sal_uInt32 BytesToSend,
360  oslSocketMsgFlag Flag);
361 
388 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_sendToSocket(
389  oslSocket Socket,
390  oslSocketAddr ReceiverAddr,
391  const void* pBuffer,
392  sal_uInt32 BytesToSend,
393  oslSocketMsgFlag Flag);
394 
408  oslSocket Socket,
409  const TimeValue* pTimeout);
410 
424  oslSocket Socket,
425  const TimeValue* pTimeout);
426 
439  oslSocket Socket,
440  const TimeValue* pTimeout);
441 
455  oslSocket Socket,
456  oslSocketDirection Direction);
457 
511 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_getSocketOption(
512  oslSocket Socket,
513  oslSocketOptionLevel Level,
514  oslSocketOption Option,
515  void* pBuffer,
516  sal_uInt32 BufferLen);
517 
536  oslSocket Socket,
537  oslSocketOptionLevel Level,
538  oslSocketOption Option,
539  void* pBuffer,
540  sal_uInt32 BufferLen);
541 
550  oslSocket Socket,
551  sal_Bool On);
552 
553 
560 SAL_DLLPUBLIC sal_Bool SAL_CALL osl_isNonBlockingMode(oslSocket Socket);
561 
573 SAL_DLLPUBLIC oslSocketType SAL_CALL osl_getSocketType(oslSocket Socket);
574 
581  oslSocket Socket,
582  rtl_uString **strError);
583 
591  oslSocket Socket);
592 
597 SAL_DLLPUBLIC void SAL_CALL osl_closeSocket(oslSocket Socket);
598 
599 
611 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_readSocket(
612  oslSocket Socket,
613  void *pBuffer,
614  sal_Int32 nSize);
615 
616 
627 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_writeSocket(
628  oslSocket Socket,
629  const void *pBuffer,
630  sal_Int32 nSize);
631 
642 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_createEmptySocketAddr(
643  oslAddrFamily Family);
644 
645 
648 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_copySocketAddr(
649  oslSocketAddr Addr);
650 
656  oslSocketAddr Addr1, oslSocketAddr Addr2);
657 
663 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_resolveHostname(
664  rtl_uString *strHostname);
665 
675 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_createInetBroadcastAddr(
676  rtl_uString *strDottedAddr, sal_Int32 Port);
677 
678 
686 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_createInetSocketAddr (
687  rtl_uString *strDottedAddr, sal_Int32 Port);
688 
689 
694  oslSocketAddr Addr);
695 
700 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_getServicePort(
701  rtl_uString *strServicename, rtl_uString *strProtocol);
702 
703 
704 
710  oslSocketAddr Addr);
711 
712 
717 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_getInetPortOfSocketAddr(
718  oslSocketAddr Addr);
719 
720 
727  oslSocketAddr Addr, sal_Int32 Port);
728 
729 
736  oslSocketAddr Addr, rtl_uString **strHostname);
737 
738 
750  oslSocketAddr Addr, rtl_uString **strDottedInetAddr);
751 
755  oslSocketAddr Addr, sal_Sequence *pByteSeq );
756 
765  oslSocketAddr Addr, sal_Sequence **ppByteSeq );
766 
767 /*
768  Opaque datatype HostAddr.
769 */
770 typedef struct oslHostAddrImpl * oslHostAddr;
771 
772 
778 SAL_DLLPUBLIC oslHostAddr SAL_CALL osl_createHostAddr(
779  rtl_uString *strHostname, const oslSocketAddr Addr);
780 
781 
789 SAL_DLLPUBLIC oslHostAddr SAL_CALL osl_createHostAddrByName(rtl_uString *strHostname);
790 
791 
799 SAL_DLLPUBLIC oslHostAddr SAL_CALL osl_createHostAddrByAddr(const oslSocketAddr Addr);
800 
801 
805 SAL_DLLPUBLIC oslHostAddr SAL_CALL osl_copyHostAddr(const oslHostAddr Addr);
806 
807 
811 SAL_DLLPUBLIC void SAL_CALL osl_destroyHostAddr(oslHostAddr Addr);
812 
813 
818 SAL_DLLPUBLIC void SAL_CALL osl_getHostnameOfHostAddr(const oslHostAddr Addr, rtl_uString **strHostname);
819 
820 
824 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_getSocketAddrOfHostAddr(const oslHostAddr Addr);
825 
831 SAL_DLLPUBLIC oslSocketResult SAL_CALL osl_getLocalHostname(rtl_uString **strLocalHostname);
832 
833 
837 #ifdef __cplusplus
838 }
839 #endif
840 
841 #endif // INCLUDED_OSL_SOCKET_H
842 
843 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: socket.h:142
Definition: socket.h:158
Definition: socket.h:159
Definition: socket.h:153
SAL_DLLPUBLIC sal_Int32 osl_readSocket(oslSocket Socket, void *pBuffer, sal_Int32 nSize)
Retrieves n bytes from the stream and copies them into pBuffer.
SAL_DLLPUBLIC oslSocketError osl_getLastSocketError(oslSocket Socket)
Returns a constant describing the last error for the socket system.
oslSocketMsgFlag
Represents flags to be used with send/recv-calls.
Definition: socket.h:115
SAL_DLLPUBLIC oslSocketAddr osl_getPeerAddrOfSocket(oslSocket Socket)
Retrieves the Address of the remote end of the socket.
Definition: socket.h:98
SAL_DLLPUBLIC void osl_closeSocket(oslSocket Socket)
Closes the socket terminating any ongoing dataflow.
Definition: socket.h:147
oslAddrFamily
Represents the address-family of a socket.
Definition: socket.h:29
oslSocketOptionLevel
Represents the different socket-option levels.
Definition: socket.h:105
Time since Jan-01-1970.
Definition: time.h:56
SAL_DLLPUBLIC oslHostAddr osl_copyHostAddr(const oslHostAddr Addr)
Create a copy of the given Addr.
SAL_DLLPUBLIC oslAddrFamily osl_getFamilyOfSocketAddr(oslSocketAddr Addr)
Retrieves the address-family from the Addr.
Definition: socket.h:182
SAL_DLLPUBLIC void osl_getLastSocketErrorDescription(oslSocket Socket, rtl_uString **strError)
returns a string which describes the last socket error.
unsigned char sal_Bool
Definition: types.h:18
SAL_DLLPUBLIC sal_Bool osl_setSocketOption(oslSocket Socket, oslSocketOptionLevel Level, oslSocketOption Option, void *pBuffer, sal_uInt32 BufferLen)
Sets the sockets attributes.
Definition: socket.h:77
unsigned char sal_uInt8
Definition: types.h:24
Definition: socket.h:140
SAL_DLLPUBLIC oslSocketAddr osl_createEmptySocketAddr(oslAddrFamily Family)
Creates a socket-address for the given family.
SAL_DLLPUBLIC oslSocketAddr osl_copySocketAddr(oslSocketAddr Addr)
Creates a new SocketAddress and fills it from Addr.
Definition: socket.h:130
Definition: socket.h:151
SAL_DLLPUBLIC sal_Int32 osl_getSocketOption(oslSocket Socket, oslSocketOptionLevel Level, oslSocketOption Option, void *pBuffer, sal_uInt32 BufferLen)
Retrieves attributes associated with the socket.
SAL_DLLPUBLIC oslSocketAddr osl_getLocalAddrOfSocket(oslSocket Socket)
Retrieves the Address of the local end of the socket.
Definition: socket.h:162
SAL_DLLPUBLIC void osl_releaseSocket(oslSocket Socket)
decreases the refcount of the socket handle by one.
SAL_DLLPUBLIC sal_Bool osl_isExceptionPending(oslSocket Socket, const TimeValue *pTimeout)
Checks if a request for out-of-band data will block.
Definition: socket.h:108
Definition: socket.h:106
SAL_DLLPUBLIC oslHostAddr osl_createHostAddrByAddr(const oslSocketAddr Addr)
Create an oslHostAddr by reverse resolution of the given Addr.
Definition: socket.h:86
oslSocketError
Describes the various error socket error conditions, which may occur.
Definition: socket.h:138
SAL_DLLPUBLIC oslSocketType osl_getSocketType(oslSocket Socket)
Queries the socket for its type.
SAL_DLLPUBLIC sal_Bool osl_bindAddrToSocket(oslSocket Socket, oslSocketAddr Addr)
Binds the given address to the socket.
Definition: socket.h:118
SAL_DLLPUBLIC sal_Bool osl_listenOnSocket(oslSocket Socket, sal_Int32 MaxPendingConnections)
Prepares the socket to act as an acceptor of incoming connections.
SAL_DLLPUBLIC sal_Bool osl_isSendReady(oslSocket Socket, const TimeValue *pTimeout)
Checks if send operations will block.
SAL_DLLPUBLIC oslSocketResult osl_getLocalHostname(rtl_uString **strLocalHostname)
Retrieve this machines hostname (NOT the FQDN)
SAL_DLLPUBLIC sal_Bool osl_isNonBlockingMode(oslSocket Socket)
Query state of non-blocking-mode of the socket.
Definition: socket.h:85
SAL_DLLPUBLIC oslSocketAddr osl_getSocketAddrOfHostAddr(const oslHostAddr Addr)
Get the socket address member of Addr.
Definition: socket.h:172
Definition: socket.h:54
SAL_DLLPUBLIC sal_Bool osl_isEqualSocketAddr(oslSocketAddr Addr1, oslSocketAddr Addr2)
Compares the values of two SocketAddresses.
Definition: socket.h:121
Definition: socket.h:93
Definition: socket.h:73
Definition: socket.h:44
Definition: socket.h:82
Definition: socket.h:152
SAL_DLLPUBLIC void osl_destroyHostAddr(oslHostAddr Addr)
Frees all resources allocated by Addr.
SAL_DLLPUBLIC sal_Int32 osl_receiveSocket(oslSocket Socket, void *pBuffer, sal_uInt32 BytesToRead, oslSocketMsgFlag Flag)
Tries to receive BytesToRead data from the connected socket, if no error occurs.
oslSocketResult
Common return codes of socket related functions.
Definition: socket.h:177
Definition: socket.h:163
SAL_DLLPUBLIC sal_Int32 osl_receiveFromSocket(oslSocket Socket, oslSocketAddr SenderAddr, void *pBuffer, sal_uInt32 BufferSize, oslSocketMsgFlag Flag)
Tries to receives BufferSize data from the (usually unconnected) (datagram-)socket, if no error occurs.
SAL_DLLPUBLIC oslSocketAddr osl_resolveHostname(rtl_uString *strHostname)
Uses the systems name-service interface to find an address for strHostname.
Definition: socket.h:132
Definition: socket.h:148
Definition: socket.h:157
Definition: socket.h:72
SAL_DLLPUBLIC oslSocketResult osl_getAddrOfSocketAddr(oslSocketAddr Addr, sal_Sequence **ppByteSeq)
Returns the addr field in the struct sockaddr.
SAL_DLLPUBLIC void osl_getHostnameOfHostAddr(const oslHostAddr Addr, rtl_uString **strHostname)
Get the hostname member of Addr.
SAL_DLLPUBLIC oslSocketResult osl_connectSocketTo(oslSocket Socket, oslSocketAddr Addr, const TimeValue *pTimeout)
Connects the socket to the given address.
Definition: socket.h:40
sal_uInt8 oslSocketIpxNodeNumber[6]
Definition: socket.h:188
Definition: socket.h:31
Definition: socket.h:155
Definition: socket.h:143
SAL_DLLPUBLIC sal_Int32 osl_sendSocket(oslSocket Socket, const void *pBuffer, sal_uInt32 BytesToSend, oslSocketMsgFlag Flag)
Tries to send BytesToSend data from the connected socket, if no error occurs.
SAL_DLLPUBLIC oslHostAddr osl_createHostAddrByName(rtl_uString *strHostname)
Create an oslHostAddr by resolving the given strHostname.
Definition: socket.h:97
oslSocketDirection
Used by shutdown to denote which end of the socket to "close".
Definition: socket.h:128
Definition: socket.h:183
Definition: socket.h:32
Definition: socket.h:129
Definition: socket.h:122
SAL_DLLPUBLIC oslSocketAddr osl_createInetBroadcastAddr(rtl_uString *strDottedAddr, sal_Int32 Port)
Create an internet address usable for sending broadcast datagrams.
Definition: socket.h:94
Definition: socket.h:42
Definition: socket.h:62
Definition: socket.h:165
SAL_DLLPUBLIC oslSocketResult osl_getDottedInetAddrOfSocketAddr(oslSocketAddr Addr, rtl_uString **strDottedInetAddr)
Gets the address in dotted decimal format.
Definition: socket.h:181
Definition: socket.h:154
Definition: socket.h:161
Definition: socket.h:74
Definition: socket.h:168
sal_uInt8 oslSocketIpxNetNumber[4]
Definition: socket.h:187
SAL_DLLPUBLIC void osl_acquireSocket(oslSocket Socket)
increases the refcount of the socket handle by one
Definition: socket.h:144
SAL_DLLPUBLIC oslSocket osl_createSocket(oslAddrFamily Family, oslSocketType Type, oslProtocol Protocol)
Create a socket of the specified Family and Type.
Definition: socket.h:116
Definition: socket.h:117
Definition: socket.h:79
Definition: socket.h:146
SAL_DLLPUBLIC void osl_destroySocketAddr(oslSocketAddr Addr)
Frees all resources allocated by Addr.
Definition: socket.h:99
This is the binary specification of a SAL sequence.
Definition: types.h:283
Definition: socket.h:171
Definition: socket.h:169
Definition: socket.h:164
struct oslSocketAddrImpl * oslSocketAddr
Opaque datatype SocketAddr.
Definition: socket.h:24
Definition: socket.h:145
SAL_DLLPUBLIC oslSocketResult osl_getHostnameOfSocketAddr(oslSocketAddr Addr, rtl_uString **strHostname)
Returns the hostname represented by Addr.
Definition: socket.h:166
SAL_DLLPUBLIC oslSocketResult osl_setAddrOfSocketAddr(oslSocketAddr Addr, sal_Sequence *pByteSeq)
Sets the addr field in the struct sockaddr with pByteSeq.
Definition: socket.h:109
Definition: socket.h:43
SAL_DLLPUBLIC sal_Bool osl_shutdownSocket(oslSocket Socket, oslSocketDirection Direction)
Shuts down communication on a connected socket.
SAL_DLLPUBLIC sal_Int32 osl_sendToSocket(oslSocket Socket, oslSocketAddr ReceiverAddr, const void *pBuffer, sal_uInt32 BytesToSend, oslSocketMsgFlag Flag)
Tries to send one datagram with BytesToSend data to the given ReceiverAddr via the (implicitly unconn...
Definition: socket.h:170
SAL_DLLPUBLIC sal_Bool osl_isReceiveReady(oslSocket Socket, const TimeValue *pTimeout)
Checks if read operations will block.
Definition: socket.h:178
Definition: socket.h:52
Definition: socket.h:119
#define SAL_MAX_ENUM
Definition: types.h:185
Definition: socket.h:84
Definition: socket.h:58
oslSocketOption
Represents socket-options.
Definition: socket.h:69
SAL_DLLPUBLIC sal_Int32 osl_getServicePort(rtl_uString *strServicename, rtl_uString *strProtocol)
Looks up the port-number designated to the specified service/protocol-pair.
Definition: socket.h:70
Definition: socket.h:41
struct oslHostAddrImpl * oslHostAddr
Definition: socket.h:768
Definition: socket.h:30
Definition: socket.h:120
SAL_DLLPUBLIC sal_Bool osl_enableNonBlockingMode(oslSocket Socket, sal_Bool On)
Enables/disables non-blocking-mode of the socket.
Definition: socket.h:61
Definition: socket.h:167
Definition: socket.h:33
SAL_DLLPUBLIC oslHostAddr osl_createHostAddr(rtl_uString *strHostname, const oslSocketAddr Addr)
Create an oslHostAddr from given hostname and socket address.
oslSocketType
Represents the type of a socket.
Definition: socket.h:51
Definition: socket.h:76
SAL_DLLPUBLIC sal_Int32 osl_getInetPortOfSocketAddr(oslSocketAddr Addr)
Retrieves the internet port-number of Addr.
SAL_DLLPUBLIC sal_Bool osl_setInetPortOfSocketAddr(oslSocketAddr Addr, sal_Int32 Port)
Sets the Port of Addr.
oslProtocol
represent a specific protocol within an address-family
Definition: socket.h:39
Definition: socket.h:107
Definition: socket.h:53
Definition: socket.h:141
SAL_DLLPUBLIC sal_Int32 osl_writeSocket(oslSocket Socket, const void *pBuffer, sal_Int32 nSize)
Writes n bytes from pBuffer to the stream.
struct oslSocketImpl * oslSocket
Definition: socket.h:195
SAL_DLLPUBLIC oslSocketAddr osl_createInetSocketAddr(rtl_uString *strDottedAddr, sal_Int32 Port)
Create an internet-address, consisting of host address and port.
Definition: socket.h:139
Definition: socket.h:149
Definition: socket.h:55
Definition: socket.h:89
Definition: socket.h:92
Definition: socket.h:179
Definition: socket.h:131
Definition: socket.h:133
Definition: socket.h:160
SAL_DLLPUBLIC oslSocket osl_acceptConnectionOnSocket(oslSocket Socket, oslSocketAddr *pAddr)
Waits for an ingoing connection on the socket.
#define SAL_DLLPUBLIC
Definition: saldllapi.h:14
Definition: socket.h:95
Definition: socket.h:184
Definition: socket.h:71