< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

RE: [reSIProcate] Merged in my xten-async branch, some minor API changes


Canonicalized eol conventions; pre-merge is 3998, post merge w/ all unix eol conventions is 4000.

 

--Derek

 

CONFIDENTIALITY NOTICE

This email and any files transmitted with it contains proprietary information and, unless expressly stated otherwise, all contents and attachments are confidential. This email is intended for the addressee(s) only and access by anyone else is unauthorized. If you are not an addressee, any disclosure, distribution, printing or copying of the contents of this email or its attachments, or any action taken in reliance on it, is unauthorized and may be unlawful. If you are not an addressee, please inform the sender immediately and then delete this email and any copies of it. Thank you for your co-operation.


From: resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of derek
Sent: Wednesday, March 16, 2005 11:49 AM
To: resiprocate-devel@xxxxxxxxxxxxxxxxxxx
Subject: [reSIProcate] Merged in my xten-async branch, some minor API changes

 

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