// -*- c++ -*- // Generated by gmmproc 2.46.3 -- DO NOT MODIFY! #ifndef _GIOMM_DBUSAUTHOBSERVER_H #define _GIOMM_DBUSAUTHOBSERVER_H #include #include // -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*- /* Copyright (C) 2010 The giomm Development Team * * 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.1 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef struct _GDBusAuthObserver GDBusAuthObserver; typedef struct _GDBusAuthObserverClass GDBusAuthObserverClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Gio { namespace DBus { class AuthObserver_Class; } // namespace DBus } // namespace Gio #endif //DOXYGEN_SHOULD_SKIP_THIS namespace Gio { namespace DBus { /** AuthObserver - An object used for authenticating connections. * The AuthObserver type provides a mechanism for participating in how a * Server (or a Connection) authenticates remote peers. Simply * instantiate an AuthObserver and connect to the signals you are * interested in. Note that new signals may be added in the future. * * For example, if you only want to allow D-Bus connections from * processes owned by the same uid as the server, you would use a * signal handler like the following: * @code * bool on_authorize_authenticated_peer( * const Glib::RefPtr&, * const Glib::RefPtr& credentials) * { * bool authorized = false; * * if (credentials) * { * Glib::RefPtr own_credentials = Gio::Credentials::create(); * try * { * if (credentials->is_same_user(own_credentials)) * authorized = true; * } * catch (const Gio::Error& ex) * { * std::cerr << "Gio::Error: " << ex.what() << std::endl; * } * } * * return authorized; * } * @endcode * * @newin{2,28} * @ingroup DBus */ class AuthObserver : public Glib::Object { #ifndef DOXYGEN_SHOULD_SKIP_THIS public: typedef AuthObserver CppObjectType; typedef AuthObserver_Class CppClassType; typedef GDBusAuthObserver BaseObjectType; typedef GDBusAuthObserverClass BaseClassType; // noncopyable AuthObserver(const AuthObserver&) = delete; AuthObserver& operator=(const AuthObserver&) = delete; private: friend class AuthObserver_Class; static CppClassType authobserver_class_; protected: explicit AuthObserver(const Glib::ConstructParams& construct_params); explicit AuthObserver(GDBusAuthObserver* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: AuthObserver(AuthObserver&& src) noexcept; AuthObserver& operator=(AuthObserver&& src) noexcept; virtual ~AuthObserver() noexcept; /** Get the GType for this class, for use with the underlying GObject type system. */ static GType get_type() G_GNUC_CONST; #ifndef DOXYGEN_SHOULD_SKIP_THIS static GType get_base_type() G_GNUC_CONST; #endif ///Provides access to the underlying C GObject. GDBusAuthObserver* gobj() { return reinterpret_cast(gobject_); } ///Provides access to the underlying C GObject. const GDBusAuthObserver* gobj() const { return reinterpret_cast(gobject_); } ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. GDBusAuthObserver* gobj_copy(); private: protected: AuthObserver(); public: static Glib::RefPtr create(); /** Emits the DBusAuthObserver::signal_authorize_authenticated_peer() signal on @a observer. * * @newin{2,26} * * @param stream A IOStream for the DBusConnection. * @param credentials Credentials received from the peer or 0. * @return true if the peer is authorized, false if not. */ bool authorize_authenticated_peer(const Glib::RefPtr& stream, const Glib::RefPtr& credentials); /** Emits the DBusAuthObserver::signal_allow_mechanism() signal on @a observer. * * @newin{2,34} * * @param mechanism The name of the mechanism, e.g. `DBUS_COOKIE_SHA1`. * @return true if @a mechanism can be used to authenticate the other peer, false if not. */ bool allow_mechanism(const std::string& mechanism); /** * @par Slot Prototype: * bool on_my_%authorize_authenticated_peer(const Glib::RefPtr& stream, const Glib::RefPtr& credentials) * * Emitted to check if a peer that is successfully authenticated * is authorized. * * @newin{2,26} * * @param stream A IOStream for the DBusConnection. * @param credentials Credentials received from the peer or 0. * @return true if the peer is authorized, false if not. */ Glib::SignalProxy2< bool,const Glib::RefPtr&,const Glib::RefPtr& > signal_authorize_authenticated_peer(); /** * @par Slot Prototype: * bool on_my_%allow_mechanism(const std::string& mechanism) * * Emitted to check if @a mechanism is allowed to be used. * * @newin{2,34} * * @param mechanism The name of the mechanism, e.g. `DBUS_COOKIE_SHA1`. * @return true if @a mechanism can be used to authenticate the other peer, false if not. */ Glib::SignalProxy1< bool,const std::string& > signal_allow_mechanism(); public: public: //C++ methods used to invoke GTK+ virtual functions: protected: //GTK+ Virtual Functions (override these to change behaviour): //Default Signal Handlers:: }; } //namespace DBus } // namespace Gio namespace Glib { /** A Glib::wrap() method for this object. * * @param object The C instance. * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. * @result A C++ instance that wraps this C instance. * * @relates Gio::DBus::AuthObserver */ Glib::RefPtr wrap(GDBusAuthObserver* object, bool take_copy = false); } #endif /* _GIOMM_DBUSAUTHOBSERVER_H */