[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 19990114: Feed type for Nexrad level 2 data COMINGSOON/BLKDATA



Harry:

The COMINGSOON/BLKDATA protocol is automatically used in ldmsend.c
when the product is bigger than DBUFMAX. See send_fd_info().
Another example is in server/ldmclnt.c. The top level entry point is
's_csbd()'.
The issue is what one is calling a product.
Are the individual "products within a volume" useful independently.
(The individual GRIB files within a model run are.) If so, then what you
are doing make sense. Otherwise, I would wonder.

Another option besides using ldmsend is
to assemble the whole product in a local queue, and
let the ldm worry about shipping it using COMINGSOON/BLKDATA
as appropriate.
Call pqe_new() to allocate space in the queue.
As each piece is available, add it to the product in progress by
'memcpy()'ing it into the storage returned by pqe_new(). If there is
a problem along the way, call pqe_discard(). Otherwise, call pqe_insert()
to commit.

The examples of use of the pqe_xxx functions are in
server/svc.c:{comingsoon_5_svc(), blkdata_5_svc()}
Since there is so much ldm protocol stuff going on there, it is probably
clearer to use the paragraph above and the pq.3 man pages.

Hope this helps.

-glenn