E-MailRelay

Public Types | Public Member Functions | List of all members
GSmtp::Forward Class Reference

A class for forwarding messages from a message store that manages a GSmtp::Client instance, connecting and disconnecting as necessary to do routing and re-authentication. More...

`#include <gsmtpforward.h>`

## Public Types
using | Config = GSmtp::Client::Config

## Public Member Functions
| Forward (GNet::EventState, GStore::MessageStore &store, FilterFactoryBase &, const GNet::Location &forward_to_default, const GAuth::SaslClientSecrets &, const Config &config)
| Constructor. More...
| Forward (GNet::EventState, FilterFactoryBase &, const GNet::Location &forward_to_default, const GAuth::SaslClientSecrets &, const Config &config)
| Constructor. More...
virtual | ~Forward ()
| Destructor. More...
void | sendMessage (std::unique_ptr< GStore::StoredMessage > message)
| Starts sending the given message. More...
void | quitAndFinish ()
| Finishes a sendMessage() sequence. More...
G::Slot::Signal< const Client::MessageDoneInfo & > & | messageDoneSignal () noexcept
| Returns a signal that indicates that sendMessage() has completed or failed. More...
G::Slot::Signal< const std::string &, const std::string &, const std::string & > & | eventSignal () noexcept
| See GNet::Client::eventSignal() More...
void | doOnDelete (const std::string &reason, bool done)
| Used by owning ClientPtr when handling an exception. More...
bool | finished () const
| Returns true after quitAndFinish(). More...
std::string | peerAddressString () const
| Returns the Client's peerAddressString() if currently connected. More...
| Forward (const Forward &)=delete
| Forward (Forward &&)=delete
Forward & | operator= (const Forward &)=delete
Forward & | operator= (Forward &&)=delete

## Detailed Description

A class for forwarding messages from a message store that manages a GSmtp::Client instance, connecting and disconnecting as necessary to do routing and re-authentication.

Definition at line 54 of file gsmtpforward.h.

## Member Typedef Documentation

## ◆ Config

using GSmtp::Forward::Config = GSmtp::Client::Config

Definition at line 57 of file gsmtpforward.h.

## Constructor & Destructor Documentation

## ◆ Forward() [1/2]

GSmtp::Forward::Forward | ( | GNet::EventState | es,
|  | GStore::MessageStore & | store,
|  | FilterFactoryBase & | ff,
|  | const GNet::Location & | forward_to_default,
|  | const GAuth::SaslClientSecrets & | secrets,
|  | const Config & | config
| ) |  |

Constructor.

Starts sending the first message from the message store.

Once all messages have been sent the client will throw GNet::Done. See GNet::ClientPtr.

Do not use sendMessage(). The messageDoneSignal() is not emitted.

Definition at line 29 of file gsmtpforward.cpp.

## ◆ Forward() [2/2]

GSmtp::Forward::Forward | ( | GNet::EventState | es,
|  | FilterFactoryBase & | ff,
|  | const GNet::Location & | forward_to_default,
|  | const GAuth::SaslClientSecrets & | secrets,
|  | const Config & | config
| ) |  |

Constructor.

Use sendMessage() immediately after construction.

A messageDoneSignal() is emitted when the message has been sent, allowing the next sendMessage().

Use quitAndFinish() at the end.

Definition at line 39 of file gsmtpforward.cpp.

## ◆ ~Forward()

GSmtp::Forward::~Forward | ( |  | ) |
| virtual

Destructor.

Definition at line 60 of file gsmtpforward.cpp.

## Member Function Documentation

## ◆ doOnDelete()

void GSmtp::Forward::doOnDelete | ( | const std::string & | reason,
|  | bool | done
| ) |  |

Used by owning ClientPtr when handling an exception.

Definition at line 307 of file gsmtpforward.cpp.

## ◆ eventSignal()

G::Slot::Signal< const std::string &, const std::string &, const std::string & > & GSmtp::Forward::eventSignal | ( |  | ) |
| noexcept

See GNet::Client::eventSignal()

Definition at line 370 of file gsmtpforward.cpp.

## ◆ finished()

bool GSmtp::Forward::finished | ( |  | ) | const

Returns true after quitAndFinish().

Definition at line 330 of file gsmtpforward.cpp.

## ◆ messageDoneSignal()

G::Slot::Signal< const GSmtp::Client::MessageDoneInfo & > & GSmtp::Forward::messageDoneSignal | ( |  | ) |
| noexcept

Returns a signal that indicates that sendMessage() has completed or failed.

Definition at line 365 of file gsmtpforward.cpp.

## ◆ peerAddressString()

std::string GSmtp::Forward::peerAddressString | ( |  | ) | const

Returns the Client's peerAddressString() if currently connected.

Definition at line 324 of file gsmtpforward.cpp.

## ◆ quitAndFinish()

void GSmtp::Forward::quitAndFinish | ( |  | ) |

Finishes a sendMessage() sequence.

Definition at line 239 of file gsmtpforward.cpp.

## ◆ sendMessage()

void GSmtp::Forward::sendMessage | ( | std::unique_ptr< GStore::StoredMessage > | message | ) |

Starts sending the given message.

Cannot be called if there is a message already in the pipeline.

The messageDoneSignal() is used to indicate that the message filtering has finished or failed.

The message is fail()ed if it cannot be sent. If this object is deleted before the message is sent the message is neither fail()ed or destroy()ed.

Does nothing if there are no message recipients.

Definition at line 114 of file gsmtpforward.cpp.

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

- /tmp/slackdce/slackrepo.HKsbdz/build_emailrelay/emailrelay-2.6/src/gsmtp/gsmtpforward.h
- /tmp/slackdce/slackrepo.HKsbdz/build_emailrelay/emailrelay-2.6/src/gsmtp/gsmtpforward.cpp