ModemManagerQt

modemmessaging.h
1/*
2 SPDX-FileCopyrightText: 2013 Anant Kamath <kamathanant@gmail.com>
3 SPDX-FileCopyrightText: 2013 Lukas Tinkl <ltinkl@redhat.com>
4 SPDX-FileCopyrightText: 2013-2015 Jan Grulich <jgrulich@redhat.com>
5
6 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
7*/
8
9#ifndef MODEMMANAGERQT_MODEMMESSAGING_H
10#define MODEMMANAGERQT_MODEMMESSAGING_H
11
12#include <modemmanagerqt_export.h>
13
14#include <QObject>
15#include <QSharedPointer>
16
17#include "generictypes.h"
18#include "interface.h"
19#include "sms.h"
20
21namespace ModemManager
22{
23class ModemMessagingPrivate;
24
25/**
26 * @brief The ModemMessaging class
27 *
28 * The Messaging interface handles sending SMS messages and notification of new incoming messages.
29 */
30class MODEMMANAGERQT_EXPORT ModemMessaging : public Interface
31{
33 Q_DECLARE_PRIVATE(ModemMessaging)
34
35public:
36 struct Message {
37 QString number;
38 QString text;
39 QByteArray data;
40 };
41
43 typedef QList<Ptr> List;
44
45 explicit ModemMessaging(const QString &path, QObject *parent = nullptr);
46 ~ModemMessaging() override;
47
48 /**
49 * @return A list of MMSmsStorage values, specifying the storages supported by this
50 * modem for storing and receiving SMS.
51 */
53
54 /**
55 * @return A MMSmsStorage value, specifying the storage to be used when receiving or storing SMS.
56 */
57 MMSmsStorage defaultStorage() const;
58
59 /**
60 * Retrieve all SMS messages.
61 *
62 * This method should only be used once and subsequent information retrieved
63 * either by listening for the messageAdded() signal, or by
64 * querying the specific SMS object of interest using findMessage()
65 */
66 ModemManager::Sms::List messages() const;
67
68 /**
69 * Creates a new message object.
70 * @param message Message structure with the 'number' and either 'text' or 'data' properties
71 */
73 /**
74 * Creates a new message object.
75 * @param message QVariantMap containing message properties
76 * The 'number' and either 'text' or 'data' properties are mandatory, others are optional.
77 */
78 QDBusPendingReply<QDBusObjectPath> createMessage(const QVariantMap &message);
79
80 /**
81 * Delete an SMS message.
82 *
83 * @param uni path to the Sms object
84 */
86
87 /**
88 * @param uni path to the Sms object
89 * @return pointer to the found Sms (may be null if not found)
90 */
91 ModemManager::Sms::Ptr findMessage(const QString &uni);
92
93 /**
94 * Sets the timeout in milliseconds for all async method DBus calls.
95 * -1 means the default DBus timeout (usually 25 seconds).
96 */
97 void setTimeout(int timeout);
98
99 /**
100 * Returns the current value of the DBus timeout in milliseconds.
101 * -1 means the default DBus timeout (usually 25 seconds).
102 */
103 int timeout() const;
104
106 /**
107 * Emitted when any part of a new SMS has been received or added (but not
108 * for subsequent parts, if any). For messages received from the network,
109 * not all parts may have been received and the message may not be
110 * complete.
111 *
112 * Check the 'State' property to determine if the message is complete.
113 *
114 * @param uni path to the Sms object
115 * @param received @p true if the message was received from the network, as opposed to being added locally.
116 */
117 void messageAdded(const QString &uni, bool received);
118
119 /**
120 * Emitted when a message has been deleted.
121 * @param uni path to the Sms object
122 */
123 void messageDeleted(const QString &uni);
124};
125
126} // namespace ModemManager
127
128#endif
QList< MMSmsStorage > supportedStorages() const
MMSmsStorage defaultStorage() const
QDBusPendingReply< QDBusObjectPath > createMessage(const Message &message)
Creates a new message object.
void messageDeleted(const QString &uni)
Emitted when a message has been deleted.
ModemManager::Sms::List messages() const
Retrieve all SMS messages.
int timeout() const
Returns the current value of the DBus timeout in milliseconds.
ModemManager::Sms::Ptr findMessage(const QString &uni)
QDBusPendingReply< void > deleteMessage(const QString &uni)
Delete an SMS message.
void messageAdded(const QString &uni, bool received)
Emitted when any part of a new SMS has been received or added (but not for subsequent parts,...
void setTimeout(int timeout)
Sets the timeout in milliseconds for all async method DBus calls.
This namespace allows to query the underlying system to discover the available modem interfaces respo...
Definition bearer.cpp:20
QObject(QObject *parent)
Q_OBJECTQ_OBJECT
Q_SIGNALSQ_SIGNALS
QObject * parent() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Jan 24 2025 11:54:23 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.