GSK Reference Manual
Table of Contents
Core Library Support
Lightweight Hookable Events
- a blockable, optionally shutdown-able, trap-able structure inside a GObject.
- Perform general initialization with limited argument parsing.
- 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.
- 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.)
- some types useful to servers
- a fast, flexible in-memory data buffer
Old-Fashioned errno Handling
- A few tricks which operate on the same type as errno, an int.
- 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.
- base class for datagram I/O classes
- A binary data packet.
Listening for Connections
- Base class for server-type objects.
- Create a GskStream which is connecting to a remote address.
- The location of a socket endpoint, in some domain.
- convenient logging methods around the glib mechanism
- How to debug your program
Runtime Toggled Debug Logging
- methods to quickly turn logging on and off for portions of GSK.
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
- A PacketQueue based on a file descriptor.
- a file-descriptor based GskStream
- streams which connect to another process.
- socket-based stream-listener.
- Simple Buffering Stream
Standard Objects: the URL class
- A Universal Resource Locator (or Identifier) object.
- Transfer data with a location by URL.
- An HTTP- or HTTPS-based transfer.
Standard Streams: the HTTP client and server
- Base class for HTTP headers.
- An HTTP header that is sent from client to server.
- An HTTP header that is sent from server to client.
- The client end of an HTTP connection.
- The server end of an HTTP connection.
Standard Streams: standard compression algorithms
- a zlib compressor.
- a zlib decompressor
Standard Streams: utility streams
- streams whose data is "memory", inside pointer-accessed data.
DNS library (client and server support)
- A cache of Resource Record data.
- This is a DNS client.
- a DNS resolver which uses just a local resource-record cache.
- An interface that DNS resolvers provide.
- base class for a DNS server.
- read Content-Type multipart/*.
- XMLRPC definitions
- a stream of XMLRPC method calls and responses.
- /dev/poll based event loop.
- a kqueue-based event loop.
- a poll(2)-based main-loop.
- a base class for file-descriptor-only polling mechanisms.
- a select(2)-based event loop.
Odds and Ends
- Base-64 Encoding and Decoding
- hash computing objects
- pooling memory allocators.
- Obtain information about your local network interfaces.
- Date parsing and printing code.
- macro-based list macros
- Flexible Red-Black Trees implemented as macros
- inline qsort macro
- A robustly iterateable tree.
- Functions to call to clean up after forking.