Akonadi::Server::ItemModifyHandler

Search for usage in LXR

Akonadi::Server::ItemModifyHandler Class Reference

#include <itemmodifyhandler.h>

Inheritance diagram for Akonadi::Server::ItemModifyHandler:

Public Member Functions

 ItemModifyHandler (AkonadiServer &akonadi)
 
bool parseStream () override
 
- Public Member Functions inherited from Akonadi::Server::Handler
 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
 
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
 

Additional Inherited Members

- Static Public Member Functions inherited from Akonadi::Server::Handler
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 inherited from Akonadi::Server::Handler
 Handler (AkonadiServer &akonadi)
 
- Protected Attributes inherited from Akonadi::Server::Handler
Protocol::CommandPtr m_command
 

Detailed Description

Handler for the item modification command.

Semantics

Modifies the selected items. Item selection can happen within the usual three scopes:

  • based on a uid set relative to the currently selected collection
  • based on a uid set (UID)
  • based on a list of remote identifiers within the currently selected collection (RID)

The following item properties can be modified:

  • the remote identifier (REMOTEID)
  • the remote revision (REMOTEREVISION)
  • the global identifier (GID)
  • resetting the dirty flag indication local changes not yet replicated to the backend (DIRTY)
  • adding/deleting/setting item flags (FLAGS)
  • setting the item size hint (SIZE)
  • changing item attributes
  • changing item payload parts

If multiple items are selected only the following operations are valid:

  • adding flags
  • removing flags
  • settings flags

The following operations are only allowed by resources:

  • resetting the dirty flag
  • invalidating the cache
  • modifying the remote identifier
  • modifying the remote revision

Conflict detection:

  • only available when modifying a single item
  • requires the previous item revision to be provided (REV)

Definition at line 54 of file itemmodifyhandler.h.

Constructor & Destructor Documentation

◆ ItemModifyHandler()

ItemModifyHandler::ItemModifyHandler ( AkonadiServer & akonadi)

Definition at line 38 of file itemmodifyhandler.cpp.

Member Function Documentation

◆ parseStream()

bool ItemModifyHandler::parseStream ( )
overridevirtual

Parse and handle the IMAP message using the streaming parser.

The implementation MUST leave the trailing newline character(s) in the stream!

Returns
true if parsed successfully, false in case of parse failure

Implements Akonadi::Server::Handler.

Definition at line 121 of file itemmodifyhandler.cpp.


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 Tue Mar 26 2024 11:13:39 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.