nanogui: Nano-X client/server code
Subject:
Nano-X client/server code
From:
Greg Haerr ####@####.####
Date:
29 Nov 1999 18:15:43 -0000
Message-Id: <796896539E6CD311B0E70060083DFEFB076B1C@NBA-SLAM.CenSoft.COM>
: > GrPrepareSelect() - prepare Nano-X fd_set and timeout values
: > GrServiceSelect() - service Nano-X fd_set fd's or timeouts
: > GrDoSelect() - perform Nano-X select (not used for
your
: > stuff)
: I assume the GrDoSelect is a call
: you
: make inside the Nano-X client library when you do use the main-loop
: functionality
: provided with Nano-X?
Yes.
Morten - I've started the rewrite of Nano-X's client/server code,
and it's still working and almost done. The new version will be
modeled after the X protocol's implementation, and be *much*
faster, since it won't require process context switches between
library calls and will queue all data until GrFlush() or GrGetNextEvent()
is called.
I'm also adding your request for a passive library approach, which
I believe will augment Nano-X's ability to be used with applications
that require their own main loop. There are, however, a few considerations
in this that I wanted more input on: The issue is that, on calling
GrServiceSelect(), when Nano-X has valid input, the Nano-X system
reads the input, and normally generates some "events", which
are normally dispatched through GrGetNextEvent(), which fills
out a structure, and cases on the event type. My question is,
where do you want that case statement? Effectively, we
need to dummy up a "return" from a GrGetNextEvent() by calling
GrServiceSelect(). I'm thinking perhaps that GrServiceSelect()
should take the same parameters as GrGetNextEvent(), and if
the fd reading doesn't end up building an event, then it returns
a GR_EVENT_NULL event. Will that work for you?
:
: Wow. I didn't really expect the idea to catch on that fast... :-) I
figured
: they
: would be best implemented together with the new async Nano-X protocol.
I'm
: looking
: forward to this!
Yes, all this will be implemented with the new faster async protocol.
Greg