aboutsummaryrefslogtreecommitdiff
path: root/libmm-glib/mm-sms.h
blob: cb5b2b9d3d2be688859234af9fed7d9a56a06736 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * libmm -- Access modem status & information from glib applications
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301 USA.
 *
 * Copyright (C) 2012 Google, Inc.
 */

#ifndef _MM_SMS_H_
#define _MM_SMS_H_

#if !defined (__LIBMM_GLIB_H_INSIDE__) && !defined (LIBMM_GLIB_COMPILATION)
#error "Only <libmm-glib.h> can be included directly."
#endif

#include <ModemManager.h>

#include "mm-gdbus-sms.h"
#include "mm-sms-properties.h"

G_BEGIN_DECLS

#define MM_TYPE_SMS            (mm_sms_get_type ())
#define MM_SMS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_SMS, MMSms))
#define MM_SMS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_SMS, MMSmsClass))
#define MM_IS_SMS(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_SMS))
#define MM_IS_SMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), MM_TYPE_SMS))
#define MM_SMS_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_SMS, MMSmsClass))

typedef struct _MMSms MMSms;
typedef struct _MMSmsClass MMSmsClass;

/**
 * MMSms:
 *
 * The #MMSms structure contains private data and should only be accessed
 * using the provided API.
 */
struct _MMSms {
    /*< private >*/
    MmGdbusSmsProxy parent;
    gpointer unused;
};

struct _MMSmsClass {
    /*< private >*/
    MmGdbusSmsProxyClass parent;
};

GType mm_sms_get_type (void);

const gchar *mm_sms_get_path                     (MMSms *self);
gchar       *mm_sms_dup_path                     (MMSms *self);

const gchar  *mm_sms_get_text                    (MMSms *self);
gchar        *mm_sms_dup_text                    (MMSms *self);

const guint8 *mm_sms_get_data                    (MMSms *self,
                                                  gsize *data_len);
guint8       *mm_sms_dup_data                    (MMSms *self,
                                                  gsize *data_len);

const gchar  *mm_sms_get_number                  (MMSms *self);
gchar        *mm_sms_dup_number                  (MMSms *self);

const gchar  *mm_sms_get_smsc                    (MMSms *self);
gchar        *mm_sms_dup_smsc                    (MMSms *self);

const gchar  *mm_sms_get_timestamp               (MMSms *self);
gchar        *mm_sms_dup_timestamp               (MMSms *self);

const gchar  *mm_sms_get_discharge_timestamp     (MMSms *self);
gchar        *mm_sms_dup_discharge_timestamp     (MMSms *self);

MMSmsValidityType mm_sms_get_validity_type       (MMSms *self);
guint             mm_sms_get_validity_relative   (MMSms *self);

guint         mm_sms_get_class                   (MMSms *self);

guint         mm_sms_get_message_reference       (MMSms *self);

gboolean      mm_sms_get_delivery_report_request (MMSms *self);

guint         mm_sms_get_delivery_state          (MMSms *self);

MMSmsState    mm_sms_get_state                   (MMSms *self);

MMSmsStorage  mm_sms_get_storage                 (MMSms *self);

MMSmsPduType  mm_sms_get_pdu_type                (MMSms *self);

void     mm_sms_send        (MMSms *self,
                             GCancellable *cancellable,
                             GAsyncReadyCallback callback,
                             gpointer user_data);
gboolean mm_sms_send_finish (MMSms *self,
                             GAsyncResult *res,
                             GError **error);
gboolean mm_sms_send_sync   (MMSms *self,
                             GCancellable *cancellable,
                             GError **error);

void     mm_sms_store        (MMSms *self,
                              MMSmsStorage storage,
                              GCancellable *cancellable,
                              GAsyncReadyCallback callback,
                              gpointer user_data);
gboolean mm_sms_store_finish (MMSms *self,
                              GAsyncResult *res,
                              GError **error);
gboolean mm_sms_store_sync   (MMSms *self,
                              MMSmsStorage storage,
                              GCancellable *cancellable,
                              GError **error);

G_END_DECLS

#endif /* _MM_SMS_H_ */