libqmi-glib Reference Manual | ||||
---|---|---|---|---|
Top | Description |
#define QMI_MESSAGE_QMUX_MARKER typedef QmiMessage; QmiMessage * qmi_message_new (QmiService service
,guint8 client_id
,guint16 transaction_id
,guint16 message_id
); QmiMessage * qmi_message_new_from_raw (GByteArray *raw
,GError **error
); QmiMessage * qmi_message_response_new (QmiMessage *request
,QmiProtocolError error
); QmiMessage * qmi_message_ref (QmiMessage *self
); void qmi_message_unref (QmiMessage *self
); gboolean qmi_message_is_request (QmiMessage *self
); gboolean qmi_message_is_response (QmiMessage *self
); gboolean qmi_message_is_indication (QmiMessage *self
); QmiService qmi_message_get_service (QmiMessage *self
); guint8 qmi_message_get_client_id (QmiMessage *self
); guint16 qmi_message_get_transaction_id (QmiMessage *self
); guint16 qmi_message_get_message_id (QmiMessage *self
); gsize qmi_message_get_length (QmiMessage *self
); const guint8 * qmi_message_get_raw (QmiMessage *self
,gsize *length
,GError **error
); gboolean qmi_message_get_version_introduced (QmiMessage *self
,guint *major
,guint *minor
); void (*QmiMessageForeachRawTlvFn) (guint8 type
,const guint8 *value
,gsize length
,gpointer user_data
); void qmi_message_foreach_raw_tlv (QmiMessage *self
,QmiMessageForeachRawTlvFn func
,gpointer user_data
); const guint8 * qmi_message_get_raw_tlv (QmiMessage *self
,guint8 type
,guint16 *length
); gboolean qmi_message_add_raw_tlv (QmiMessage *self
,guint8 type
,const guint8 *raw
,gsize length
,GError **error
); void qmi_message_set_transaction_id (QmiMessage *self
,guint16 transaction_id
); gchar * qmi_message_get_printable (QmiMessage *self
,const gchar *line_prefix
); gchar * qmi_message_get_tlv_printable (QmiMessage *self
,const gchar *line_prefix
,guint8 type
,const guint8 *raw
,gsize raw_length
);
QmiMessage is a generic type representing a QMI message of any kind (request, response, indication) or service (including QMI_SERVICE_CTL).
This set of generic routines help in handling these message types, and allow creating any kind of message with any kind of TLV.
QmiMessage * qmi_message_new (QmiService service
,guint8 client_id
,guint16 transaction_id
,guint16 message_id
);
Create a new QmiMessage with the specified parameters.
Note that transaction_id
must be less than G_MAXUINT8 if service
is
QMI_SERVICE_CTL.
|
a QmiService |
|
client ID of the originating control point. |
|
transaction ID. |
|
message ID. |
Returns : |
a newly created QmiMessage. The returned value should be freed with qmi_message_unref() . [transfer full]
|
QmiMessage * qmi_message_new_from_raw (GByteArray *raw
,GError **error
);
Create a new QmiMessage from the given raw data buffer.
Whenever a complete QMI message is read, its raw data gets removed from the raw
buffer.
|
raw data buffer. [inout] |
|
return location for error or NULL . |
Returns : |
a newly created QmiMessage, which should be freed with qmi_message_unref() . If raw doesn't contain a complete QMI message NULL is returned. If there is a complete QMI message but it appears not to be valid, NULL is returned and error is set. [transfer full]
|
QmiMessage * qmi_message_response_new (QmiMessage *request
,QmiProtocolError error
);
Create a new response QmiMessage for the specified request
.
|
a request QmiMessage. |
|
a QmiProtocolError to set in the result TLV. |
Returns : |
a newly created QmiMessage. The returned value should be freed with qmi_message_unref() . [transfer full]
|
QmiMessage * qmi_message_ref (QmiMessage *self
);
Atomically increments the reference count of self
by one.
|
a QmiMessage. |
Returns : |
(transfer full) the new reference to self . |
void qmi_message_unref (QmiMessage *self
);
Atomically decrements the reference count of self
by one.
If the reference count drops to 0, self
is completely disposed.
|
a QmiMessage. |
gboolean qmi_message_is_request (QmiMessage *self
);
Checks whether the given QmiMessage is a request.
|
a QmiMessage. |
Returns : |
TRUE if self is a request message, FALSE otherwise. |
gboolean qmi_message_is_response (QmiMessage *self
);
Checks whether the given QmiMessage is a response.
|
a QmiMessage. |
Returns : |
TRUE if self is a response message, FALSE otherwise. |
gboolean qmi_message_is_indication (QmiMessage *self
);
Checks whether the given QmiMessage is an indication.
|
a QmiMessage. |
Returns : |
TRUE if self is an indication message, FALSE otherwise. |
QmiService qmi_message_get_service (QmiMessage *self
);
Gets the service corresponding to the given QmiMessage.
|
a QmiMessage. |
Returns : |
a QmiService. |
guint8 qmi_message_get_client_id (QmiMessage *self
);
Gets the client ID of the message.
|
a QmiMessage. |
Returns : |
the client ID. |
guint16 qmi_message_get_transaction_id (QmiMessage *self
);
Gets the transaction ID of the message.
|
a QmiMessage. |
Returns : |
the transaction ID. |
guint16 qmi_message_get_message_id (QmiMessage *self
);
Gets the ID of the message.
|
a QmiMessage. |
Returns : |
the ID. |
gsize qmi_message_get_length (QmiMessage *self
);
Gets the length of the raw data corresponding to the given QmiMessage.
|
a QmiMessage. |
Returns : |
the length of the raw data. |
const guint8 * qmi_message_get_raw (QmiMessage *self
,gsize *length
,GError **error
);
Gets the raw data buffer of the QmiMessage.
|
a QmiMessage. |
|
return location for the size of the output buffer. [out] |
|
return location for error or NULL . |
Returns : |
The raw data buffer, or NULL if error is set. [transfer none]
|
gboolean qmi_message_get_version_introduced (QmiMessage *self
,guint *major
,guint *minor
);
Gets, if known, the service version in which the given message was first introduced.
|
a QmiMessage. |
|
(out) return location for the major version. |
|
(out) return location for the minor version. |
Returns : |
TRUE if major and minor are set, FALSE otherwise. |
void (*QmiMessageForeachRawTlvFn) (guint8 type
,const guint8 *value
,gsize length
,gpointer user_data
);
void qmi_message_foreach_raw_tlv (QmiMessage *self
,QmiMessageForeachRawTlvFn func
,gpointer user_data
);
Calls the given function for each TLV found within the QmiMessage.
|
a QmiMessage. |
|
the function to call for each TLV. |
|
user data to pass to the function. |
const guint8 * qmi_message_get_raw_tlv (QmiMessage *self
,guint8 type
,guint16 *length
);
Get the raw data buffer of a specific TLV within the QmiMessage.
|
a QmiMessage. |
|
specific ID of the TLV to get. |
|
return location for the length of the TLV. [out] |
Returns : |
The raw data buffer of the TLV, or NULL if not found. [transfer none] |
gboolean qmi_message_add_raw_tlv (QmiMessage *self
,guint8 type
,const guint8 *raw
,gsize length
,GError **error
);
Creates a new type
TLV with the value given in raw
, and adds it to the QmiMessage.
|
a QmiMessage. |
|
specific ID of the TLV to add. |
|
raw data buffer with the value of the TLV. |
|
length of the raw data buffer. |
|
return location for error or NULL . |
Returns : |
TRUE if the TLV as successfully added, otherwise FALSE is returned and error is set. |
void qmi_message_set_transaction_id (QmiMessage *self
,guint16 transaction_id
);
Overwrites the transaction ID of the message.
|
a QmiMessage. |
|
transaction id. |
gchar * qmi_message_get_printable (QmiMessage *self
,const gchar *line_prefix
);
Gets a printable string with the contents of the whole QMI message.
If known, the printable string will contain translated TLV values as well as the raw data buffer contents.
|
a QmiMessage. |
|
prefix string to use in each new generated line. |
Returns : |
a newly allocated string, which should be freed with g_free() . [transfer full]
|
gchar * qmi_message_get_tlv_printable (QmiMessage *self
,const gchar *line_prefix
,guint8 type
,const guint8 *raw
,gsize raw_length
);
Gets a printable string with the contents of the TLV.
This method is the most generic one and doesn't try to translate the TLV contents.
|
a QmiMessage. |
|
prefix string to use in each new generated line. |
|
type of the TLV. |
|
raw data buffer with the value of the TLV. |
|
length of the raw data buffer. |
Returns : |
a newly allocated string, which should be freed with g_free() . [transfer full]
|