E-MailRelay

Classes | Public Types | Public Member Functions | List of all members
GStore::StoredFile Class Reference

A concete class implementing the GStore::StoredMessage interface for separate envelope and content files in a spool directory. More...

`#include <gstoredfile.h>`

Inheritance diagram for GStore::StoredFile:
[legend]
Collaboration diagram for GStore::StoredFile:
[legend]

## Public Types
using | State = FileStore::State

## Public Member Functions
| StoredFile (FileStore &store, const MessageId &, State=State::Normal)
| Constructor. More...
| ~StoredFile () override
| Destructor. More...
bool | lock ()
| Locks the file by renaming the envelope file. More...
bool | readEnvelope (std::string &reason)
| Reads the envelope. More...
bool | openContent (std::string &reason)
| Opens the content file. Returns false on error. More...
MessageId | id () const override
| Override from GStore::StoredMessage. More...
void | noUnlock ()
| Disable unlocking in the destructor. More...
void | editEnvelope (std::function< void(Envelope &)>, std::istream *headers=nullptr)
| Edits the envelope and updates it in the file store. More...
| StoredFile (const StoredFile &)=delete
| StoredFile (StoredFile &&)=delete
StoredFile & | operator= (const StoredFile &)=delete
StoredFile & | operator= (StoredFile &&)=delete
Public Member Functions inherited from GStore::StoredMessage
virtual MessageId | id () const =0
| Returns the message identifier. More...
virtual std::string | location () const =0
| Returns the message location.
virtual std::string | from () const =0
| Returns the envelope 'from' field.
virtual std::string | to (std::size_t) const =0
| Returns the requested envelope non-local recipient or the empty string if out of range.
virtual std::size_t | toCount () const =0
| Returns the number of non-local recipients.
virtual std::size_t | contentSize () const =0
| Returns the content size.
virtual std::istream & | contentStream ()=0
| Returns a reference to the content stream.
virtual void | close ()=0
| Releases the message to allow external editing.
virtual std::string | reopen ()=0
| Reverses a close(), returning the empty string on success or an error reason.
virtual void | destroy ()=0
| Deletes the message within the store.
virtual void | fail (const std::string &reason, int reason_code)=0
| Marks the message as failed within the store.
virtual MessageStore::BodyType | bodyType () const =0
| Returns the message body type.
virtual std::string | authentication () const =0
| Returns the original session authentication id.
virtual std::string | fromAuthIn () const =0
| Returns the incoming "mail from" auth parameter, either empty, xtext-encoded or "<>".
virtual std::string | fromAuthOut () const =0
| Returns the outgoing "mail from" auth parameter, either empty, xtext-encoded or "<>".
virtual std::string | forwardTo () const =0
| Returns the routing override or the empty string.
virtual std::string | forwardToAddress () const =0
| Returns the forwardTo() address or the empty string.
virtual std::string | clientAccountSelector () const =0
| Returns the client account selector or the empty string.
virtual bool | utf8Mailboxes () const =0
| Returns true if the mail-from command should have SMTPUTF8 (RFC-6531).
virtual void | editRecipients (const G::StringArray &)=0
| Updates the message's remote recipients, typically to the sub-set that have not received it successfully.
virtual | ~StoredMessage ()=default
| Destructor.

## Detailed Description

A concete class implementing the GStore::StoredMessage interface for separate envelope and content files in a spool directory.

The GStore::MessageStore::Iterator interface is normally used to retrieve StoredFile instances.

See also
  GStore::FileStore, GStore::MessageStore::Iterator, GPop::Store

Definition at line 51 of file gstoredfile.h.

## Member Typedef Documentation

## ◆ State

using GStore::StoredFile::State = FileStore::State

Definition at line 58 of file gstoredfile.h.

## Constructor & Destructor Documentation

## ◆ StoredFile()

GStore::StoredFile::StoredFile | ( | FileStore & | store,
|  | const MessageId & | id,
|  | State | state = `State::Normal`
| ) |  |

Constructor.

Definition at line 35 of file gstoredfile.cpp.

## ◆ ~StoredFile()

GStore::StoredFile::~StoredFile | ( |  | ) |
| override

Destructor.

Unlocks the file if it has been lock()ed but not destroy()ed or fail()ed or noUnlock()ed.

Definition at line 42 of file gstoredfile.cpp.

## Member Function Documentation

## ◆ editEnvelope()

void GStore::StoredFile::editEnvelope | ( | std::function< void(Envelope &)> | edit_fn,
|  | std::istream * | headers = `nullptr`
| ) |  |

Edits the envelope and updates it in the file store.

Optionally adds more trailing headers.

Definition at line 171 of file gstoredfile.cpp.

## ◆ id()

GStore::MessageId GStore::StoredFile::id | ( |  | ) | const
| override virtual

Override from GStore::StoredMessage.

Implements GStore::StoredMessage.

Definition at line 63 of file gstoredfile.cpp.

## ◆ lock()

bool GStore::StoredFile::lock | ( |  | ) |

Locks the file by renaming the envelope file.

Definition at line 146 of file gstoredfile.cpp.

## ◆ noUnlock()

void GStore::StoredFile::noUnlock | ( |  | ) |

Disable unlocking in the destructor.

Definition at line 58 of file gstoredfile.cpp.

## ◆ openContent()

bool GStore::StoredFile::openContent | ( | std::string & | reason | ) |

Opens the content file. Returns false on error.

Definition at line 116 of file gstoredfile.cpp.

## ◆ readEnvelope()

bool GStore::StoredFile::readEnvelope | ( | std::string & | reason | ) |

Reads the envelope.

Returns false on error with a reason; does not throw.

Definition at line 102 of file gstoredfile.cpp.

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

- /tmp/slackdce/slackrepo.HKsbdz/build_emailrelay/emailrelay-2.6/src/gstore/gstoredfile.h
- /tmp/slackdce/slackrepo.HKsbdz/build_emailrelay/emailrelay-2.6/src/gstore/gstoredfile.cpp