Architectural design document for developers
- Only class that an API user should directly interact with
- Manages all I/O: polls connections, reconnects failed connections, etc...
- Forwards commands between Connections <-> CommandHandlers
- Manages multiple Connections and multple CommandHandlers
- Manages global state of an interaction with Gearman (global job lock)
- A single connection between a client/worker and a server
- Thinly wrapped socket that can reconnect
- Converts binary strings <-> Gearman commands
- Manages in/out data buffers for socket-level operations
- Manages in/out command buffers for gearman-level operations
- Represents the state machine of a single GearmanConnection
- 1-1 mapping to a GearmanConnection (via GearmanConnectionManager)
- Sends/receives commands ONLY - does no buffering
- Handles all command generation / interpretation