LeechCraft Azoth  0.6.70-15082-g543737046d
Modular multiprotocol IM plugin for LeechCraft
LC::Azoth::IHistoryPlugin Class Referenceabstract

Interface for plugins storing chat history. More...

#include "ihistoryplugin.h"

Public Types

using MaxTimestampResult_t = Util::Either< QString, QDateTime >
 

Public Member Functions

virtual ~IHistoryPlugin ()
 
virtual bool IsHistoryEnabledFor (QObject *entry) const =0
 Whether history is enabled for the given entry. More...
 
virtual void RequestLastMessages (QObject *entry, int num)=0
 Requests last messages for the given entry. More...
 
virtual QFuture< MaxTimestampResult_tRequestMaxTimestamp (IAccount *acc)=0
 
virtual void AddRawMessages (const QString &accountId, const QString &entryId, const QString &visibleName, const QList< HistoryItem > &items)=0
 Adds a set of messages to the history. More...
 

Protected Member Functions

virtual void gotLastMessages (QObject *entry, const QList< QObject * > &messages)=0
 Notifies about last messages for the given entry. More...
 

Detailed Description

Interface for plugins storing chat history.

This interface should be implemented by plugins that store chat history for Azoth to provide additional features using these plugins.

Definition at line 69 of file ihistoryplugin.h.

Member Typedef Documentation

◆ MaxTimestampResult_t

using LC::Azoth::IHistoryPlugin::MaxTimestampResult_t = Util::Either<QString, QDateTime>

Definition at line 101 of file ihistoryplugin.h.

Constructor & Destructor Documentation

◆ ~IHistoryPlugin()

virtual LC::Azoth::IHistoryPlugin::~IHistoryPlugin ( )
inlinevirtual

Definition at line 72 of file ihistoryplugin.h.

Member Function Documentation

◆ AddRawMessages()

virtual void LC::Azoth::IHistoryPlugin::AddRawMessages ( const QString &  accountId,
const QString &  entryId,
const QString &  visibleName,
const QList< HistoryItem > &  items 
)
pure virtual

Adds a set of messages to the history.

Parameters
[in]accountIdThe unique ID of the corresponding account.
[in]entryIdThe unique ID of the corresponding entry.
[in]visibleNameThe human-readable name of the entry.
[in]itemsA list of HistoryItem structures describing the messages.
See also
HistoryItem

◆ gotLastMessages()

virtual void LC::Azoth::IHistoryPlugin::gotLastMessages ( QObject *  entry,
const QList< QObject * > &  messages 
)
protectedpure virtual

Notifies about last messages for the given entry.

This signal should be emitted when last chat messages with the given entry have been retrieved from the history as the result of the call to RequestLastMessages().

If there are no messages for the entry, the implementation may either emit this signal with empty messages list or choose to not emit any signals at all.

Note
This function is expected to be a signal.
See also
RequestLastMessages()

◆ IsHistoryEnabledFor()

virtual bool LC::Azoth::IHistoryPlugin::IsHistoryEnabledFor ( QObject *  entry) const
pure virtual

Whether history is enabled for the given entry.

This method checks if history logging is enabled for the given entry.

Parameters
[in]entryThe entry to check (implements ICLEntry).
Returns
Whether history logging is enabled for this entry.

◆ RequestLastMessages()

virtual void LC::Azoth::IHistoryPlugin::RequestLastMessages ( QObject *  entry,
int  num 
)
pure virtual

Requests last messages for the given entry.

This method, when called, requests last num messages from the chat log with the entry.

This method is asynchronous: it is expected to return soon after being called, and the result is expected to be emitted via the gotLastMessages() signal.

Parameters
[in]entryThe entry for which to query the history (implements ICLEntry).
[in]numThe maximum number of messages to retrieve.
See also
gotLastMessages()

◆ RequestMaxTimestamp()

virtual QFuture<MaxTimestampResult_t> LC::Azoth::IHistoryPlugin::RequestMaxTimestamp ( IAccount acc)
pure virtual

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