| |
1 /* |
| |
2 * nmrequest.h |
| |
3 * |
| |
4 * Copyright (c) 2004 Novell, Inc. All Rights Reserved. |
| |
5 * |
| |
6 * This program is free software; you can redistribute it and/or modify |
| |
7 * it under the terms of the GNU General Public License as published by |
| |
8 * the Free Software Foundation; version 2 of the License. |
| |
9 * |
| |
10 * This program is distributed in the hope that it will be useful, |
| |
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| |
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| |
13 * GNU General Public License for more details. |
| |
14 * |
| |
15 * You should have received a copy of the GNU General Public License |
| |
16 * along with this program; if not, write to the Free Software |
| |
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| |
18 * |
| |
19 */ |
| |
20 |
| |
21 #ifndef __NM_REQUEST_H__ |
| |
22 #define __NM_REQUEST_H__ |
| |
23 |
| |
24 typedef struct _NMRequest NMRequest; |
| |
25 |
| |
26 #include "nmuser.h" |
| |
27 |
| |
28 /** |
| |
29 * Create a new request object. Object must be release with nm_release_object. |
| |
30 * |
| |
31 * @param cmd The request command string (e.g. "login") |
| |
32 * @param trans_id The request transaction id |
| |
33 * @param gmt The time in seconds that the request was created |
| |
34 * |
| |
35 * @return The new request object |
| |
36 */ |
| |
37 NMRequest *nm_create_request(const char *cmd, int trans_id, int gmt, nm_response_cb cb, |
| |
38 gpointer resp_data, gpointer user_define); |
| |
39 |
| |
40 /** |
| |
41 * Release a request object. |
| |
42 * |
| |
43 * @param req The request to release |
| |
44 */ |
| |
45 void nm_release_request(NMRequest * req); |
| |
46 |
| |
47 /** |
| |
48 * Add a new reference to this object. This reference must be released by |
| |
49 * a call to nm_release_object. |
| |
50 * |
| |
51 * @param req The request object |
| |
52 */ |
| |
53 void nm_request_add_ref(NMRequest * req); |
| |
54 |
| |
55 /** |
| |
56 * Set the response callback for this request object. This is the callback |
| |
57 * that will be made when we get a response from the server. |
| |
58 * |
| |
59 * @param req The request object |
| |
60 * @param callback The response callback |
| |
61 * |
| |
62 */ |
| |
63 void nm_request_set_callback(NMRequest * req, nm_response_cb callback); |
| |
64 |
| |
65 /** |
| |
66 * Set the response data. This will be set differently depending on |
| |
67 * the request type (for example to nm_send_get_details will set this |
| |
68 * to be the newly create NMUserRecord object). |
| |
69 * |
| |
70 * @param req The request object |
| |
71 * @param data Pointer to some data |
| |
72 * |
| |
73 */ |
| |
74 void nm_request_set_data(NMRequest * req, gpointer data); |
| |
75 |
| |
76 /** |
| |
77 * Set the user defined data. This is the data that the client |
| |
78 * passes to the various nm_send_* functions. We will pass it |
| |
79 * back when we make the callback. |
| |
80 * |
| |
81 * @param req The request object |
| |
82 * @param user_define Pointer to some data |
| |
83 * |
| |
84 */ |
| |
85 void nm_request_set_user_define(NMRequest * req, gpointer user_define); |
| |
86 |
| |
87 /** |
| |
88 * Set the return code. This is the return code that we received in |
| |
89 * the server response fields. |
| |
90 * |
| |
91 * @param req The request object |
| |
92 * @param rc The return code to set |
| |
93 */ |
| |
94 void nm_request_set_ret_code(NMRequest * req, NMERR_T rc); |
| |
95 |
| |
96 /** |
| |
97 * Get the transaction id for this request. |
| |
98 * |
| |
99 * @param req The request object |
| |
100 * |
| |
101 * @return The transaction id. |
| |
102 */ |
| |
103 int nm_request_get_trans_id(NMRequest * req); |
| |
104 |
| |
105 /** |
| |
106 * Get the command (request type) for this request. |
| |
107 * |
| |
108 * @param req The request object |
| |
109 * |
| |
110 * @return The request cmd |
| |
111 */ |
| |
112 const char *nm_request_get_cmd(NMRequest * req); |
| |
113 |
| |
114 /** |
| |
115 * Get the response data for this request |
| |
116 * |
| |
117 * @param req The request object |
| |
118 * |
| |
119 * @return The response data |
| |
120 */ |
| |
121 gpointer nm_request_get_data(NMRequest * req); |
| |
122 |
| |
123 /** |
| |
124 * Get the user defined data for this request |
| |
125 * |
| |
126 * @param req The request object |
| |
127 * |
| |
128 * @return The user defined data |
| |
129 */ |
| |
130 gpointer nm_request_get_user_define(NMRequest * req); |
| |
131 |
| |
132 /** |
| |
133 * Get the response callback for this request |
| |
134 * |
| |
135 * @param req The request object |
| |
136 * |
| |
137 * @return The response callback |
| |
138 */ |
| |
139 nm_response_cb nm_request_get_callback(NMRequest * req); |
| |
140 |
| |
141 /** |
| |
142 * Get the return code |
| |
143 * |
| |
144 * @param req The request object |
| |
145 * |
| |
146 * @return The return code (from the response fields) |
| |
147 */ |
| |
148 NMERR_T nm_request_get_ret_code(NMRequest * req); |
| |
149 |
| |
150 #endif |