Skip to content
Snippets Groups Projects
Commit e30077f9 authored by Steven Murray's avatar Steven Murray
Browse files

cta/CTA#139 cta af ls --vid XXXXX command times out if there are many files on a tape

The CTA front-ends code for replying to requests is currently
incompatible with streaming back large reply messages such as
the contents of a tape.

Executing the "cta" command-line tool results in the CTA
front-end creating a temporary server side representation of
a file.  The XrdCtaFile class implements this server side
representation of a file.

The constructor of the XrdCtaFile class generates the entire
contents of the file in one shot.  The contents of the file
are in fact the message a user of the "cta" command-line
eventually sees on their screen (standard out).

The entire single shot contents of the file are presented to
the XRootD framework as a memory mapped file which is in
fact a simple "one-shot" array of bytes.  This memory mapped
file approach is implemented by the XrdCtaFile::getMmap()
method returning SFS_OK and setting the Addr and Size
variables.

This commit replaces the memory mapped file approach of
XrdCtaFile::getMmap() with the stream interface approach of
XrdCtaFile::read().

Please note that the CTA front-end is still not actually
streaming the result of "cta af ls --vid XXXX".  This
commit is one step closer.  The whole reply message is
still generated in one shot by the constructor of
XrdCtaFile.  The contents are however now streamed off
to the "cta" command-line tool via multiple calls to
XrdCtaFile::read().
parent 6eaec865
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment