GSK Reference Manual
Core Library Support
Lightweight Hookable Events
— a blockable, optionally shutdown-able, trap-able structure inside a GObject.
Library Initialization
— Perform general initialization with limited argument parsing.
Helpful Macros
— Various macros to eliminate tedious typing, beyond those provided by glib.
Base Input/Output Object
— A base class with input and output triggers, but no actual read or write methods. Those are left for derived classes to support.
Binary Input/Output Stream Base
— A byte stream. This has methods to read and write data, and it inherits read/write notification from
GskStream
.
gskstreamconnection
— Connection between the input of one stream and the output of another.
Main Loop (Generic Event Management)
— Convenient way to be notified when certain types of event occur.
Socket Address Lookup by Name
— A way to lookup addresses from names. (Like a generic DNS.)
Useful GTypes
— some types useful to servers
GskBuffer
— a fast, flexible in-memory data buffer
Old-Fashioned errno Handling
— A few tricks which operate on the same type as errno, an int.
Error Codes
— An exhaustive composite list of error codes.
Trivial Main Functions.
— These are trivial interfaces to the main-loop.
Glib Helper Routines
— Miscellaneous helper routines that could conceivably be moved to glib someday.
Datagram I/O
— base class for datagram I/O classes
Binary Packet
— A binary data packet.
Listening for Connections
— Base class for server-type objects.
Client Stream
— Create a GskStream which is connecting to a remote address.
Socket Addresses.
— The location of a socket endpoint, in some domain.
gsklog
— convenient logging methods around the glib mechanism
Debugging Hints
— How to debug your program
Runtime Toggled Debug Logging
— methods to quickly turn logging on and off for portions of GSK.
gskutils
Object Hierarchy
Tutorials
Writing a Generic Server
— How to write a server
Writing a Generic Client
— How to write a client
Writing an HTTP Server
— How to write a webserver
Writing a HTTP Client
— How to write a web client
Standard Implementations
GskPacketQueueFd
— A PacketQueue based on a file descriptor.
GskStreamFd
— a file-descriptor based GskStream
GskStreamExternal
— streams which connect to another process.
GskStreamListenerSocket
— socket-based stream-listener.
gskbufferstream
— Simple Buffering Stream
Standard Objects: the URL class
GskUrl
— A Universal Resource Locator (or Identifier) object.
GskUrlTransfer
— Transfer data with a location by URL.
GskUrlTransferHttp
— An HTTP- or HTTPS-based transfer.
Standard Streams: the HTTP client and server
GskHttpHeader
— Base class for HTTP headers.
GskHttpRequest
— An HTTP header that is sent from client to server.
GskHttpResponse
— An HTTP header that is sent from server to client.
GskHttpClient
— The client end of an HTTP connection.
GskHttpServer
— The server end of an HTTP connection.
Standard Streams: standard compression algorithms
GskZlibDeflator
— a zlib compressor.
GskZlibInflator
— a zlib decompressor
gskzlib
Standard Streams: utility streams
GskStreamQueue
memory-based streams
— streams whose data is "memory", inside pointer-accessed data.
DNS library (client and server support)
gskdns
gskdnsrrcache
— A cache of Resource Record data.
gskdnsclient
— This is a DNS client.
gskdnslocalresolver
— a DNS resolver which uses just a local resource-record cache.
gskdnsresolver
— An interface that DNS resolvers provide.
gskdnsserver
— base class for a DNS server.
SSL interface
GskStreamSsl
MIME handling
gskmimemultipartpiece
GskMimeMultipartDecoder
— read Content-Type multipart/*.
RPC protocols
gskxmlrpc
— XMLRPC definitions
GskXmlrpcStream
— a stream of XMLRPC method calls and responses.
Main Loops
GskMainLoopDevPoll
— /dev/poll based event loop.
GskMainLoopKqueue
— a kqueue-based event loop.
GskMainLoopPoll
— a poll(2)-based main-loop.
GskMainLoopPollBase
— a base class for file-descriptor-only polling mechanisms.
GskMainLoopSelect
— a select(2)-based event loop.
Odds and Ends
Base-64
— Base-64 Encoding and Decoding
gskhash
— hash computing objects
gskmempool
— pooling memory allocators.
gsknetworkinterface
— Obtain information about your local network interfaces.
gskdate
— Date parsing and printing code.
Macro Madness
gsklistmacros
— macro-based list macros
gskrbtreemacros
— Flexible Red-Black Trees implemented as macros
gskqsortmacro
— inline qsort macro
Questionable ideas
gsktree
— A robustly iterateable tree.
gskfork
— Functions to call to clean up after forking.