|  |  |  | 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_ref (QmiMessage *self); void qmi_message_unref (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); 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(). Ifrawdoesn'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 anderroris set. [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_response             (QmiMessage *self);
Checks whether the given QmiMessage is a response.
| 
 | a QmiMessage. | 
| Returns : | TRUEifselfis a response message,FALSEotherwise. | 
gboolean            qmi_message_is_indication           (QmiMessage *self);
Checks whether the given QmiMessage is an indication.
| 
 | a QmiMessage. | 
| Returns : | TRUEifselfis an indication message,FALSEotherwise. | 
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 erroris 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 : | TRUEifmajorandminorare set,FALSEotherwise. | 
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 : | TRUEif the TLV as successfully added, otherwiseFALSEis returned anderroris set. | 
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] |