File: aj_std.h

package info (click to toggle)
alljoyn-thin-client-1509 15.09a-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 4,240 kB
  • sloc: ansic: 55,937; cpp: 2,995; python: 361; sh: 174; makefile: 39
file content (277 lines) | stat: -rw-r--r-- 14,506 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
#ifndef _AJ_STD_H
#define _AJ_STD_H
/**
 * @file aj_std.h
 * @defgroup aj_std AllJoyn Standard Object Definitions
 * @{
 */
/******************************************************************************
 * Copyright AllSeen Alliance. All rights reserved.
 *
 *    Permission to use, copy, modify, and/or distribute this software for any
 *    purpose with or without fee is hereby granted, provided that the above
 *    copyright notice and this permission notice appear in all copies.
 *
 *    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 *    WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 *    MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 *    ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 *    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 *    ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 *    OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 ******************************************************************************/

#include <ajtcl/aj_target.h>
#include <ajtcl/aj_status.h>
#include <ajtcl/aj_introspect.h>

/**
 * Identifiers for standard methods and signals. These are the values returned by
 * AJ_IdentifyMessage() for correctly formed method and signal messages.
 *
 * The first value is the index into the object array.
 * The second value is the index into the interfaces array for the object.
 * The third value is the index into the members array of the interface.
 */


/*
 * Members of the /org/freedesktop/DBus interface org.freedesktop.DBus
 */
#define AJ_METHOD_HELLO                AJ_BUS_MESSAGE_ID(0, 0, 0)    /**< method for hello */
#define AJ_SIGNAL_NAME_OWNER_CHANGED   AJ_BUS_MESSAGE_ID(0, 0, 1)    /**< signal for name owner changed */
#define AJ_SIGNAL_NAME_ACQUIRED        AJ_BUS_MESSAGE_ID(0, 0, 2)    /**< signal for name acquired */
#define AJ_SIGNAL_NAME_LOST            AJ_BUS_MESSAGE_ID(0, 0, 3)    /**< signal for name lost */
#define AJ_METHOD_REQUEST_NAME         AJ_BUS_MESSAGE_ID(0, 0, 4)    /**< method for request name */
#define AJ_METHOD_ADD_MATCH            AJ_BUS_MESSAGE_ID(0, 0, 5)    /**< method for add match */
#define AJ_METHOD_REMOVE_MATCH         AJ_BUS_MESSAGE_ID(0, 0, 6)    /**< method for remove match */
#define AJ_METHOD_RELEASE_NAME         AJ_BUS_MESSAGE_ID(0, 0, 7)    /**< method for release name */
#define AJ_METHOD_NAME_HAS_OWNER       AJ_BUS_MESSAGE_ID(0, 0, 8)    /**< method for name has owner */

/*
 * Members of /org/alljoyn/Bus interface org.alljoyn.Bus
 */
#define AJ_SIGNAL_SESSION_LOST                  AJ_BUS_MESSAGE_ID(1, 0, 0)    /**< signal for session lost */
#define AJ_SIGNAL_FOUND_ADV_NAME                AJ_BUS_MESSAGE_ID(1, 0, 1)    /**< signal for found advertising name */
#define AJ_SIGNAL_LOST_ADV_NAME                 AJ_BUS_MESSAGE_ID(1, 0, 2)    /**< signal for lost advertising name */
#define AJ_SIGNAL_MP_SESSION_CHANGED            AJ_BUS_MESSAGE_ID(1, 0, 3)    /**< signal for mp session changed */
#define AJ_METHOD_ADVERTISE_NAME                AJ_BUS_MESSAGE_ID(1, 0, 4)    /**< method for advertise name */
#define AJ_METHOD_CANCEL_ADVERTISE              AJ_BUS_MESSAGE_ID(1, 0, 5)    /**< method for cancel advertise */
#define AJ_METHOD_FIND_NAME                     AJ_BUS_MESSAGE_ID(1, 0, 6)    /**< method for find name */
#define AJ_METHOD_CANCEL_FIND_NAME              AJ_BUS_MESSAGE_ID(1, 0, 7)    /**< method for cancel find name */
#define AJ_METHOD_BIND_SESSION_PORT             AJ_BUS_MESSAGE_ID(1, 0, 8)    /**< method for bind session port */
#define AJ_METHOD_UNBIND_SESSION                AJ_BUS_MESSAGE_ID(1, 0, 9)    /**< method for unbind session */
#define AJ_METHOD_JOIN_SESSION                  AJ_BUS_MESSAGE_ID(1, 0, 10)   /**< method for join session */
#define AJ_METHOD_LEAVE_SESSION                 AJ_BUS_MESSAGE_ID(1, 0, 11)   /**< method for leave session */
#define AJ_METHOD_CANCEL_SESSIONLESS            AJ_BUS_MESSAGE_ID(1, 0, 12)   /**< method for cancel sessionless */
#define AJ_METHOD_FIND_NAME_BY_TRANSPORT        AJ_BUS_MESSAGE_ID(1, 0, 13)   /**< method for find name by specific transports */
#define AJ_METHOD_CANCEL_FIND_NAME_BY_TRANSPORT AJ_BUS_MESSAGE_ID(1, 0, 14)   /**< method for cancel find name by specific transports */
#define AJ_METHOD_SET_LINK_TIMEOUT              AJ_BUS_MESSAGE_ID(1, 0, 15)   /**< method for setting the link timeout for a session */
#define AJ_METHOD_REMOVE_SESSION_MEMBER         AJ_BUS_MESSAGE_ID(1, 0, 16)   /**< method for removing a member in a session */
#define AJ_SIGNAL_SESSION_LOST_WITH_REASON      AJ_BUS_MESSAGE_ID(1, 0, 17)   /**< signal for session lost with a reason */
#define AJ_METHOD_BUS_PING                      AJ_BUS_MESSAGE_ID(1, 0, 18)   /**< method for ping */
#define AJ_METHOD_BUS_SET_IDLE_TIMEOUTS         AJ_BUS_MESSAGE_ID(1, 0, 19)   /**< method for set idle timeouts */
#define AJ_METHOD_BUS_SIMPLE_HELLO              AJ_BUS_MESSAGE_ID(1, 0, 20)   /**< Simple Hello, similar to BusHello */

/*
 * Members of /org/alljoyn/Bus/Peer interface org.alljoyn.Bus.Peer.Session
 */
#define AJ_METHOD_ACCEPT_SESSION       AJ_BUS_MESSAGE_ID(2, 0, 0)    /**< method for accept session */
#define AJ_SIGNAL_SESSION_JOINED       AJ_BUS_MESSAGE_ID(2, 0, 1)    /**< signal for session joined */

/*
 * Members of /org/alljoyn/Bus/Peer interface org.alljoyn.Bus.Peer.Authentication
 */
#define AJ_PEER_AUTHENTICATION_IFN     AJ_BUS_MESSAGE_ID(2, 1, 0)    /**< Id for Peer.Authentication interface */
#define AJ_METHOD_EXCHANGE_GUIDS       AJ_BUS_MESSAGE_ID(2, 1, 0)    /**< method for exchange guids */
#define AJ_METHOD_GEN_SESSION_KEY      AJ_BUS_MESSAGE_ID(2, 1, 1)    /**< method for generate session key */
#define AJ_METHOD_EXCHANGE_GROUP_KEYS  AJ_BUS_MESSAGE_ID(2, 1, 2)    /**< method for exchange group keys */
#define AJ_METHOD_AUTH_CHALLENGE       AJ_BUS_MESSAGE_ID(2, 1, 3)    /**< method for auth challenge */
#define AJ_METHOD_EXCHANGE_SUITES      AJ_BUS_MESSAGE_ID(2, 1, 4)    /**< method for exchange suites */
#define AJ_METHOD_KEY_EXCHANGE         AJ_BUS_MESSAGE_ID(2, 1, 5)    /**< method for key exchange */
#define AJ_METHOD_KEY_AUTHENTICATION   AJ_BUS_MESSAGE_ID(2, 1, 6)    /**< method for authenticating key exchange */
#define AJ_METHOD_SEND_MANIFEST        AJ_BUS_MESSAGE_ID(2, 1, 7)    /**< method for exchanging manifests */
#define AJ_METHOD_SEND_MEMBERSHIPS     AJ_BUS_MESSAGE_ID(2, 1, 8)    /**< method for exchanging membership certificates */

/*
 * Members of interface org.freedesktop.DBus.Introspectable
 *
 * Note - If you use this message id explicitly to construct a method call it will always introspect
 * the root object.
 */
#define AJ_METHOD_INTROSPECT           AJ_BUS_MESSAGE_ID(3, 0, 0)    /**< method for introspect */

/*
 * Members of the interface org.freedesktop.DBus.Peer
 */
#define AJ_METHOD_PING                 AJ_BUS_MESSAGE_ID(3, 1, 0)    /**< method for ping */
#define AJ_METHOD_GET_MACHINE_ID       AJ_BUS_MESSAGE_ID(3, 1, 1)    /**< method for get machine id */

/*
 * Members of the interface org.allseen.Introspectable
 */
#define AJ_METHOD_GET_DESCRIPTION_LANG AJ_BUS_MESSAGE_ID(3, 2, 0)    /**< method for get description langauges */
#define AJ_METHOD_INTROSPECT_WITH_DESC AJ_BUS_MESSAGE_ID(3, 2, 1)    /**< method for introspect with descriptions */

/*
 * Members of /org/alljoyn/Daemon interface org.alljoyn.Daemon
 */
#define AJ_SIGNAL_PROBE_REQ            AJ_BUS_MESSAGE_ID(4, 0, 0)    /**< signal for link probe request */
#define AJ_SIGNAL_PROBE_ACK            AJ_BUS_MESSAGE_ID(4, 0, 1)    /**< signal for link probe acknowledgement */

/*
 * Members of interface org.alljoyn.About
 */
#define AJ_METHOD_ABOUT_GET_PROP                AJ_BUS_MESSAGE_ID(5, 0, AJ_PROP_GET)
#define AJ_METHOD_ABOUT_SET_PROP                AJ_BUS_MESSAGE_ID(5, 0, AJ_PROP_SET)

#define AJ_PROPERTY_ABOUT_VERSION               AJ_BUS_PROPERTY_ID(5, 1, 0)

#define AJ_METHOD_ABOUT_GET_ABOUT_DATA          AJ_BUS_MESSAGE_ID(5, 1, 1)
#define AJ_METHOD_ABOUT_GET_OBJECT_DESCRIPTION  AJ_BUS_MESSAGE_ID(5, 1, 2)
#define AJ_SIGNAL_ABOUT_ANNOUNCE                AJ_BUS_MESSAGE_ID(5, 1, 3)

/*
 * Members of interface org.alljoyn.AboutIcon
 */
#define AJ_METHOD_ABOUT_ICON_GET_PROP          AJ_BUS_MESSAGE_ID(6, 0, AJ_PROP_GET)
#define AJ_METHOD_ABOUT_ICON_SET_PROP          AJ_BUS_MESSAGE_ID(6, 0, AJ_PROP_SET)

#define AJ_PROPERTY_ABOUT_ICON_VERSION_PROP    AJ_BUS_PROPERTY_ID(6, 1, 0)
#define AJ_PROPERTY_ABOUT_ICON_MIMETYPE_PROP   AJ_BUS_PROPERTY_ID(6, 1, 1)
#define AJ_PROPERTY_ABOUT_ICON_SIZE_PROP       AJ_BUS_PROPERTY_ID(6, 1, 2)

#define AJ_METHOD_ABOUT_ICON_GET_URL           AJ_BUS_MESSAGE_ID(6, 1, 3)
#define AJ_METHOD_ABOUT_ICON_GET_CONTENT       AJ_BUS_MESSAGE_ID(6, 1, 4)

#define AJ_METHOD_SECURITY_GET_PROP                AJ_BUS_MESSAGE_ID(7, 0,  AJ_PROP_GET)
#define AJ_METHOD_SECURITY_SET_PROP                AJ_BUS_MESSAGE_ID(7, 0,  AJ_PROP_SET)
/*
 * Members of interface org.alljoyn.Bus.Application
 */
#define AJ_PROPERTY_APPLICATION_VERSION            AJ_BUS_MESSAGE_ID(7, 1, 0)
#define AJ_SIGNAL_APPLICATION_STATE                AJ_BUS_MESSAGE_ID(7, 1, 1)
/*
 * Members of interface org.alljoyn.Bus.Security.Application
 */
#define AJ_PROPERTY_SEC_VERSION                    AJ_BUS_MESSAGE_ID(7, 2,  0)
#define AJ_PROPERTY_SEC_APPLICATION_STATE          AJ_BUS_MESSAGE_ID(7, 2,  1)
#define AJ_PROPERTY_SEC_MANIFEST_DIGEST            AJ_BUS_MESSAGE_ID(7, 2,  2)
#define AJ_PROPERTY_SEC_ECC_PUBLICKEY              AJ_BUS_MESSAGE_ID(7, 2,  3)
#define AJ_PROPERTY_SEC_MANUFACTURER_CERTIFICATE   AJ_BUS_MESSAGE_ID(7, 2,  4)
#define AJ_PROPERTY_SEC_MANIFEST_TEMPLATE          AJ_BUS_MESSAGE_ID(7, 2,  5)
#define AJ_PROPERTY_SEC_CLAIM_CAPABILITIES         AJ_BUS_MESSAGE_ID(7, 2,  6)
#define AJ_PROPERTY_SEC_CLAIM_CAPABILITIES_INFO    AJ_BUS_MESSAGE_ID(7, 2,  7)
/*
 * Members of interface org.alljoyn.Bus.Security.ClaimableApplication
 */
#define AJ_PROPERTY_CLAIMABLE_VERSION              AJ_BUS_MESSAGE_ID(7, 3,  0)
#define AJ_METHOD_CLAIMABLE_CLAIM                  AJ_BUS_MESSAGE_ID(7, 3,  1)
/*
 * Members of interface org.alljoyn.Bus.Security.ManagedApplication
 */
#define AJ_PROPERTY_MANAGED_VERSION                AJ_BUS_MESSAGE_ID(7, 4,  0)
#define AJ_PROPERTY_MANAGED_IDENTITY               AJ_BUS_MESSAGE_ID(7, 4,  1)
#define AJ_PROPERTY_MANAGED_MANIFEST               AJ_BUS_MESSAGE_ID(7, 4,  2)
#define AJ_PROPERTY_MANAGED_IDENTITY_CERT_ID       AJ_BUS_MESSAGE_ID(7, 4,  3)
#define AJ_PROPERTY_MANAGED_POLICY_VERSION         AJ_BUS_MESSAGE_ID(7, 4,  4)
#define AJ_PROPERTY_MANAGED_POLICY                 AJ_BUS_MESSAGE_ID(7, 4,  5)
#define AJ_PROPERTY_MANAGED_DEFAULT_POLICY         AJ_BUS_MESSAGE_ID(7, 4,  6)
#define AJ_PROPERTY_MANAGED_MEMBERSHIP_SUMMARY     AJ_BUS_MESSAGE_ID(7, 4,  7)
#define AJ_METHOD_MANAGED_RESET                    AJ_BUS_MESSAGE_ID(7, 4,  8)
#define AJ_METHOD_MANAGED_UPDATE_IDENTITY          AJ_BUS_MESSAGE_ID(7, 4,  9)
#define AJ_METHOD_MANAGED_UPDATE_POLICY            AJ_BUS_MESSAGE_ID(7, 4, 10)
#define AJ_METHOD_MANAGED_RESET_POLICY             AJ_BUS_MESSAGE_ID(7, 4, 11)
#define AJ_METHOD_MANAGED_INSTALL_MEMBERSHIP       AJ_BUS_MESSAGE_ID(7, 4, 12)
#define AJ_METHOD_MANAGED_REMOVE_MEMBERSHIP        AJ_BUS_MESSAGE_ID(7, 4, 13)

/**
 * Message identifier that indicates a message was invalid.
 */
#define AJ_INVALID_MSG_ID              (0xFFFFFFFF)

/**
 * Message identifier that indicates a property was invalid.
 */
#define AJ_INVALID_PROP_ID             (0xFFFFFFFF)

/**
 * DBus well-known bus name
 */
extern const char AJ_DBusDestination[21];

/**
 * AllJoyn well-known bus name
 */
extern const char AJ_BusDestination[16];

/*
 * Error message strings
 */
extern const char AJ_ErrSecurityViolation[34];     /**< Error security violation string */
extern const char AJ_ErrPermissionDenied[48];      /**< Error permission denied string */
extern const char AJ_ErrDigestMismatch[46];        /**< Error digest mismatch string */
extern const char AJ_ErrInvalidCertificate[50];    /**< Error invalid certificate string */
extern const char AJ_ErrDuplicateCertificate[52];  /**< Error duplicate certificate string */
extern const char AJ_ErrCertificateNotFound[51];   /**< Error certificate not found string */
extern const char AJ_ErrPolicyNotNewer[46];        /**< Error invalid policy string */
extern const char AJ_ErrTimeout[24];               /**< Error timeout string */
extern const char AJ_ErrRejected[25];              /**< Error rejected string */
extern const char AJ_ErrResources[26];             /**< Error resource string */
extern const char AJ_ErrServiceUnknown[42];        /**< Error service unknown string */

extern const char AJ_ErrUpdateNotAllowed[35];      /**< Error update not allowed string */
extern const char AJ_ErrInvalidValue[31];          /**< Error invalid value string */
extern const char AJ_ErrFeatureNotAvailable[38];   /**< Error feature not available string */
extern const char AJ_ErrMaxSizeExceeded[34];       /**< Error max size exceeded string */
extern const char AJ_ErrLanguageNotSuppored[39];   /**< Error language not supported string */
extern const char AJ_ErrMethodNotAllowed[35];      /**< Error method not allowed string */

/**
 * The properties interface. This interface must be included in the property lists of all local and
 * proxy objects that have properties.
 */
extern const char* const AJ_PropertiesIface[6];

/**
 * The DBUS Peer interface name
 */
extern const char DBusPeerInterface[27];

/**
 * The AllJoyn Peer Authentication interface name
 */
extern const char PeerAuthInterface[36];

/*
 * Constants for the various property method indices in the properties interface
 */
#define AJ_PROP_GET     0        /**< index for property method get */
#define AJ_PROP_SET     1        /**< index for property method set */
#define AJ_PROP_GET_ALL 2        /**< index for property method get_all */
#define AJ_PROP_CHANGED 3        /**< index for properties changed signal */

/**
 * The introspection interface.
 */
extern const char* const AJ_IntrospectionIface[3];

/**
 * The AllSeen introspection interface name
 */
extern const char AllSeenIntrospectableInterface[28];

/**
 * The AllSeen introspection interface with the additional descriptions
 */
extern const char* const AJ_AllSeenIntrospectionIface[4];

/**
 * The standard objects that implement AllJoyn core functionality
 */
extern const AJ_Object AJ_StandardObjects[9];

/**
 * @}
 */
#endif