git add -f bin/default/librpc/gen_ndr/*.[ch] bin/default/source*/librpc/gen_ndr/...
[metze/samba/wip.git] / bin.gen_ndr / default / librpc / gen_ndr / ndr_trkwks_c.c
1 /* client functions auto-generated by pidl */
2
3 #include "includes.h"
4 #include <tevent.h>
5 #include "lib/util/tevent_ntstatus.h"
6 #include "bin/default/librpc/gen_ndr/ndr_trkwks.h"
7 #include "bin/default/librpc/gen_ndr/ndr_trkwks_c.h"
8
9 /* trkwks - client functions generated by pidl */
10
11 struct dcerpc_trkwks_Unknown0_r_state {
12         TALLOC_CTX *out_mem_ctx;
13 };
14
15 static void dcerpc_trkwks_Unknown0_r_done(struct tevent_req *subreq);
16
17 struct tevent_req *dcerpc_trkwks_Unknown0_r_send(TALLOC_CTX *mem_ctx,
18         struct tevent_context *ev,
19         struct dcerpc_binding_handle *h,
20         struct trkwks_Unknown0 *r)
21 {
22         struct tevent_req *req;
23         struct dcerpc_trkwks_Unknown0_r_state *state;
24         struct tevent_req *subreq;
25
26         req = tevent_req_create(mem_ctx, &state,
27                                 struct dcerpc_trkwks_Unknown0_r_state);
28         if (req == NULL) {
29                 return NULL;
30         }
31
32         state->out_mem_ctx = NULL;
33
34         subreq = dcerpc_binding_handle_call_send(state, ev, h,
35                         NULL, &ndr_table_trkwks,
36                         NDR_TRKWKS_UNKNOWN0, state, r);
37         if (tevent_req_nomem(subreq, req)) {
38                 return tevent_req_post(req, ev);
39         }
40         tevent_req_set_callback(subreq, dcerpc_trkwks_Unknown0_r_done, req);
41
42         return req;
43 }
44
45 static void dcerpc_trkwks_Unknown0_r_done(struct tevent_req *subreq)
46 {
47         struct tevent_req *req =
48                 tevent_req_callback_data(subreq,
49                 struct tevent_req);
50         NTSTATUS status;
51
52         status = dcerpc_binding_handle_call_recv(subreq);
53         TALLOC_FREE(subreq);
54         if (tevent_req_nterror(req, status)) {
55                 return;
56         }
57
58         tevent_req_done(req);
59 }
60
61 NTSTATUS dcerpc_trkwks_Unknown0_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
62 {
63         struct dcerpc_trkwks_Unknown0_r_state *state =
64                 tevent_req_data(req,
65                 struct dcerpc_trkwks_Unknown0_r_state);
66         NTSTATUS status;
67
68         if (tevent_req_is_nterror(req, &status)) {
69                 tevent_req_received(req);
70                 return status;
71         }
72
73         talloc_steal(mem_ctx, state->out_mem_ctx);
74
75         tevent_req_received(req);
76         return NT_STATUS_OK;
77 }
78
79 NTSTATUS dcerpc_trkwks_Unknown0_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct trkwks_Unknown0 *r)
80 {
81         NTSTATUS status;
82
83         status = dcerpc_binding_handle_call(h,
84                         NULL, &ndr_table_trkwks,
85                         NDR_TRKWKS_UNKNOWN0, mem_ctx, r);
86
87         return status;
88 }
89
90 struct dcerpc_trkwks_Unknown0_state {
91         struct trkwks_Unknown0 orig;
92         struct trkwks_Unknown0 tmp;
93         TALLOC_CTX *out_mem_ctx;
94 };
95
96 static void dcerpc_trkwks_Unknown0_done(struct tevent_req *subreq);
97
98 struct tevent_req *dcerpc_trkwks_Unknown0_send(TALLOC_CTX *mem_ctx,
99                                                struct tevent_context *ev,
100                                                struct dcerpc_binding_handle *h)
101 {
102         struct tevent_req *req;
103         struct dcerpc_trkwks_Unknown0_state *state;
104         struct tevent_req *subreq;
105
106         req = tevent_req_create(mem_ctx, &state,
107                                 struct dcerpc_trkwks_Unknown0_state);
108         if (req == NULL) {
109                 return NULL;
110         }
111         state->out_mem_ctx = NULL;
112
113         /* In parameters */
114
115         /* Out parameters */
116
117         /* Result */
118         ZERO_STRUCT(state->orig.out.result);
119
120         /* make a temporary copy, that we pass to the dispatch function */
121         state->tmp = state->orig;
122
123         subreq = dcerpc_trkwks_Unknown0_r_send(state, ev, h, &state->tmp);
124         if (tevent_req_nomem(subreq, req)) {
125                 return tevent_req_post(req, ev);
126         }
127         tevent_req_set_callback(subreq, dcerpc_trkwks_Unknown0_done, req);
128         return req;
129 }
130
131 static void dcerpc_trkwks_Unknown0_done(struct tevent_req *subreq)
132 {
133         struct tevent_req *req = tevent_req_callback_data(
134                 subreq, struct tevent_req);
135         struct dcerpc_trkwks_Unknown0_state *state = tevent_req_data(
136                 req, struct dcerpc_trkwks_Unknown0_state);
137         NTSTATUS status;
138         TALLOC_CTX *mem_ctx;
139
140         if (state->out_mem_ctx) {
141                 mem_ctx = state->out_mem_ctx;
142         } else {
143                 mem_ctx = state;
144         }
145
146         status = dcerpc_trkwks_Unknown0_r_recv(subreq, mem_ctx);
147         TALLOC_FREE(subreq);
148         if (tevent_req_nterror(req, status)) {
149                 return;
150         }
151
152         /* Copy out parameters */
153
154         /* Copy result */
155         state->orig.out.result = state->tmp.out.result;
156
157         /* Reset temporary structure */
158         ZERO_STRUCT(state->tmp);
159
160         tevent_req_done(req);
161 }
162
163 NTSTATUS dcerpc_trkwks_Unknown0_recv(struct tevent_req *req,
164                                      TALLOC_CTX *mem_ctx,
165                                      WERROR *result)
166 {
167         struct dcerpc_trkwks_Unknown0_state *state = tevent_req_data(
168                 req, struct dcerpc_trkwks_Unknown0_state);
169         NTSTATUS status;
170
171         if (tevent_req_is_nterror(req, &status)) {
172                 tevent_req_received(req);
173                 return status;
174         }
175
176         /* Steal possible out parameters to the callers context */
177         talloc_steal(mem_ctx, state->out_mem_ctx);
178
179         /* Return result */
180         *result = state->orig.out.result;
181
182         tevent_req_received(req);
183         return NT_STATUS_OK;
184 }
185
186 NTSTATUS dcerpc_trkwks_Unknown0(struct dcerpc_binding_handle *h,
187                                 TALLOC_CTX *mem_ctx,
188                                 WERROR *result)
189 {
190         struct trkwks_Unknown0 r;
191         NTSTATUS status;
192
193         /* In parameters */
194
195         status = dcerpc_trkwks_Unknown0_r(h, mem_ctx, &r);
196         if (!NT_STATUS_IS_OK(status)) {
197                 return status;
198         }
199
200         /* Return variables */
201
202         /* Return result */
203         *result = r.out.result;
204
205         return NT_STATUS_OK;
206 }
207