VMime
message Class Referenceabstract
Inheritance diagram for message:
Collaboration diagram for message:

Classes

class  uid
 

Public Types

enum  Flags {
  FLAG_SEEN = (1 << 0), FLAG_RECENT = (1 << 1), FLAG_DELETED = (1 << 2), FLAG_REPLIED = (1 << 3),
  FLAG_MARKED = (1 << 4), FLAG_PASSED = (1 << 5), FLAG_DRAFT = (1 << 6)
}
 
enum  FlagsModes { FLAG_MODE_SET, FLAG_MODE_ADD, FLAG_MODE_REMOVE }
 

Public Member Functions

virtual ~message ()
 
virtual shared_ptr< const messageStructuregetStructure () const =0
 
virtual shared_ptr< messageStructuregetStructure ()=0
 
virtual shared_ptr< const headergetHeader () const =0
 
virtual size_t getNumber () const =0
 
virtual const uid getUID () const =0
 
virtual size_t getSize () const =0
 
virtual bool isExpunged () const =0
 
virtual int getFlags () const =0
 
virtual void setFlags (const int flags, const int mode=FLAG_MODE_SET)=0
 
virtual void extract (utility::outputStream &os, utility::progressListener *progress=NULL, const size_t start=0, const size_t length=-1, const bool peek=false) const =0
 
virtual void extractPart (shared_ptr< const messagePart > p, utility::outputStream &os, utility::progressListener *progress=NULL, const size_t start=0, const size_t length=-1, const bool peek=false) const =0
 
virtual void fetchPartHeader (shared_ptr< messagePart > p)=0
 
virtual shared_ptr< vmime::messagegetParsedMessage ()=0
 

Protected Types

enum  PrivateConstants { FLAG_UNDEFINED = 9999 }
 

Protected Member Functions

 message ()
 
 message (const message &)
 
- Protected Member Functions inherited from object
 object ()
 
 object (const object &)
 
objectoperator= (const object &)
 
virtual ~object ()
 

Detailed Description

Abstract representation of a message in a store/transport service.

Member Enumeration Documentation

◆ Flags

enum Flags

Possible flags for a message.

Enumerator
FLAG_SEEN 

Message has been seen.

FLAG_RECENT 

Message has been recently received.

FLAG_DELETED 

Message is marked for deletion.

FLAG_REPLIED 

User replied to this message.

FLAG_MARKED 

Used-defined flag.

FLAG_PASSED 

Message has been resent/forwarded/bounced.

FLAG_DRAFT 

Message is marked as a 'draft'.

◆ FlagsModes

enum FlagsModes

Methods for setting the flags.

Enumerator
FLAG_MODE_SET 

Set (replace) the flags.

FLAG_MODE_ADD 

Add the flags.

FLAG_MODE_REMOVE 

Remove the flags.

◆ PrivateConstants

enum PrivateConstants
protected
Enumerator
FLAG_UNDEFINED 

Used internally to indicate flags have not been initialized yet.

Constructor & Destructor Documentation

◆ message() [1/2]

message ( )
protected

◆ message() [2/2]

message ( const message )
protected

◆ ~message()

virtual ~message ( )
virtual

Member Function Documentation

◆ extract()

virtual void extract ( utility::outputStream os,
utility::progressListener progress = NULL,
const size_t  start = 0,
const size_t  length = -1,
const bool  peek = false 
) const
pure virtual

Extract the whole message data (header + contents).

Warning
Partial fetch might not be supported by the underlying protocol.
Parameters
osoutput stream in which to write message data
progressprogress listener, or NULL if not used
startindex of the first byte to retrieve (used for partial fetch)
lengthnumber of bytes to retrieve (used for partial fetch)
peekif true, try not to mark the message as read. This may not be supported by the protocol (IMAP supports this), but it will NOT throw an exception if not supported.

◆ extractPart()

virtual void extractPart ( shared_ptr< const messagePart p,
utility::outputStream os,
utility::progressListener progress = NULL,
const size_t  start = 0,
const size_t  length = -1,
const bool  peek = false 
) const
pure virtual

Extract the specified MIME part of the message (header + contents).

Warning
Partial fetch might not be supported by the underlying protocol.
Parameters
ppart to extract
osoutput stream in which to write part data
progressprogress listener, or NULL if not used
startindex of the first byte to retrieve (used for partial fetch)
lengthnumber of bytes to retrieve (used for partial fetch)
peekif true, try not to mark the message as read. This may not be supported by the protocol (IMAP supports this), but it will NOT throw an exception if not supported.

◆ fetchPartHeader()

virtual void fetchPartHeader ( shared_ptr< messagePart p)
pure virtual

Fetch the MIME header for the specified part.

Parameters
pthe part for which to fetch the header

◆ getFlags()

virtual int getFlags ( ) const
pure virtual

Return the flags of this message.

Returns
flags of the message

◆ getHeader()

virtual shared_ptr<const header> getHeader ( ) const
pure virtual

Return a reference to the header fields of the message (must fetch before).

Returns
header section of the message

◆ getNumber()

virtual size_t getNumber ( ) const
pure virtual

Return the sequence number of this message.

This number is used to reference the message in the folder.

Returns
sequence number of the message

◆ getParsedMessage()

virtual shared_ptr<vmime::message> getParsedMessage ( )
pure virtual

Get the RFC-822 message for this abstract message.

Warning: This may require getting some data (ie: structure and headers) from the server, which is done automatically. Actual message contents (ie: body) will not be fetched if possible (IMAP allows it, whereas POP3 will require to fetch the whole message).

Returns
a RFC-822-parsed message

◆ getSize()

virtual size_t getSize ( ) const
pure virtual

Return the size of the message (must fetch before).

Returns
size of the message (in bytes)

◆ getStructure() [1/2]

virtual shared_ptr<const messageStructure> getStructure ( ) const
pure virtual

Return the MIME structure of the message (must fetch before).

Returns
MIME structure of the message

◆ getStructure() [2/2]

virtual shared_ptr<messageStructure> getStructure ( )
pure virtual

Return the MIME structure of the message (must fetch before).

Returns
MIME structure of the message

◆ getUID()

virtual const uid getUID ( ) const
pure virtual

Return the unique identifier (UID) of this message in its folder (must fetch before).

Returns
UID of the message

◆ isExpunged()

virtual bool isExpunged ( ) const
pure virtual

Check whether this message has been expunged (ie: definitively deleted) and does not exist in the folder anymore.

Returns
true if the message is expunged, false otherwise

◆ setFlags()

virtual void setFlags ( const int  flags,
const int  mode = FLAG_MODE_SET 
)
pure virtual

Set the flags of this message.

Parameters
flagsset of flags (see Flags)
modeindicate how to treat old and new flags (see FlagsModes)

The documentation for this class was generated from the following file: