/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * libmbim-glib -- GLib/GIO based library to control MBIM devices * * Copyright (C) 2014 Aleksander Morgado * Copyright (C) 2014 Smith Micro Software, Inc. */ #ifndef MBIM_PROXY_H #define MBIM_PROXY_H #if !defined (__LIBMBIM_GLIB_H_INSIDE__) && !defined (LIBMBIM_GLIB_COMPILATION) #error "Only can be included directly." #endif #include #include G_BEGIN_DECLS /** * SECTION:mbim-proxy * @title: MbimProxy * @short_description: MBIM proxy handling routines * * The #MbimProxy will setup an abstract socket listening on a predefined * address, and will take care of synchronizing the access to a set of shared * MBIM ports. * * Multiple #MbimDevice objects may be connected to the #MbimProxy at any given * time. The #MbimProxy acts as a stateful proxy (all remote #MbimDevice objects * will need to share the same message sequence). */ #define MBIM_TYPE_PROXY (mbim_proxy_get_type ()) #define MBIM_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MBIM_TYPE_PROXY, MbimProxy)) #define MBIM_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MBIM_TYPE_PROXY, MbimProxyClass)) #define MBIM_IS_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MBIM_TYPE_PROXY)) #define MBIM_IS_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), MBIM_TYPE_PROXY)) #define MBIM_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MBIM_TYPE_PROXY, MbimProxyClass)) typedef struct _MbimProxy MbimProxy; typedef struct _MbimProxyClass MbimProxyClass; typedef struct _MbimProxyPrivate MbimProxyPrivate; /** * MBIM_PROXY_SOCKET_PATH: * * Symbol defining the default abstract socket name where the #MbimProxy will listen. * * Since: 1.10 */ #define MBIM_PROXY_SOCKET_PATH "mbim-proxy" /** * MBIM_PROXY_N_CLIENTS: * * Symbol defining the #MbimProxy:mbim-proxy-n-clients property. * * Since: 1.10 */ #define MBIM_PROXY_N_CLIENTS "mbim-proxy-n-clients" /** * MBIM_PROXY_N_DEVICES: * * Symbol defining the #MbimProxy:mbim-proxy-n-devices property. * * Since: 1.10 */ #define MBIM_PROXY_N_DEVICES "mbim-proxy-n-devices" /** * MbimProxy: * * The #MbimProxy structure contains private data and should only be accessed * using the provided API. * * Since: 1.10 */ struct _MbimProxy { GObject parent; MbimProxyPrivate *priv; }; struct _MbimProxyClass { GObjectClass parent; }; GType mbim_proxy_get_type (void); G_DEFINE_AUTOPTR_CLEANUP_FUNC (MbimProxy, g_object_unref) /** * mbim_proxy_new: * @error: Return location for error or %NULL. * * Creates a #MbimProxy object. * * Returns: (transfer full): a newly created #MbimProxy, or #NULL if @error is set. * * Since: 1.10 */ MbimProxy *mbim_proxy_new (GError **error); /** * mbim_proxy_get_n_clients: (skip) * @self: a #MbimProxy. * * Get the number of clients currently connected to the proxy. * * Returns: a #guint. * * Since: 1.10 */ guint mbim_proxy_get_n_clients (MbimProxy *self); /** * mbim_proxy_get_n_devices: (skip) * @self: a #MbimProxy. * * Get the number of devices currently connected to the proxy. * * Returns: a #guint. * * Since: 1.10 */ guint mbim_proxy_get_n_devices (MbimProxy *self); G_END_DECLS #endif /* MBIM_PROXY_H */