Akonadi::Server::Handler

Search for usage in LXR

#include <handler.h>

Inheritance diagram for Akonadi::Server::Handler:

Public Member Functions

 Handler (const Handler &)=delete
 
 Handler (Handler &&) noexcept=delete
 
AkonadiServer & akonadi () const
 
bool checkScopeConstraints (const Scope &scope, const QList< Scope::SelectionScope > &permittedScopes) const
 
Protocol::CommandPtr command () const
 
Connectionconnection () const
 
bool failureResponse (const char *response)
 
bool failureResponse (const QByteArray &response)
 
bool failureResponse (const QString &response)
 
Handleroperator= (const Handler &)=delete
 
Handleroperator= (Handler &&) noexcept=delete
 
virtual bool parseStream ()=0
 
template<typename T >
void sendResponse ()
 
template<typename T >
void sendResponse (T &&response)
 
void setCommand (const Protocol::CommandPtr &cmd)
 
void setConnection (Connection *connection)
 
void setTag (quint64 tag)
 
DataStorestorageBackend () const
 
template<typename T >
bool successResponse ()
 
template<typename T >
bool successResponse (T &&response)
 
quint64 tag () const
 

Static Public Member Functions

static std::unique_ptr< HandlerfindHandlerForCommandAlwaysAllowed (Protocol::Command::Type cmd, AkonadiServer &akonadi)
 
static std::unique_ptr< HandlerfindHandlerForCommandAuthenticated (Protocol::Command::Type cmd, AkonadiServer &akonadi)
 
static std::unique_ptr< HandlerfindHandlerForCommandNonAuthenticated (Protocol::Command::Type cmd, AkonadiServer &akonadi)
 

Protected Member Functions

 Handler (AkonadiServer &akonadi)
 

Protected Attributes

Protocol::CommandPtr m_command
 

Detailed Description

The handler interfaces describes an entity capable of handling an AkonadiIMAP command.

Definition at line 31 of file handler.h.

Constructor & Destructor Documentation

◆ Handler()

Handler::Handler ( AkonadiServer & akonadi)
protected

Definition at line 174 of file handler.cpp.

Member Function Documentation

◆ akonadi()

AkonadiServer & Handler::akonadi ( ) const

Definition at line 214 of file handler.cpp.

◆ checkScopeConstraints()

bool Handler::checkScopeConstraints ( const Scope & scope,
const QList< Scope::SelectionScope > & permittedScopes ) const

Definition at line 246 of file handler.cpp.

◆ command()

Protocol::CommandPtr Handler::command ( ) const

Definition at line 194 of file handler.cpp.

◆ connection()

Connection * Handler::connection ( ) const

Definition at line 204 of file handler.cpp.

◆ failureResponse() [1/3]

bool Handler::failureResponse ( const char * response)

Definition at line 224 of file handler.cpp.

◆ failureResponse() [2/3]

bool Handler::failureResponse ( const QByteArray & response)

Definition at line 219 of file handler.cpp.

◆ failureResponse() [3/3]

bool Handler::failureResponse ( const QString & response)

Definition at line 229 of file handler.cpp.

◆ findHandlerForCommandAlwaysAllowed()

std::unique_ptr< Handler > Handler::findHandlerForCommandAlwaysAllowed ( Protocol::Command::Type cmd,
AkonadiServer & akonadi )
static

Find a handler for a command that is always allowed, like LOGOUT.

Parameters
cmdthe command string
Returns
an instance to the handler. The handler is deleted after
See also
handelLine is executed. The caller needs to delete the handler in case an exception is thrown from handelLine.

Definition at line 53 of file handler.cpp.

◆ findHandlerForCommandAuthenticated()

std::unique_ptr< Handler > Handler::findHandlerForCommandAuthenticated ( Protocol::Command::Type cmd,
AkonadiServer & akonadi )
static

Find a handler for a command that is allowed when the client is authenticated, like LIST, FETCH, etc.

Parameters
cmdthe command string
Returns
an instance to the handler. The handler is deleted after
See also
handelLine is executed. The caller needs to delete the handler in case an exception is thrown from handelLine.

Definition at line 62 of file handler.cpp.

◆ findHandlerForCommandNonAuthenticated()

std::unique_ptr< Handler > Handler::findHandlerForCommandNonAuthenticated ( Protocol::Command::Type cmd,
AkonadiServer & akonadi )
static

Find a handler for a command that is allowed when the client is not yet authenticated, like LOGIN.

Parameters
cmdthe command string
Returns
an instance to the handler. The handler is deleted after
See also
handelLine is executed. The caller needs to delete the handler in case an exception is thrown from handelLine.

Definition at line 43 of file handler.cpp.

◆ parseStream()

◆ sendResponse() [1/2]

template<typename T >
void Akonadi::Server::Handler::sendResponse ( )
inline

Definition at line 137 of file handler.h.

◆ sendResponse() [2/2]

template<typename T >
void Akonadi::Server::Handler::sendResponse ( T && response)
inline

Definition at line 143 of file handler.h.

◆ setCommand()

void Handler::setCommand ( const Protocol::CommandPtr & cmd)

Definition at line 189 of file handler.cpp.

◆ setConnection()

void Handler::setConnection ( Connection * connection)

Definition at line 199 of file handler.cpp.

◆ setTag()

void Handler::setTag ( quint64 tag)

Set the tag of the command to be processed, and thus of the response generated by this handler.

Parameters
tagThe command tag, an alphanumerical string, normally.

Definition at line 179 of file handler.cpp.

◆ storageBackend()

DataStore * Handler::storageBackend ( ) const

Definition at line 209 of file handler.cpp.

◆ successResponse() [1/2]

template<typename T >
bool Akonadi::Server::Handler::successResponse ( )
inline

Definition at line 123 of file handler.h.

◆ successResponse() [2/2]

template<typename T >
bool Akonadi::Server::Handler::successResponse ( T && response)
inline

Definition at line 130 of file handler.h.

◆ tag()

quint64 Handler::tag ( ) const

The tag of the command associated with this handler.

Definition at line 184 of file handler.cpp.

Member Data Documentation

◆ m_command

Protocol::CommandPtr Akonadi::Server::Handler::m_command
protected

Definition at line 119 of file handler.h.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Jun 7 2024 11:56:46 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.