Navigation

To exchange information over the network between master and worker we need to use
protocol.

buildbot.worker.protocols.base provide interfaces to implement
wrappers around protocol specific calls, so other classes which use them do not need
to know about protocol calls or handle protocol specific exceptions.

Interrupt the command executed on builderName with given commandId on worker, print reason "why" to
worker logs

Following classes are describing the worker -> master part of the protocol.

In order to support old workers, we must make sure we do not change the current pb protocol.
This is why we implement a ImplvsProxy methods.
All the objects that are referenced from the workers for remote calls have an Impl and a Proxy base classes in this module.

Impl classes are subclassed by buildbot master, and implement the actual logic for the protocol api.
Proxy classes are implemented by the worker/master protocols, and implements the demux and de-serialization of protocol calls.

On worker sides, those proxy objects are replaced by a proxy object having a single method to call master side methodss: