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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* libmm-glib -- 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) 2021 Aleksander Morgado <aleksander@aleksander.es>
*/
#ifndef MM_3GPP_PROFILE_H
#define MM_3GPP_PROFILE_H
#include <ModemManager.h>
#include <glib-object.h>
#if !defined (__LIBMM_GLIB_H_INSIDE__) && !defined (LIBMM_GLIB_COMPILATION)
# error "Only <libmm-glib.h> can be included directly."
#endif
G_BEGIN_DECLS
/**
* MM_3GPP_PROFILE_ID_UNKNOWN:
*
* This value may be specified in the 'profile-id' property When the user
* creates a new #MM3gppProfile, to indicate that the real profile id should
* be assigned by the device.
*/
#define MM_3GPP_PROFILE_ID_UNKNOWN -1
#define MM_TYPE_3GPP_PROFILE (mm_3gpp_profile_get_type ())
#define MM_3GPP_PROFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_3GPP_PROFILE, MM3gppProfile))
#define MM_3GPP_PROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_3GPP_PROFILE, MM3gppProfileClass))
#define MM_IS_3GPP_PROFILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_3GPP_PROFILE))
#define MM_IS_3GPP_PROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_3GPP_PROFILE))
#define MM_3GPP_PROFILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_3GPP_PROFILE, MM3gppProfileClass))
typedef struct _MM3gppProfile MM3gppProfile;
typedef struct _MM3gppProfileClass MM3gppProfileClass;
typedef struct _MM3gppProfilePrivate MM3gppProfilePrivate;
/**
* MM3gppProfile:
*
* The #MM3gppProfile structure contains private data and should
* only be accessed using the provided API.
*/
struct _MM3gppProfile {
/*< private >*/
GObject parent;
MM3gppProfilePrivate *priv;
};
struct _MM3gppProfileClass {
/*< private >*/
GObjectClass parent;
};
GType mm_3gpp_profile_get_type (void);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MM3gppProfile, g_object_unref)
MM3gppProfile *mm_3gpp_profile_new (void);
void mm_3gpp_profile_set_profile_id (MM3gppProfile *self,
gint profile_id);
void mm_3gpp_profile_set_profile_name (MM3gppProfile *self,
const gchar *profile_name);
void mm_3gpp_profile_set_apn (MM3gppProfile *self,
const gchar *apn);
void mm_3gpp_profile_set_allowed_auth (MM3gppProfile *self,
MMBearerAllowedAuth allowed_auth);
void mm_3gpp_profile_set_user (MM3gppProfile *self,
const gchar *user);
void mm_3gpp_profile_set_password (MM3gppProfile *self,
const gchar *password);
void mm_3gpp_profile_set_ip_type (MM3gppProfile *self,
MMBearerIpFamily ip_type);
void mm_3gpp_profile_set_apn_type (MM3gppProfile *self,
MMBearerApnType apn_type);
void mm_3gpp_profile_set_access_type_preference (MM3gppProfile *self,
MMBearerAccessTypePreference access_type_preference);
gint mm_3gpp_profile_get_profile_id (MM3gppProfile *self);
const gchar *mm_3gpp_profile_get_profile_name (MM3gppProfile *self);
const gchar *mm_3gpp_profile_get_apn (MM3gppProfile *self);
MMBearerAllowedAuth mm_3gpp_profile_get_allowed_auth (MM3gppProfile *self);
const gchar *mm_3gpp_profile_get_user (MM3gppProfile *self);
const gchar *mm_3gpp_profile_get_password (MM3gppProfile *self);
MMBearerIpFamily mm_3gpp_profile_get_ip_type (MM3gppProfile *self);
MMBearerApnType mm_3gpp_profile_get_apn_type (MM3gppProfile *self);
MMBearerAccessTypePreference mm_3gpp_profile_get_access_type_preference (MM3gppProfile *self);
/*****************************************************************************/
/* ModemManager/libmm-glib/mmcli specific methods */
#if defined (_LIBMM_INSIDE_MM) || \
defined (_LIBMM_INSIDE_MMCLI) || \
defined (LIBMM_GLIB_COMPILATION)
MM3gppProfile *mm_3gpp_profile_new_from_string (const gchar *str,
GError **error);
MM3gppProfile *mm_3gpp_profile_new_from_dictionary (GVariant *dictionary,
GError **error);
GVariant *mm_3gpp_profile_get_dictionary (MM3gppProfile *self);
gboolean mm_3gpp_profile_consume_string (MM3gppProfile *self,
const gchar *key,
const gchar *value,
GError **error);
gboolean mm_3gpp_profile_consume_variant (MM3gppProfile *self,
const gchar *key,
GVariant *value,
GError **error);
typedef enum {
MM_3GPP_PROFILE_CMP_FLAGS_NONE = 0,
MM_3GPP_PROFILE_CMP_FLAGS_NO_PROFILE_ID = 1 << 1,
MM_3GPP_PROFILE_CMP_FLAGS_NO_PROFILE_NAME = 1 << 2,
MM_3GPP_PROFILE_CMP_FLAGS_NO_AUTH = 1 << 3,
MM_3GPP_PROFILE_CMP_FLAGS_NO_APN_TYPE = 1 << 4,
MM_3GPP_PROFILE_CMP_FLAGS_NO_IP_TYPE = 1 << 5,
MM_3GPP_PROFILE_CMP_FLAGS_NO_ACCESS_TYPE_PREFERENCE = 1 << 6,
} MM3gppProfileCmpFlags;
gboolean mm_3gpp_profile_cmp (MM3gppProfile *a,
MM3gppProfile *b,
GEqualFunc cmp_apn,
MM3gppProfileCmpFlags flags);
#endif
G_END_DECLS
#endif /* MM_3GPP_PROFILE_H */
|