# Module contract_driver # * [Description](#description) * [Function Index](#index) * [Function Details](#functions)

Generic protocol driver process for protocol sessions.

. __This module defines the `contract_driver` behaviour.__

Required callback functions: `start/1`, `start/2`, `init/1`, `init/2`, `encode/3`, `decode/4`. ## Function Index ##
behaviour_info/1
loop/5
loop/6
relay/3
start/3
## Function Details ## ### behaviour_info/1 ### `behaviour_info(Other) -> any()` ### loop/5 ### `loop(Module, Contract, Options, Pid, Socket) -> any()` ### loop/6 ### `loop(Module, Contract, Options, Pid, Socket, Timeout) -> any()` ### relay/3 ### `relay(Module, Pid, Pid1) -> any()` ### start/3 ### `start(Module, Contract, Options) -> any()`