On Dec 1, 2003, at 11:09 AM, Biot Olivier wrote:
| Umm... do we really need a GtkCList?
We need some widget to display the packet list.
Whether it should be a GtkClist is another matter.  I think that, at 
some point, it shouldn't be, so that we *can* do the callback stuff.
 The most simple approach would be to
redissect the packets we have to display (get 1st matching packet; 
dissect
and display while not all visible packets are shown).
A callback-based list display widget could do that - the routine it 
called to get the column text and color information would dissect the 
packet to get column data and, if there are color filters, build a 
protocol tree as well and run the color filters on it.
| Another way to do that would be to have a widget where the row's text
| and color is determined when a row is drawn in the screen, by a
| callback.
If we know that we only have to display a limited number of rows 
(today's
computer monitors would not display more than 100 rows I think), we may
decide it is acceptable to redissect the visible rows for the 
colorization.
It probably is acceptable.  I infer from Microsoft Network Monitor's 
behavior and some of its internal APIs for dissectors that it works 
that way (with some callback scheme).
| The problem with any scheme that does stuff when a row is made 
visible
| is that it'd require that the packet be dissected when its
| row is drawn
| - which would require that dissection to happen reasonably quickly,
| which would, in turn, require that the data for the packet be read
| reasonably quickly, meaning random access to the capture file be
| reasonably fast.
Ah. That's the major problem I think.
That's the major problem - another potential problem is that 
"g_node_append()" is, I think, linear in the length of the list to 
which it's appending, which means that there's some N^2 behavior; this 
shows up in some very big packets that take many many seconds to be 
disssected.
Maybe we can save the decoding dictionary in a temporary file at the 
time we
read the file?
What is the "decoding dictionary"?  Do you mean the protocol trees for 
the packets?