On Thu, 2010-02-25 at 20:53 +0000, Lukas Zeller wrote:
> Hello Patrick,
>
> the caching of the last server response is pretty generic and should
> be available in libsynthesis as far as I remember (no sources here at
> 1400m in the Swiss mountains :-)
Hey, you also shouldn't have email! I wasn't expecting an answer before
Monday (and still don't, just replying to document what I find).
It is indeed in the engine, but unconditionally turned off:
bool TSyncHeader::execute(void)
...
// -> we should resend the previous answer again.
if (
fSessionP->getSyncAppBase()->canBufferRetryAnswer()
) {
// we can resend answers
PDEBUGPRINTFX(DBG_ERROR,("last answer buffered -> sending it
again"));
fSessionP->fMessageRetried=true;
return false;
}
else {
// use not foolproof poor man's method
// %%% This will fail if the previous message received has
// changed datastore/session/package states, but will work
if
// the retry is within a phase (probable case for long
sessions)
PDEBUGPRINTFX(DBG_ERROR,("No buffered answer to resend -> just
process msg again (WARNING: possibly messes up session state)"));
}
The only implementation of canBufferRetryAnswer() that I find returns
"false", so we end up in the else branch and indeed, in some cases the
state gets messed up.
I'll keep looking into how I can enable this. Hints welcome.
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
_______________________________________________
os-libsynthesis mailing list
[email protected]
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis