1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ |
2 | /* dbus-address.h Server address parser. |
3 | * |
4 | * Copyright (C) 2003 CodeFactory AB |
5 | * |
6 | * Licensed under the Academic Free License version 2.1 |
7 | * |
8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License as published by |
10 | * the Free Software Foundation; either version 2 of the License, or |
11 | * (at your option) any later version. |
12 | * |
13 | * This program is distributed in the hope that it will be useful, |
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | * GNU General Public License for more details. |
17 | * |
18 | * You should have received a copy of the GNU General Public License |
19 | * along with this program; if not, write to the Free Software |
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
21 | * |
22 | */ |
23 | #if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) |
24 | #error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents." |
25 | #endif |
26 | |
27 | #ifndef DBUS_ADDRESS_H |
28 | #define DBUS_ADDRESS_H |
29 | |
30 | #include <dbus/dbus-types.h> |
31 | #include <dbus/dbus-errors.h> |
32 | |
33 | DBUS_BEGIN_DECLS |
34 | |
35 | /** |
36 | * @addtogroup DBusAddress |
37 | * @{ |
38 | */ |
39 | |
40 | /** Opaque type representing one of the semicolon-separated items in an address */ |
41 | typedef struct DBusAddressEntry DBusAddressEntry; |
42 | |
43 | DBUS_EXPORT |
44 | dbus_bool_t dbus_parse_address (const char *address, |
45 | DBusAddressEntry ***entry_result, |
46 | int *array_len, |
47 | DBusError *error); |
48 | DBUS_EXPORT |
49 | const char *dbus_address_entry_get_value (DBusAddressEntry *entry, |
50 | const char *key); |
51 | DBUS_EXPORT |
52 | const char *dbus_address_entry_get_method (DBusAddressEntry *entry); |
53 | DBUS_EXPORT |
54 | void dbus_address_entries_free (DBusAddressEntry **entries); |
55 | |
56 | DBUS_EXPORT |
57 | char* dbus_address_escape_value (const char *value); |
58 | DBUS_EXPORT |
59 | char* dbus_address_unescape_value (const char *value, |
60 | DBusError *error); |
61 | |
62 | /** |
63 | * Clear a variable or struct member that contains an array of #DBusAddressEntry. |
64 | * If it does not contain #NULL, the entries that were previously |
65 | * there are freed with dbus_address_entries_free(). |
66 | * |
67 | * This is similar to dbus_clear_connection(): see that function |
68 | * for more details. |
69 | * |
70 | * @param pointer_to_entries A pointer to a variable or struct member. |
71 | * pointer_to_entries must not be #NULL, but *pointer_to_entries |
72 | * may be #NULL. |
73 | */ |
74 | static inline void |
75 | dbus_clear_address_entries (DBusAddressEntry ***pointer_to_entries) |
76 | { |
77 | _dbus_clear_pointer_impl (DBusAddressEntry *, pointer_to_entries, |
78 | dbus_address_entries_free); |
79 | } |
80 | |
81 | /** @} */ |
82 | |
83 | DBUS_END_DECLS |
84 | |
85 | #endif /* DBUS_ADDRESS_H */ |
86 | |
87 | |