#include <IOOutput.h>
Public Member Functions | |
virtual IOSize | write (const void *from, IOSize n)=0 |
IOSize | write (IOBuffer from) |
IOSize | write (unsigned char byte) |
virtual IOSize | writev (const IOBuffer *from, IOSize buffers) |
IOSize | xwrite (const void *from, IOSize n) |
IOSize | xwrite (IOBuffer from) |
IOSize | xwritev (const IOBuffer *from, IOSize buffers) |
virtual | ~IOOutput (void) |
Destruct the stream. A no-op. More... | |
Abstract base class for stream-oriented output targets.
Definition at line 7 of file IOOutput.h.
|
virtual |
Write n bytes of data starting at address from.
In | case of error, an exception is thrown. However if the stream is in non-blocking mode and cannot accept output, it will not throw an exception – the return value will be less than requested. |
Implemented in XrdFile, File, StorageAccountProxy, DavixFile, DCacheFile, LStoreFile, LocalCacheFile, and IOChannel.
Write to the output stream the buffer from. This method is simply redirected to write(const void *, IOSize).
Note that derived classes should not normally call this method, as it simply routes the call back to derived class through the other virtual functions. Use this method only at the "outside edge" when transferring calls from one object to another, not in up/down calls in the inheritance tree.
In | case of error, an exception is thrown. However if the stream is in non-blocking mode and cannot accept output, it will not throw an exception – the return value will be less than requested. |
Definition at line 59 of file IOOutput.cc.
References IOBuffer::data(), IOBuffer::size(), and write().
IOSize IOOutput::write | ( | unsigned char | byte | ) |
Write a single byte to the output stream. This method is simply redirected to write(const void *, IOSize).
Note that derived classes should not normally call this method, as it simply routes the call back to derived class through the other virtual functions. Use this method only at the "outside edge" when transferring calls from one object to another, not in up/down calls in the inheritance tree.
In | case of error, an exception is thrown. However if the stream is in non-blocking mode and cannot accept output, it will not throw an exception – zero will be returned. |
Definition at line 39 of file IOOutput.cc.
Write to the output stream from multiple buffers. There are buffers to fill in an array starting at from. The buffers are filled in the order given, each buffer fully before the subsequent buffers. The method uses write(const void *, IOSize), but may be implemented more efficiently in derived classes.
Note that derived classes should not normally call this method, as it simply routes the call back to derived class through the other virtual functions. Use this method only at the "outside edge" when transferring calls from one object to another, not in up/down calls in the inheritance tree.
In | case of error, an exception is thrown. However if the stream is in non-blocking mode and cannot accept output, it will not throw an exception – the return value will be less than requested. |
Reimplemented in StorageAccountProxy, LocalCacheFile, File, and IOChannel.
Definition at line 84 of file IOOutput.cc.
References cms::cuda::assert(), data, fileCollector::done, mps_fire::i, findQualityFiles::size, write(), and x.
Like the corresponding write() method but writes until the requested number of bytes are written. Writes data from the buffer from for its full size.
Unlike write() which may write less data than requested, this function attempts to write, possibly in multiple write() calls, the exact requested amount of data. It stops writing only in case of error.
If you know the stream blocks on write() and it would be inconvenient to handle partial write(), use this method as a convenience for hiding platforms and circumstance differences. It makes no sense to use this method with non-blocking output.
Note that derived classes should not normally call this method, as it simply routes the call back to derived class through the other virtual functions. Use this method only at the "outside edge" when transferring calls from one object to another, not in up/down calls in the inheritance tree.
All | exceptions from write() are passed through unhandled. Therefore it is possible that an exception is thrown when this function has already written some data. |
Definition at line 162 of file IOOutput.cc.
References fileCollector::done, dqmiodumpmetadata::n, and write().
Like the corresponding write() method but writes until the requested number of bytes are written. Writes from contents. This method is redirected to xwrite(const void *, IOSize).
Unlike write() which may write less data than requested, this function attempts to write, possibly in multiple write() calls, the exact requested amount of data. It stops writing only in case of error.
If you know the stream blocks on write() and it would be inconvenient to handle partial write(), use this method as a convenience for hiding platforms and circumstance differences. It makes no sense to use this method with non-blocking output.
Note that derived classes should not normally call this method, as it simply routes the call back to derived class through the other virtual functions. Use this method only at the "outside edge" when transferring calls from one object to another, not in up/down calls in the inheritance tree.
All | exceptions from write() are passed through unhandled. Therefore it is possible that an exception is thrown when this function has already written some data. |
Definition at line 134 of file IOOutput.cc.
References IOBuffer::data(), IOBuffer::size(), and xwrite().
Like the corresponding writev() method but writes until the requested number of bytes are written. Writes data from buffers starting at from, each for its full size. The buffers are filled in the order given. This method uses xwrite(const void *, IOSize).
Unlike write() which may write less data than requested, this function attempts to write, possibly in multiple write() calls, the exact requested amount of data. It stops writing only in case of error.
If you know the stream blocks on write() and it would be inconvenient to handle partial write(), use this method as a convenience for hiding platforms and circumstance differences. It makes no sense to use this method with non-blocking output.
Note that derived classes should not normally call this method, as it simply routes the call back to derived class through the other virtual functions. Use this method only at the "outside edge" when transferring calls from one object to another, not in up/down calls in the inheritance tree.
All | exceptions from write() are passed through unhandled. Therefore it is possible that an exception is thrown when this function has already written some data. |
Definition at line 199 of file IOOutput.cc.
References cms::cuda::assert(), data, fileCollector::done, mps_fire::i, findQualityFiles::size, and xwrite().