Started CLHS-like docs.
[iolib.git] / net.sockets / pkgdcl.lisp
blobfc4ffab360ab870883b702b93ad6d7c27ae5452e
1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Indent-tabs-mode: NIL -*-
2 ;;;
3 ;;; pkgdcl.lisp --- Package definition.
4 ;;;
5 ;;; Copyright (C) 2006-2008, Stelian Ionescu <sionescu@common-lisp.net>
6 ;;;
7 ;;; This code is free software; you can redistribute it and/or
8 ;;; modify it under the terms of the version 2.1 of
9 ;;; the GNU Lesser General Public License as published by
10 ;;; the Free Software Foundation, as clarified by the
11 ;;; preamble found here:
12 ;;; http://opensource.franz.com/preamble.html
13 ;;;
14 ;;; This program is distributed in the hope that it will be useful,
15 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ;;; GNU General Public License for more details.
18 ;;;
19 ;;; You should have received a copy of the GNU Lesser General
20 ;;; Public License along with this library; if not, write to the
21 ;;; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
22 ;;; Boston, MA 02110-1301, USA
24 (in-package :common-lisp-user)
26 (defpackage :net.sockets
27 (:nicknames #:sockets)
28 (:use #:common-lisp :cffi :alexandria :split-sequence :io.streams :series)
29 (:import-from #:osicat-posix #:system-error #:posix-error
30 #:system-error-message #:errno-wrapper
31 #:pid #:gid #:uid #:size #:ssize #:bzero
32 #:timeval #:size-of-timeval #:sec #:usec)
33 (:import-from #:osicat-sys #:size-of-int)
34 (:shadow #:let #:let* #:multiple-value-bind #:funcall #:defun)
35 (:export
36 ;; Conditions
37 #:posix-error
38 #:possible-bug
39 #:resolver-error
40 #:resolver-again-error
41 #:resolver-fail-error
42 #:resolver-no-name-error
43 #:resolver-unknown-error
44 #:socket-address-in-use-error
45 #:socket-address-not-available-error
46 #:socket-already-connected-error
47 #:socket-connection-aborted-error
48 #:socket-connection-refused-error
49 #:socket-connection-reset-error
50 #:socket-connection-timeout-error
51 #:socket-endpoint-shutdown-error
52 #:socket-error
53 #:socket-host-down-error
54 #:socket-host-unreachable-error
55 #:socket-network-down-error
56 #:socket-network-reset-error
57 #:socket-network-unreachable-error
58 #:socket-no-buffer-space-error
59 #:socket-no-network-error
60 #:socket-not-connected-error
61 #:socket-operation-not-supported-error
62 #:socket-option-not-supported-error
63 #:system-error
64 #:unknown-interface
65 #:unknown-protocol
66 #:unknown-service
68 ;; Condition Accessors
69 #:address-type
70 #:bug-data
71 #:error-code
72 #:error-identifier
73 #:error-message
74 #:resolver-error-data
75 #:unknown-protocol-name
76 #:unknown-service-name
78 ;; Low-level Address Conversion
79 #:address-to-vector
80 #:colon-separated-to-vector
81 #:dotted-to-integer
82 #:dotted-to-vector
83 #:integer-to-dotted
84 #:integer-to-vector
85 #:string-address-to-vector
86 #:vector-to-colon-separated
87 #:vector-to-dotted
88 #:vector-to-integer
89 #:map-ipv4-address-to-ipv6
90 #:map-ipv6-address-to-ipv4
92 ;; Address Classes
93 #:address
94 #:inet-address
95 #:ipv4-address
96 #:ipv6-address
97 #:local-address
99 ;; Address Functions
100 #:address-equal-p
101 #:address-name
102 #:address-to-string
103 #:address=
104 #:copy-address
105 #:ensure-address
106 #:make-address
108 ;; Well-known Addresses
109 #:+ipv4-loopback+
110 #:+ipv4-unspecified+
111 #:+ipv6-interface-local-all-nodes+
112 #:+ipv6-interface-local-all-routers+
113 #:+ipv6-link-local-all-nodes+
114 #:+ipv6-link-local-all-routers+
115 #:+ipv6-loopback+
116 #:+ipv6-site-local-all-routers+
117 #:+ipv6-unspecified+
118 #:+max-ipv4-value+
119 #:+any-host+
120 #:+loopback+
122 ;; Address Predicates
123 #:abstract-address-p
124 #:addressp
125 #:inet-address-loopback-p
126 #:inet-address-multicast-p
127 #:inet-address-p
128 #:inet-address-type
129 #:inet-address-unicast-p
130 #:inet-address-unspecified-p
131 #:ipv4-address-p
132 #:ipv6-address-p
133 #:ipv6-admin-local-multicast-p
134 #:ipv6-global-multicast-p
135 #:ipv6-global-unicast-p
136 #:ipv6-interface-local-multicast-p
137 #:ipv6-ipv4-mapped-p
138 #:ipv6-link-local-multicast-p
139 #:ipv6-link-local-unicast-p
140 #:ipv6-multicast-type
141 #:ipv6-organization-local-multicast-p
142 #:ipv6-reserved-multicast-p
143 #:ipv6-site-local-multicast-p
144 #:ipv6-site-local-unicast-p
145 #:ipv6-solicited-node-multicast-p
146 #:ipv6-transient-multicast-p
147 #:ipv6-unassigned-multicast-p
148 #:ipv6-unicast-type
149 #:local-address-p
151 ;; Network masks and subnets
152 #:make-subnet-mask
153 #:inet-address-private-p
154 #:inet-address-network-portion
155 #:inet-address-host-portion
156 #:inet-address-in-network-p
157 #:inet-addresses-in-same-network-p
158 #:inet-address-network-class
160 ;; Hostname, Service, and Protocol Lookups
161 #:ensure-hostname
162 #:lookup-host
163 #:lookup-protocol
164 #:lookup-service
166 ;; Network Interface Lookup
167 #:list-network-interfaces
168 #:interface
169 #:interface-index
170 #:interface-name
171 #:lookup-interface
172 #:make-interface
173 #:unknown-interface-datum
175 ;; Socket Classes
176 #:active-socket
177 #:datagram-socket
178 #:internet-socket
179 #:local-socket
180 #:passive-socket
181 #:socket
182 #:socket-datagram-internet-active
183 #:socket-datagram-local-active
184 #:socket-stream-internet-active
185 #:socket-stream-internet-passive
186 #:socket-stream-local-active
187 #:socket-stream-local-passive
188 #:stream-socket
190 ;; Socket Methods
191 #:accept-connection
192 #:bind-address
193 #:connect
194 #:disconnect
195 #:listen-on
196 #:local-filename
197 #:local-host
198 #:local-name
199 #:local-port
200 #:make-socket
201 #:make-socket-stream
202 #:receive-from
203 #:remote-filename
204 #:remote-host
205 #:remote-name
206 #:remote-port
207 #:send-to
208 #:shutdown
209 #:socket-connected-p
210 #:socket-family
211 #:socket-open-p
212 #:socket-option
213 #:socket-os-fd
214 #:socket-protocol
215 #:socket-type
216 #:with-open-socket
217 #:with-accept-connection
219 ;; Specials
220 #:*default-backlog-size*
221 #:*default-linger-seconds*
222 #:*ipv6*
223 #:*dns-nameservers*
224 #:*dns-domain*
225 #:*dns-search-domain*
228 (in-package :net.sockets)
230 (series::install)
231 (setf series:*suppress-series-warnings* t)