|
GoWebScan API
|
Framework to support concurrency.
Types | |
| class | GoWebScanPipe |
| Represents a pipeline to run sequences of processing tasks concurrently. A GoWebScanPipe object coordinates executing GoWebScanPipeTask objects that have received a GoWebScanPipeMsg, and coordinates passing messages from task to task as processing steps execute. The pipe maintains a a priority queue of processing jobs, ordered by stage, and a thread pool to execute jobs. Higher priority jobs (higher stage number) are dispatched for processing before lower priority jobs. More... | |
| class | GoWebScanPipeMsg |
| Base class for a msg that can be processed with a GoWebScanPipeTask and submitted to the GoWebScanPipe for scheduling. GoWebScanPipeMsg objects have a thread-safe reference count. GoWebScanPipeMsg objects are always allocated from GoWebScanPipeMsgPool objects with a default reference count of 1. When the reference count reaches zero, the message is recycled to the pool free list. This allows for efficient reuse of message memory. More... | |
| class | GoWebScanPipeMsgPool |
| Represents a pool of GoWebScanPipeMsg objects. The pool allocates GoWebScanPipeMsg objects with a default reference count of 1. Messages are recycled to the pool's free list when the message's reference count reaches 0. A GoWebScanPipeMsgPool can only contain GoWebScanPipeMsg objects of the same GoWebScanMsgType. More... | |
| class | GoWebScanPipeTask |
| Represents a processing task for the GoWebScanPipe class. Each GoWebScanPipeTask maintains a FIFO queue of messages to process (jobs), and submits jobs to the GoWebScanPipe for execution. Each GoWebScanPipeTask has at most one pending job submitted to the Pipe for execution at any given time. Multiple jobs associated with a single task cannot be run in parallel (tasks are assumed to have non-thread-safe state). Each GoWebScanPipeTask is associated with a particular stage (processing priority); multiple tasks can belong to the same stage. Messages are processed through an execution handler provided to the GoWebScanPipeTask. More... | |