QVersitWriter Class
The QVersitWriter class writes Versit documents such as vCards to a device. More...
Header: | #include <QVersitWriter> |
Inherits: |
Public Types
enum | Error { NoError, UnspecifiedError, IOError, OutOfMemoryError, NotReadyError } |
enum | State { InactiveState, ActiveState, CanceledState, FinishedState } |
Public Functions
QVersitWriter() | |
QVersitWriter(QIODevice * outputDevice) | |
QVersitWriter(QByteArray * outputBytes) | |
~QVersitWriter() | |
QTextCodec * | defaultCodec() const |
QIODevice * | device() const |
Error | error() const |
void | setDefaultCodec(QTextCodec * codec) |
void | setDevice(QIODevice * device) |
State | state() const |
bool | waitForFinished(int msec = -1) |
Public Slots
void | cancel() |
bool | startWriting(const QList<QVersitDocument> & input) |
bool | startWriting(const QList<QVersitDocument> & input, QVersitDocument::VersitType type) |
bool | startWriting(const QVersitDocument & input) |
bool | startWriting(const QVersitDocument & input, QVersitDocument::VersitType type) |
Signals
void | stateChanged(QVersitWriter::State state) |
Detailed Description
The QVersitWriter class writes Versit documents such as vCards to a device.
QVersitWriter converts a QVersitDocument into its textual representation. QVersitWriter supports writing to an abstract I/O device which can be for example a file or a memory buffer. The writing can be done asynchronously and the waitForFinished() function can be used to implement a blocking write.
The serialization of the document is done in accordance with the type of the QVersitDocument being written. The value of each QVersitProperty is encoded according to the type of object:
- QStrings are serialized verbatim, unless the default codec of the writer cannot encode the string: in this case, UTF-8 is used to encode it (and the CHARSET parameter added to the property, as per the vCard 2.1 specification). If the document type is vCard 2.1, quoted-printable encoding may also be performed.
- QByteArrays are assumed to be binary data and are serialized as base-64 encoded values.
- QVersitDocuments are serialized as a nested document (eg. as per the AGENT property in vCard).
See also QVersitDocument and QVersitProperty.
Member Type Documentation
enum QVersitWriter::Error
This enum specifies an error that occurred during the most recent operation:
Constant | Value | Description |
---|---|---|
QVersitWriter::NoError | 0 | The most recent operation was successful |
QVersitWriter::UnspecifiedError | 1 | The most recent operation failed for an undocumented reason |
QVersitWriter::IOError | 2 | The most recent operation failed because of a problem with the device |
QVersitWriter::OutOfMemoryError | 3 | The most recent operation failed due to running out of memory |
QVersitWriter::NotReadyError | 4 | The most recent operation failed because there is an operation in progress |
enum QVersitWriter::State
Enumerates the various states that a reader may be in at any given time
Constant | Value | Description |
---|---|---|
QVersitWriter::InactiveState | 0 | Write operation not yet started |
QVersitWriter::ActiveState | 1 | Write operation started, not yet finished |
QVersitWriter::CanceledState | 2 | Write operation is finished due to cancelation |
QVersitWriter::FinishedState | 3 | Write operation successfully completed |
Member Function Documentation
QVersitWriter::QVersitWriter()
Constructs a new writer.
QVersitWriter::QVersitWriter(QIODevice * outputDevice)
Constructs a new writer that writes to outputDevice.
QVersitWriter::QVersitWriter(QByteArray * outputBytes)
Constructs a new writer that appends to outputBytes.
QVersitWriter::~QVersitWriter()
Frees the memory used by the writer. Waits until a pending asynchronous writing has been completed.
[slot]
void QVersitWriter::cancel()
Attempts to asynchronously cancel the write request.
QTextCodec * QVersitWriter::defaultCodec() const
Returns the document's codec.
See also setDefaultCodec().
QIODevice * QVersitWriter::device() const
Returns the device used for writing, or 0 if no device has been set.
See also setDevice().
Error QVersitWriter::error() const
Returns the error encountered by the last operation.
void QVersitWriter::setDefaultCodec(QTextCodec * codec)
Sets the default codec for the writer to use for writing the entire output.
If codec is NULL, the writer uses the codec according to the specification prescribed default. (for vCard 2.1, ASCII; for vCard 3.0, UTF-8).
See also defaultCodec().
void QVersitWriter::setDevice(QIODevice * device)
Sets the device used for writing to device. Does not take ownership of the device.
See also device().
[slot]
bool QVersitWriter::startWriting(const QList<QVersitDocument> & input)
Starts writing input to device() asynchronously. The serialization format is determined based on the contents of the input documents.
Returns false if the output device has not been set or opened or if there is another asynchronous write operation already pending. Signal stateChanged() is emitted with parameter FinishedState when the writing has finished.
The device must be already open. The client is responsible for closing it when finished.
[slot]
bool QVersitWriter::startWriting(const QList<QVersitDocument> & input, QVersitDocument::VersitType type)
Starts writing input to device() asynchronously using the serialization format specified by type. If type is QVersitDocument::InvalidType, the format will be determined based on the contents of the input documents.
Returns false if the output device has not been set or opened or if there is another asynchronous write operation already pending. Signal stateChanged() is emitted with parameter FinishedState when the writing has finished.
The device must be already open. The client is responsible for closing it when finished.
[slot]
bool QVersitWriter::startWriting(const QVersitDocument & input)
Starts writing input to device() asynchronously. The serialization format is determined based on the contents of the input documents.
Returns false if the output device has not been set or opened or if there is another asynchronous write operation already pending. Signal stateChanged() is emitted with parameter FinishedState when the writing has finished.
The device must be already open. The client is responsible for closing it when finished.
[slot]
bool QVersitWriter::startWriting(const QVersitDocument & input, QVersitDocument::VersitType type)
Starts writing input to device() asynchronously using the serialization format specified by type. If type is QVersitDocument::InvalidType, the format will be determined based on the contents of the input documents.
Returns false if the output device has not been set or opened or if there is another asynchronous write operation already pending. Signal stateChanged() is emitted with parameter FinishedState when the writing has finished.
The device must be already open. The client is responsible for closing it when finished.
State QVersitWriter::state() const
Returns the state of the writer.
[signal]
void QVersitWriter::stateChanged(QVersitWriter::State state)
The signal is emitted by the writer when its state has changed (eg. when it has finished writing to the device). state is the new state of the writer.
bool QVersitWriter::waitForFinished(int msec = -1)
If the state is ActiveState, blocks until the writer has finished writing or msec milliseconds has elapsed, returning true if it successfully finishes or is cancelled by the user. If msec is negative or zero, the function blocks until the writer has finished, regardless of how long it takes. If the state is FinishedState, returns true immediately. Otherwise, returns false immediately.