|
From: Stephen S. <rad...@gm...> - 2008-12-23 18:57:55
|
On Wed, Dec 17, 2008 at 6:49 AM, alex <al...@sl...> wrote: > > Hi Stephen, > > On Wed, 2008-12-10 at 22:58 -0500, Stephen Sinclair wrote: >> Okay, general problems with timestamps aside, let's aim to at least >> fix this bug before the next release. I'll have to set down a few >> specific goals for the next release, and I think this will definitely >> be one of them since it seems we could nail it down soon. If the >> suggested change in the bug tracker is right, maybe that's that. > > Yes I think Dominic has it fixed. > >> But first, do you think it's feasible to create a test in the testlo.c >> program that would identify mishandled timestamps? For most bugs, I >> have been trying to always add something to testlo that will break it, >> before investigating the actual fix. > > I wrote a test to check that the bundles arrive in the right order > according to the timetag. Unfortunately it seems that they _do_ arrive > in order, even without the patch, so I haven't got a failing test for > you... > >> Second, I don't mind the idea of making timestamp queuing optional. >> It seems that message forwarding is a common enough request that it >> should be handled well by LibLo. Does anyone have any API >> suggestions? It could be a boolean for lo_server, something like >> lo_server_queueing_enabled(). Though I'm not convinced this will >> cover all possible use cases, so it would be good to give some more >> thought before adding to the API. > > That would be good for me, but the message also needs to know its > 'logical time', which might then be in the future. > > Howabout adding a new method handler type that accepts a timetag (set to > NULL for unbundled messages)? Then lo_sever_add_timetag_method for > registering a handler? > > lo_timetag_method lo_server_add_timetag_method(lo_server s, > const char *path, > const char *typespec, > lo_timetag_method_handler h, > void *user_data > ); > > typedef int (*lo_timetag_method_handler)(lo_timetag *tt, const char *path, > const char *types, > lo_arg **argv, int argc, struct _lo_message > *msg, void *user_data); > Right. If you want to forward the message, you'd want to use lo_send_timestamped(), where you'd need the timetag information. Gotta put this on my todo list.. Steve |