< Previous by Date | Date Index | Next by Date > |
Thread Index | Next in Thread > |
At long last this is merged in, along with some other fixes
that I spotted along the way. Here’s the commit log, mangled a bit by
outlook. Major changes: Alternative "async/external" Processing Model The SipStack & DUM can now run w/out being in a
build/select/process loop. This is accomplished witht ransports that provide their own
cycles, as well as an external timer api. The SipStack is constructed w/ an AsyncProcessHandler which gets notified when a message is put into the StateMacFifo, or when SipStack::postMs or SipStack::post is
called. This can be optimized a bit more; in some cases only a timer adjustment may be
required, but the stack might not require cycles. DumProcessHandler, located in
the Dum directory, is a example of how to use this. Note that it provides
ares w/ a 50 ms timer when there is an active query. DnsInterface now has a
requiresProcess method to facilitate this; it should possibly become another getTimeTillNextProcess method. Transport Refactoring/Cleanup TransportSelector now only understands objects that derive from
Transport. The SipStack is responsible for the Transport Factory behaviour of
addTransport. A lot of the Transport has moved into InternalTransport, to keep the
Transport abstraction clean. Also, the tcp transports have been cleaned up;
most of dlb's rant in ConnectionBase.hxx has been answered. IpVersion vs Bool IpV4 bool is no longer used to represnt IpVersion, the enum is used in tuple
and anywhere else I spotted it. The result of this merge/cleanup has been regressed; I still need to
re-write testTransportSelector.cxx. The async model has not been used yet
with the result of this merge, but it was used extensively in the branch. --Derek |