VMime
IMAPStore Class Reference

#include <IMAPStore.hpp>

Inheritance diagram for IMAPStore:
Collaboration diagram for IMAPStore:

Public Member Functions

 IMAPStore (shared_ptr< session > sess, shared_ptr< security::authenticator > auth, const bool secured=false)
 ~IMAPStore ()
const string getProtocolName () const
shared_ptr< foldergetDefaultFolder ()
shared_ptr< foldergetRootFolder ()
shared_ptr< foldergetFolder (const folder::path &path)
bool isValidFolderName (const folder::path::component &name) const
const serviceInfosgetInfos () const
void connect ()
bool isConnected () const
void disconnect ()
void noop ()
int getCapabilities () const
bool isIMAPS () const
bool isSecuredConnection () const
shared_ptr< connectionInfosgetConnectionInfos () const
shared_ptr< IMAPConnectiongetConnection ()
Public Member Functions inherited from store
Type getType () const
Public Member Functions inherited from service
virtual ~service ()
shared_ptr< const sessiongetSession () const
shared_ptr< sessiongetSession ()
shared_ptr< const security::authenticatorgetAuthenticator () const
shared_ptr< security::authenticatorgetAuthenticator ()
void setAuthenticator (shared_ptr< security::authenticator > auth)
void setCertificateVerifier (shared_ptr< security::cert::certificateVerifier > cv)
shared_ptr< security::cert::certificateVerifiergetCertificateVerifier ()
void setSocketFactory (shared_ptr< socketFactory > sf)
shared_ptr< socketFactorygetSocketFactory ()
void setTimeoutHandlerFactory (shared_ptr< timeoutHandlerFactory > thf)
shared_ptr< timeoutHandlerFactorygetTimeoutHandlerFactory ()
void setTracerFactory (shared_ptr< tracerFactory > tf)
shared_ptr< tracerFactorygetTracerFactory ()
template<typename TYPE>
void setProperty (const string &name, const TYPE &value)

Static Public Member Functions

static const serviceInfosgetInfosInstance ()

Protected Member Functions

shared_ptr< IMAPConnectionconnection ()
void registerFolder (IMAPFolder *folder)
void unregisterFolder (IMAPFolder *folder)
Protected Member Functions inherited from store
 store (shared_ptr< session > sess, const serviceInfos &infos, shared_ptr< security::authenticator > auth)
Protected Member Functions inherited from service
 service (shared_ptr< session > sess, const serviceInfos &infos, shared_ptr< security::authenticator > auth)
Protected Member Functions inherited from object
 object ()
 object (const object &)
objectoperator= (const object &)
virtual ~object ()

Protected Attributes

shared_ptr< IMAPConnectionm_connection
std::list< IMAPFolder * > m_folders
const bool m_isIMAPS

Static Protected Attributes

static IMAPServiceInfos sm_infos

Additional Inherited Members

Public Types inherited from store
enum  Capabilities {
  CAPABILITY_CREATE_FOLDER = (1 << 0) , CAPABILITY_RENAME_FOLDER = (1 << 1) , CAPABILITY_ADD_MESSAGE = (1 << 2) , CAPABILITY_COPY_MESSAGE = (1 << 3) ,
  CAPABILITY_DELETE_MESSAGE = (1 << 4) , CAPABILITY_PARTIAL_FETCH = (1 << 5) , CAPABILITY_MESSAGE_FLAGS = (1 << 6) , CAPABILITY_EXTRACT_PART = (1 << 7)
}
Public Types inherited from service
enum  Type { TYPE_STORE = 0 , TYPE_TRANSPORT }

Detailed Description

IMAP store service.

Constructor & Destructor Documentation

◆ IMAPStore()

IMAPStore ( shared_ptr< session > sess,
shared_ptr< security::authenticator > auth,
const bool secured = false )

◆ ~IMAPStore()

~IMAPStore ( )

References disconnect(), and isConnected().

Member Function Documentation

◆ connect()

void connect ( )
virtual

Connect to service.

Implements service.

References vmime::dynamicCast(), service::getAuthenticator(), isConnected(), and m_connection.

Referenced by IMAPConnection.

◆ connection()

shared_ptr< IMAPConnection > connection ( )
protected

References m_connection.

◆ disconnect()

void disconnect ( )
virtual

Disconnect from service.

Implements service.

References isConnected(), m_connection, and m_folders.

Referenced by IMAPConnection, and ~IMAPStore().

◆ getCapabilities()

int getCapabilities ( ) const
virtual

Return the features supported by this service.

This is a combination of store::CAPABILITY_xxx flags.

Returns
features supported by this service

Implements store.

References store::CAPABILITY_ADD_MESSAGE, store::CAPABILITY_COPY_MESSAGE, store::CAPABILITY_CREATE_FOLDER, store::CAPABILITY_DELETE_MESSAGE, store::CAPABILITY_EXTRACT_PART, store::CAPABILITY_MESSAGE_FLAGS, store::CAPABILITY_PARTIAL_FETCH, and store::CAPABILITY_RENAME_FOLDER.

Referenced by IMAPConnection.

◆ getConnection()

shared_ptr< IMAPConnection > getConnection ( )

References m_connection.

Referenced by IMAPConnection.

◆ getConnectionInfos()

shared_ptr< connectionInfos > getConnectionInfos ( ) const
virtual

Get information about the connection.

Returns
information about the connection

Implements service.

References m_connection.

Referenced by IMAPConnection.

◆ getDefaultFolder()

shared_ptr< folder > getDefaultFolder ( )
virtual

Return the default folder.

This is protocol dependent and usually is the INBOX folder.

Returns
default folder

Implements store.

References vmime::dynamicCast(), IMAPFolder, and isConnected().

Referenced by IMAPConnection.

◆ getFolder()

shared_ptr< folder > getFolder ( const folder::path & path)
virtual

Return the folder specified by the path.

Parameters
pathabsolute folder path
Returns
folder at the specified path

Implements store.

References vmime::dynamicCast(), IMAPFolder, and isConnected().

Referenced by IMAPConnection.

◆ getInfos()

const serviceInfos & getInfos ( ) const
virtual

Return information about this service.

Returns
information about the service

Implements service.

References sm_infos.

Referenced by IMAPConnection.

◆ getInfosInstance()

const serviceInfos & getInfosInstance ( )
static

References sm_infos.

Referenced by IMAPConnection, and IMAPStore().

◆ getProtocolName()

const string getProtocolName ( ) const
virtual

Return the protocol name of this service.

Returns
protocol name

Implements service.

Referenced by IMAPConnection.

◆ getRootFolder()

shared_ptr< folder > getRootFolder ( )
virtual

Return the root folder.

This is protocol dependent and usually is the user's mail drop root folder.

Returns
root folder

Implements store.

References vmime::dynamicCast(), IMAPFolder, and isConnected().

Referenced by IMAPConnection.

◆ isConnected()

bool isConnected ( ) const
virtual

Test whether this service is connected.

Returns
true if the service is connected, false otherwise

Implements service.

References m_connection.

Referenced by connect(), disconnect(), getDefaultFolder(), getFolder(), getRootFolder(), IMAPConnection, noop(), and ~IMAPStore().

◆ isIMAPS()

bool isIMAPS ( ) const

References m_isIMAPS.

Referenced by IMAPConnection.

◆ isSecuredConnection()

bool isSecuredConnection ( ) const
virtual

Check whether the connection is secured.

Returns
true if the connection is secured, false otherwise

Implements service.

References m_connection.

Referenced by IMAPConnection.

◆ isValidFolderName()

bool isValidFolderName ( const folder::path::component & name) const
virtual

Test whether the specified folder name is a syntactically a valid name.

Returns
true if the specified folder name is valid, false otherwise

Implements store.

Referenced by IMAPConnection.

◆ noop()

void noop ( )
virtual

Do nothing but ensure the server do not disconnect (for example, this can reset the auto-logout timer on the server, if one exists).

Implements service.

References isConnected(), m_connection, m_folders, and IMAPCommand::NOOP().

Referenced by IMAPConnection.

◆ registerFolder()

void registerFolder ( IMAPFolder * folder)
protected

References IMAPFolder, and m_folders.

◆ unregisterFolder()

void unregisterFolder ( IMAPFolder * folder)
protected

References IMAPFolder, and m_folders.

Member Data Documentation

◆ m_connection

◆ m_folders

std::list<IMAPFolder*> m_folders
protected

◆ m_isIMAPS

const bool m_isIMAPS
protected

Referenced by IMAPStore(), and isIMAPS().

◆ sm_infos

IMAPServiceInfos sm_infos
staticprotected

Referenced by getInfos(), and getInfosInstance().


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