qmsk/net/socket/__init__.py
changeset 24 f18b5787c46c
parent 12 314d47bdd4d9
child 26 d8a71a675862
--- a/qmsk/net/socket/__init__.py	Tue Aug 18 22:24:36 2009 +0300
+++ b/qmsk/net/socket/__init__.py	Tue Aug 18 23:02:30 2009 +0300
@@ -1,6 +1,62 @@
-# combine all the modules
+"""
+    The low-level OS Socket API and related functionality, covering the Internet layer.
+
+    All functionality provided here aims to be a thin wrapper around the native system API, so for the most part, methods
+    map directly to *one* syscall/libc call.
+
+    Provided modules/types:
+    
+    address:
+        Abstract socket addresses.
+
+        sockaddr        - corresponds to the `struct sockaddr` used in socket API calls. This is an abstract type
+                          that cannot itself be instantated, see `sockaddr_in`/`sockaddr_in6`/`endpoint`.
+
+        addrinfo        - corresponds to the `struct addrinfo` used by the GAI API. Hold a concrete `sockaddr`
+
+        endpoint        - abstract internet hostname+service address as handled by getaddrinfo. Maps to a series of `addrinfo`'s.
+    
+    af_inet:
+        AF_INET (IPv4) -specific functionality.
+
+        sockaddr_in     - AF_INET sockaddr with addr, port fields
+
+    af_inet6:
+        AF_INET6 (IPv6) -specific functionality.
+
+        sockaddr_in6    - AF_INET6 sockaddr with addr, port, flowinfo, scope_id fields
+    
+    socket:
+        Core socket API.
+
+        socket          - socket-related syscalls with a guaranteed 1:1 mapping between methods and library
+                          calls.
+        
+    sctp:
+        SCTP-specific socket API
+
+        sctp_socket     - extension of socket.socket to support SCTP-specific socket API extensions
+    
+    constants:
+        Socket-related constants.
+
+        AF_*            - address families
+        SOCK_*          - socket types
+        IPPROTO_*       - inet protocols
+        MSG_*           - send/recv message flags
+
+        etc.
+"""
+
+## XXX: these shadow the modules... how do we want to provide these?
+#from qmsk.net.socket.address import sockaddr, addrinfo, endpoint
+#
+#from qmsk.net.socket.af_inet import sockaddr_in
+#from qmsk.net.socket.af_inet6 import sockaddr_in6
+#
+#from qmsk.net.socket.socket import socket
+#from qmsk.net.socket.sctp import sctp_socket
+#
 #from qmsk.net.socket.constants import *
-#from qmsk.net.socket.platform import *
-#from qmsk.net.socket.addr import *
-#from qmsk.net.socket.socket import *
+#