/* 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, see .
*/
#include
_DEFS(giomm,gio)
namespace Gio
{
namespace DBus
{
namespace Address
{
/** Checks if @a string is a D-Bus address.
*
* This doesn't check if @a string is actually supported by BusServer or
* BusConnection - use is_supported_address() to do more checks.
*
* @param string A string.
* @return true if @a string is a valid D-Bus address, false
* otherwise.
* @newin{2,28}
* @ingroup DBus
*/
GIOMM_API
bool is_address(const std::string& string);
/** Like is_address() but also checks if the library supports the transports
* in @a address and that key/value pairs for each transport are valid.
*
* @param address A supposed address.
* @return true if @a address is a valid D-Bus address that is
* supported by this library, false otherwise.
* @throw Glib::Error.
* @newin{2,28}
* @ingroup DBus
*/
GIOMM_API
bool is_supported(const std::string& address);
/** Asynchronously connects to an endpoint specified by @a address and sets up
* the connection so it is in a state to run the client-side of the D-Bus
* authentication conversation.
*
* When the operation is finished, @a slot will be invoked. You can then call
* get_stream_finish() to get the result of the operation.
*
* This is an asynchronous failable function. See get_stream_sync() for the
* synchronous version.
*
* @param address A valid D-Bus address.
* @param cancellable A Cancellable.
* @param slot A SlotAsyncReady to call when the request is satisfied.
* @newin{2,28}
* @ingroup DBus
*/
GIOMM_API
void get_stream(const std::string& address, const SlotAsyncReady slot,
const Glib::RefPtr& cancellable);
/// A non-cancellable version of get_stream().
GIOMM_API
void get_stream(const std::string& address, const SlotAsyncReady slot);
/** Finishes an operation started with get_stream().
*
* @param res A AsyncResult obtained from the SlotAsyncReady passed to
* get_stream().
* @param out_guid Return location to store the GUID extracted from address,
* if any.
* @return A IOStream.
* @throw Glib::Error.
* @newin{2,28}
* @ingroup DBus
*/
GIOMM_API
Glib::RefPtr get_stream_finish(const Glib::RefPtr& res,
std::string& out_guid);
/** Finishes an operation started with get_stream().
*
* @param res A AsyncResult obtained from the SlotAsyncReady passed to
* get_stream().
* @return A IOStream.
* @throw Glib::Error.
* @newin{2,28}
* @ingroup DBus
*/
GIOMM_API
Glib::RefPtr get_stream_finish(const Glib::RefPtr& res);
/** Synchronously connects to an endpoint specified by @a address and sets up
* the connection so it is in a state to run the client-side of the D-Bus
* authentication conversation.
*
* This is a synchronous failable function. See get_stream() for the
* asynchronous version.
*
* @param address A valid D-Bus address.
* @param cancellable A Cancellable.
* @param out_guid A return location to store the GUID extracted from address,
* if any.
* @return A IOStream.
* @throw Glib::Error.
* @newin{2,28}
* @ingroup DBus
*/
GIOMM_API
Glib::RefPtr get_stream_sync(const std::string& address,
const Glib::RefPtr& cancellable, std::string& out_guid);
/// A non-cancellable version of get_stream_sync().
GIOMM_API
Glib::RefPtr get_stream_sync(const std::string& address,
std::string& out_guid);
/** Synchronously connects to an endpoint specified by @a address and sets up
* the connection so it is in a state to run the client-side of the D-Bus
* authentication conversation.
*
* This is a synchronous failable function. See get_stream() for the
* asynchronous version.
*
* @param address A valid D-Bus address.
* @param cancellable A Cancellable.
* @return A IOStream.
* @throw Glib::Error.
* @newin{2,28}
* @ingroup DBus
*/
GIOMM_API
Glib::RefPtr get_stream_sync(const std::string& address,
const Glib::RefPtr& cancellable);
/// A non-cancellable version of get_stream_sync().
GIOMM_API
Glib::RefPtr get_stream_sync(const std::string& address);
/** Synchronously looks up the D-Bus address for the well-known message bus
* instance specified by @a bus_type. This may involve using various platform
* specific mechanisms.
*
* @param bus_type A BusType.
* @param cancellable A Cancellable.
* @return A valid D-Bus address string for @a bus_type.
* @throw Glib::Error.
* @newin{2,28}
* @ingroup DBus
*/
GIOMM_API
std::string get_for_bus_sync(BusType bus_type,
const Glib::RefPtr& cancellable);
/// A non-cancellable get_for_bus_sync().
GIOMM_API
std::string get_for_bus_sync(BusType bus_type);
} // namespace Address
} // namespace DBus
} // namespace Gio