Merge lp:~brianaker/gearmand/client_impl_cleanup into lp:gearmand

Proposed by Brian Aker
Status: Merged
Merged at revision: 813
Proposed branch: lp:~brianaker/gearmand/client_impl_cleanup
Merge into: lp:gearmand
Diff against target: 812 lines (+128/-119)
9 files modified
libgearman/add.cc (+31/-31)
libgearman/add.hpp (+4/-4)
libgearman/client.cc (+38/-34)
libgearman/do.cc (+4/-4)
libgearman/execute.cc (+17/-13)
libgearman/interface/task.hpp (+8/-8)
libgearman/job.cc (+23/-22)
libgearman/task.cc (+2/-2)
libgearman/task.hpp (+1/-1)
To merge this branch: bzr merge lp:~brianaker/gearmand/client_impl_cleanup
Reviewer Review Type Date Requested Status
Tangent Trunk Pending
Review via email: mp+173340@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'libgearman/add.cc'
--- libgearman/add.cc 2013-07-06 17:53:34 +0000
+++ libgearman/add.cc 2013-07-07 00:33:27 +0000
@@ -119,7 +119,7 @@
119119
120} // namespace120} // namespace
121121
122gearman_task_st *add_task(gearman_client_st& client,122gearman_task_st *add_task(Client& client,
123 void *context,123 void *context,
124 gearman_command_t command,124 gearman_command_t command,
125 const gearman_string_t &function,125 const gearman_string_t &function,
@@ -131,7 +131,7 @@
131 return add_task(client, NULL, context, command, function, unique, workload, when, actions);131 return add_task(client, NULL, context, command, function, unique, workload, when, actions);
132}132}
133133
134gearman_task_st *add_task_ptr(gearman_client_st& client,134gearman_task_st *add_task_ptr(Client& client,
135 gearman_task_st *task,135 gearman_task_st *task,
136 void *context,136 void *context,
137 gearman_command_t command,137 gearman_command_t command,
@@ -149,7 +149,7 @@
149 task= add_task(client, task, context, command, function, local_unique, workload, when, actions);149 task= add_task(client, task, context, command, function, local_unique, workload, when, actions);
150 if (task == NULL)150 if (task == NULL)
151 {151 {
152 ret_ptr= client.impl()->universal.error_code();152 ret_ptr= client.universal.error_code();
153 return NULL;153 return NULL;
154 }154 }
155155
@@ -158,7 +158,7 @@
158 return task;158 return task;
159}159}
160160
161gearman_task_st *add_task(gearman_client_st& client,161gearman_task_st *add_task(Client& client,
162 gearman_task_st *task_shell,162 gearman_task_st *task_shell,
163 void *context,163 void *context,
164 gearman_command_t command,164 gearman_command_t command,
@@ -172,11 +172,11 @@
172 {172 {
173 if (gearman_size(function) > GEARMAN_FUNCTION_MAX_SIZE)173 if (gearman_size(function) > GEARMAN_FUNCTION_MAX_SIZE)
174 {174 {
175 gearman_error(client.impl()->universal, GEARMAN_INVALID_ARGUMENT, "function name longer then GEARMAN_MAX_FUNCTION_SIZE");175 gearman_error(client.universal, GEARMAN_INVALID_ARGUMENT, "function name longer then GEARMAN_MAX_FUNCTION_SIZE");
176 } 176 }
177 else177 else
178 {178 {
179 gearman_error(client.impl()->universal, GEARMAN_INVALID_ARGUMENT, "invalid function");179 gearman_error(client.universal, GEARMAN_INVALID_ARGUMENT, "invalid function");
180 }180 }
181181
182 return NULL;182 return NULL;
@@ -184,21 +184,21 @@
184184
185 if (gearman_size(unique) > GEARMAN_MAX_UNIQUE_SIZE)185 if (gearman_size(unique) > GEARMAN_MAX_UNIQUE_SIZE)
186 {186 {
187 gearman_error(client.impl()->universal, GEARMAN_INVALID_ARGUMENT, "unique name longer then GEARMAN_MAX_UNIQUE_SIZE");187 gearman_error(client.universal, GEARMAN_INVALID_ARGUMENT, "unique name longer then GEARMAN_MAX_UNIQUE_SIZE");
188188
189 return NULL;189 return NULL;
190 }190 }
191191
192 if ((gearman_size(workload) && gearman_c_str(workload) == NULL) or (gearman_size(workload) == 0 && gearman_c_str(workload)))192 if ((gearman_size(workload) && gearman_c_str(workload) == NULL) or (gearman_size(workload) == 0 && gearman_c_str(workload)))
193 {193 {
194 gearman_error(client.impl()->universal, GEARMAN_INVALID_ARGUMENT, "invalid workload");194 gearman_error(client.universal, GEARMAN_INVALID_ARGUMENT, "invalid workload");
195 return NULL;195 return NULL;
196 }196 }
197197
198 task_shell= gearman_task_internal_create(client, task_shell);198 task_shell= gearman_task_internal_create(&client, task_shell);
199 if (task_shell == NULL or task_shell->impl() == NULL)199 if (task_shell == NULL or task_shell->impl() == NULL)
200 {200 {
201 assert(client.impl()->universal.error());201 assert(client.universal.error());
202 return NULL;202 return NULL;
203 }203 }
204 assert(task_shell->impl()->client);204 assert(task_shell->impl()->client);
@@ -224,7 +224,7 @@
224 }224 }
225 else225 else
226 {226 {
227 if (client.impl()->options.generate_unique or is_background(command))227 if (client.options.generate_unique or is_background(command))
228 {228 {
229 if (safe_uuid_generate(task->unique, task->unique_length) == -1)229 if (safe_uuid_generate(task->unique, task->unique_length) == -1)
230 {230 {
@@ -324,8 +324,8 @@
324324
325 if (gearman_success(rc))325 if (gearman_success(rc))
326 {326 {
327 client.impl()->new_tasks++;327 client.new_tasks++;
328 client.impl()->running_tasks++;328 client.running_tasks++;
329 task->options.send_in_use= true;329 task->options.send_in_use= true;
330330
331 return task->shell();331 return task->shell();
@@ -336,7 +336,7 @@
336 return NULL;336 return NULL;
337}337}
338338
339gearman_task_st *add_reducer_task(gearman_client_st *client,339gearman_task_st *add_reducer_task(Client* client,
340 gearman_command_t command,340 gearman_command_t command,
341 const gearman_job_priority_t,341 const gearman_job_priority_t,
342 const gearman_string_t &function,342 const gearman_string_t &function,
@@ -354,11 +354,11 @@
354 {354 {
355 if (gearman_size(function) > GEARMAN_FUNCTION_MAX_SIZE)355 if (gearman_size(function) > GEARMAN_FUNCTION_MAX_SIZE)
356 {356 {
357 gearman_error(client->impl()->universal, GEARMAN_INVALID_ARGUMENT, "function name longer then GEARMAN_MAX_FUNCTION_SIZE");357 gearman_error(client->universal, GEARMAN_INVALID_ARGUMENT, "function name longer then GEARMAN_MAX_FUNCTION_SIZE");
358 } 358 }
359 else359 else
360 {360 {
361 gearman_error(client->impl()->universal, GEARMAN_INVALID_ARGUMENT, "invalid function");361 gearman_error(client->universal, GEARMAN_INVALID_ARGUMENT, "invalid function");
362 }362 }
363363
364 return NULL;364 return NULL;
@@ -366,21 +366,21 @@
366366
367 if (gearman_size(unique) > GEARMAN_MAX_UNIQUE_SIZE)367 if (gearman_size(unique) > GEARMAN_MAX_UNIQUE_SIZE)
368 {368 {
369 gearman_error(client->impl()->universal, GEARMAN_INVALID_ARGUMENT, "unique name longer then GEARMAN_MAX_UNIQUE_SIZE");369 gearman_error(client->universal, GEARMAN_INVALID_ARGUMENT, "unique name longer then GEARMAN_MAX_UNIQUE_SIZE");
370370
371 return NULL;371 return NULL;
372 }372 }
373373
374 if ((gearman_size(workload) and not gearman_c_str(workload)) or (gearman_size(workload) == 0 && gearman_c_str(workload)))374 if ((gearman_size(workload) and not gearman_c_str(workload)) or (gearman_size(workload) == 0 && gearman_c_str(workload)))
375 {375 {
376 gearman_error(client->impl()->universal, GEARMAN_INVALID_ARGUMENT, "invalid workload");376 gearman_error(client->universal, GEARMAN_INVALID_ARGUMENT, "invalid workload");
377 return NULL;377 return NULL;
378 }378 }
379379
380 gearman_task_st *task_shell= gearman_task_internal_create(*client, NULL);380 gearman_task_st *task_shell= gearman_task_internal_create(client, NULL);
381 if (task_shell == NULL)381 if (task_shell == NULL)
382 {382 {
383 assert(client->impl()->universal.error_code());383 assert(client->universal.error_code());
384 return NULL;384 return NULL;
385 }385 }
386386
@@ -392,11 +392,11 @@
392 @todo fix it so that NULL is done by default by the API not by happenstance.392 @todo fix it so that NULL is done by default by the API not by happenstance.
393 */393 */
394 char function_buffer[1024];394 char function_buffer[1024];
395 if (client->impl()->universal._namespace)395 if (client->universal._namespace)
396 {396 {
397 char *ptr= function_buffer;397 char *ptr= function_buffer;
398 memcpy(ptr, gearman_string_value(client->impl()->universal._namespace), gearman_string_length(client->impl()->universal._namespace)); 398 memcpy(ptr, gearman_string_value(client->universal._namespace), gearman_string_length(client->universal._namespace));
399 ptr+= gearman_string_length(client->impl()->universal._namespace);399 ptr+= gearman_string_length(client->universal._namespace);
400400
401 memcpy(ptr, gearman_c_str(function), gearman_size(function) +1);401 memcpy(ptr, gearman_c_str(function), gearman_size(function) +1);
402 ptr+= gearman_size(function);402 ptr+= gearman_size(function);
@@ -426,7 +426,7 @@
426 }426 }
427 else427 else
428 {428 {
429 if (client->impl()->options.generate_unique or is_background(command))429 if (client->options.generate_unique or is_background(command))
430 {430 {
431 safe_uuid_generate(task->unique, task->unique_length);431 safe_uuid_generate(task->unique, task->unique_length);
432 }432 }
@@ -444,11 +444,11 @@
444 "Command was not appropriate for request");444 "Command was not appropriate for request");
445445
446 char reducer_buffer[1024];446 char reducer_buffer[1024];
447 if (client->impl()->universal._namespace)447 if (client->universal._namespace)
448 {448 {
449 char *ptr= reducer_buffer;449 char *ptr= reducer_buffer;
450 memcpy(ptr, gearman_string_value(client->impl()->universal._namespace), gearman_string_length(client->impl()->universal._namespace)); 450 memcpy(ptr, gearman_string_value(client->universal._namespace), gearman_string_length(client->universal._namespace));
451 ptr+= gearman_string_length(client->impl()->universal._namespace);451 ptr+= gearman_string_length(client->universal._namespace);
452452
453 memcpy(ptr, gearman_c_str(reducer), gearman_size(reducer) +1);453 memcpy(ptr, gearman_c_str(reducer), gearman_size(reducer) +1);
454 ptr+= gearman_size(reducer);454 ptr+= gearman_size(reducer);
@@ -473,18 +473,18 @@
473 args_size[4]= gearman_size(workload);473 args_size[4]= gearman_size(workload);
474474
475 gearman_return_t rc;475 gearman_return_t rc;
476 if (gearman_success(rc= gearman_packet_create_args(client->impl()->universal, task->send,476 if (gearman_success(rc= gearman_packet_create_args(client->universal, task->send,
477 GEARMAN_MAGIC_REQUEST, command,477 GEARMAN_MAGIC_REQUEST, command,
478 args, args_size,478 args, args_size,
479 5)))479 5)))
480 {480 {
481 client->impl()->new_tasks++;481 client->new_tasks++;
482 client->impl()->running_tasks++;482 client->running_tasks++;
483 task->options.send_in_use= true;483 task->options.send_in_use= true;
484 }484 }
485 else485 else
486 {486 {
487 gearman_gerror(client->impl()->universal, rc);487 gearman_gerror(client->universal, rc);
488 gearman_task_free(task);488 gearman_task_free(task);
489 task= NULL;489 task= NULL;
490 }490 }
491491
=== modified file 'libgearman/add.hpp'
--- libgearman/add.hpp 2013-07-03 09:00:14 +0000
+++ libgearman/add.hpp 2013-07-07 00:33:27 +0000
@@ -42,7 +42,7 @@
4242
43#pragma once43#pragma once
4444
45gearman_task_st *add_task(gearman_client_st& client,45gearman_task_st *add_task(Client& client,
46 void *context,46 void *context,
47 gearman_command_t command,47 gearman_command_t command,
48 const gearman_string_t &function,48 const gearman_string_t &function,
@@ -51,7 +51,7 @@
51 time_t when,51 time_t when,
52 const gearman_actions_t &actions);52 const gearman_actions_t &actions);
5353
54gearman_task_st *add_task_ptr(gearman_client_st& client,54gearman_task_st *add_task_ptr(Client& client,
55 gearman_task_st *task,55 gearman_task_st *task,
56 void *context,56 void *context,
57 gearman_command_t command,57 gearman_command_t command,
@@ -62,7 +62,7 @@
62 gearman_return_t& ret_ptr,62 gearman_return_t& ret_ptr,
63 const gearman_actions_t &actions);63 const gearman_actions_t &actions);
6464
65gearman_task_st *add_task(gearman_client_st& client,65gearman_task_st *add_task(Client& client,
66 gearman_task_st *task,66 gearman_task_st *task,
67 void *context,67 void *context,
68 gearman_command_t command,68 gearman_command_t command,
@@ -72,7 +72,7 @@
72 time_t when,72 time_t when,
73 const gearman_actions_t &actions);73 const gearman_actions_t &actions);
7474
75gearman_task_st *add_reducer_task(gearman_client_st *client,75gearman_task_st *add_reducer_task(Client *client,
76 gearman_command_t command,76 gearman_command_t command,
77 const gearman_job_priority_t priority,77 const gearman_job_priority_t priority,
78 const gearman_string_t &function,78 const gearman_string_t &function,
7979
=== modified file 'libgearman/client.cc'
--- libgearman/client.cc 2013-07-06 19:11:08 +0000
+++ libgearman/client.cc 2013-07-07 00:33:27 +0000
@@ -125,7 +125,7 @@
125 gearman_task_st do_task;125 gearman_task_st do_task;
126 {126 {
127 client->universal.options.no_new_data= true;127 client->universal.options.no_new_data= true;
128 gearman_task_st *do_task_ptr= add_task(*(client->shell()), &do_task, NULL, command,128 gearman_task_st *do_task_ptr= add_task(*client, &do_task, NULL, command,
129 function,129 function,
130 local_unique,130 local_unique,
131 workload,131 workload,
@@ -237,7 +237,7 @@
237 gearman_task_st do_task;237 gearman_task_st do_task;
238 {238 {
239 client->universal.options.no_new_data= true;239 client->universal.options.no_new_data= true;
240 gearman_task_st* do_task_ptr= add_task(*client_shell, &do_task, 240 gearman_task_st* do_task_ptr= add_task(*client, &do_task,
241 client, 241 client,
242 command,242 command,
243 function,243 function,
@@ -826,7 +826,7 @@
826 gearman_status_t status;826 gearman_status_t status;
827 gearman_init(status);827 gearman_init(status);
828828
829 if (client == NULL)829 if (client == NULL or client->impl() == NULL)
830 {830 {
831 gearman_status_set_return(status, GEARMAN_INVALID_ARGUMENT);831 gearman_status_set_return(status, GEARMAN_INVALID_ARGUMENT);
832 return status;832 return status;
@@ -889,7 +889,7 @@
889 return status;889 return status;
890}890}
891891
892gearman_return_t gearman_client_job_status(gearman_client_st *client,892gearman_return_t gearman_client_job_status(gearman_client_st *client_shell,
893 const gearman_job_handle_t job_handle,893 const gearman_job_handle_t job_handle,
894 bool *is_known, bool *is_running,894 bool *is_known, bool *is_running,
895 uint32_t *numerator,895 uint32_t *numerator,
@@ -897,16 +897,18 @@
897{897{
898 gearman_return_t ret;898 gearman_return_t ret;
899899
900 if (client == NULL)900 if (client_shell == NULL or client_shell->impl() == NULL)
901 {901 {
902 return GEARMAN_INVALID_ARGUMENT;902 return GEARMAN_INVALID_ARGUMENT;
903 }903 }
904904
905 client->impl()->universal.reset_error();905 Client* client= client_shell->impl();
906
907 client->universal.reset_error();
906908
907 gearman_task_st do_task;909 gearman_task_st do_task;
908 {910 {
909 gearman_task_st *do_task_ptr= gearman_client_add_task_status(client, &do_task, client,911 gearman_task_st *do_task_ptr= gearman_client_add_task_status(client_shell, &do_task, client,
910 job_handle, &ret);912 job_handle, &ret);
911 if (gearman_failed(ret))913 if (gearman_failed(ret))
912 {914 {
@@ -918,7 +920,7 @@
918920
919 gearman_task_clear_fn(&do_task);921 gearman_task_clear_fn(&do_task);
920922
921 ret= gearman_client_run_block_tasks(client, &do_task);923 ret= gearman_client_run_block_tasks(client_shell, &do_task);
922924
923 // @note we don't know if our task was run or not, we just know something925 // @note we don't know if our task was run or not, we just know something
924 // happened.926 // happened.
@@ -1049,13 +1051,13 @@
1049 ret_ptr= &unused;1051 ret_ptr= &unused;
1050 }1052 }
10511053
1052 if (client == NULL)1054 if (client == NULL or client->impl() == NULL)
1053 {1055 {
1054 *ret_ptr= GEARMAN_INVALID_ARGUMENT;1056 *ret_ptr= GEARMAN_INVALID_ARGUMENT;
1055 return NULL;1057 return NULL;
1056 }1058 }
10571059
1058 return add_task_ptr(*client, task,1060 return add_task_ptr(*(client->impl()), task,
1059 context, GEARMAN_COMMAND_SUBMIT_JOB,1061 context, GEARMAN_COMMAND_SUBMIT_JOB,
1060 function,1062 function,
1061 unique,1063 unique,
@@ -1079,13 +1081,13 @@
1079 ret_ptr= &unused;1081 ret_ptr= &unused;
1080 }1082 }
10811083
1082 if (client == NULL)1084 if (client == NULL or client->impl() == NULL)
1083 {1085 {
1084 *ret_ptr= GEARMAN_INVALID_ARGUMENT;1086 *ret_ptr= GEARMAN_INVALID_ARGUMENT;
1085 return NULL;1087 return NULL;
1086 }1088 }
10871089
1088 return add_task_ptr(*client, task, context,1090 return add_task_ptr(*(client->impl()), task, context,
1089 GEARMAN_COMMAND_SUBMIT_JOB_HIGH,1091 GEARMAN_COMMAND_SUBMIT_JOB_HIGH,
1090 function,1092 function,
1091 unique,1093 unique,
@@ -1109,13 +1111,13 @@
1109 ret_ptr= &unused;1111 ret_ptr= &unused;
1110 }1112 }
11111113
1112 if (client == NULL)1114 if (client == NULL or client->impl() == NULL)
1113 {1115 {
1114 *ret_ptr= GEARMAN_INVALID_ARGUMENT;1116 *ret_ptr= GEARMAN_INVALID_ARGUMENT;
1115 return NULL;1117 return NULL;
1116 }1118 }
11171119
1118 return add_task_ptr(*client, task, context, GEARMAN_COMMAND_SUBMIT_JOB_LOW,1120 return add_task_ptr(*(client->impl()), task, context, GEARMAN_COMMAND_SUBMIT_JOB_LOW,
1119 function,1121 function,
1120 unique,1122 unique,
1121 workload, workload_size,1123 workload, workload_size,
@@ -1138,13 +1140,13 @@
1138 ret_ptr= &unused;1140 ret_ptr= &unused;
1139 }1141 }
11401142
1141 if (client == NULL)1143 if (client == NULL or client->impl() == NULL)
1142 {1144 {
1143 *ret_ptr= GEARMAN_INVALID_ARGUMENT;1145 *ret_ptr= GEARMAN_INVALID_ARGUMENT;
1144 return NULL;1146 return NULL;
1145 }1147 }
11461148
1147 return add_task_ptr(*client, task, context, GEARMAN_COMMAND_SUBMIT_JOB_BG,1149 return add_task_ptr(*(client->impl()), task, context, GEARMAN_COMMAND_SUBMIT_JOB_BG,
1148 function,1150 function,
1149 unique,1151 unique,
1150 workload, workload_size,1152 workload, workload_size,
@@ -1168,13 +1170,13 @@
1168 ret_ptr= &unused;1170 ret_ptr= &unused;
1169 }1171 }
11701172
1171 if (client == NULL)1173 if (client == NULL or client->impl() == NULL)
1172 {1174 {
1173 *ret_ptr= GEARMAN_INVALID_ARGUMENT;1175 *ret_ptr= GEARMAN_INVALID_ARGUMENT;
1174 return NULL;1176 return NULL;
1175 }1177 }
11761178
1177 return add_task_ptr(*client, task, context,1179 return add_task_ptr(*(client->impl()), task, context,
1178 GEARMAN_COMMAND_SUBMIT_JOB_HIGH_BG,1180 GEARMAN_COMMAND_SUBMIT_JOB_HIGH_BG,
1179 function,1181 function,
1180 unique,1182 unique,
@@ -1198,13 +1200,13 @@
1198 ret_ptr= &unused;1200 ret_ptr= &unused;
1199 }1201 }
12001202
1201 if (client == NULL)1203 if (client == NULL or client->impl() == NULL)
1202 {1204 {
1203 *ret_ptr= GEARMAN_INVALID_ARGUMENT;1205 *ret_ptr= GEARMAN_INVALID_ARGUMENT;
1204 return NULL;1206 return NULL;
1205 }1207 }
12061208
1207 return add_task_ptr(*client, task, context,1209 return add_task_ptr(*(client->impl()), task, context,
1208 GEARMAN_COMMAND_SUBMIT_JOB_LOW_BG,1210 GEARMAN_COMMAND_SUBMIT_JOB_LOW_BG,
1209 function,1211 function,
1210 unique,1212 unique,
@@ -1215,7 +1217,7 @@
12151217
1216}1218}
12171219
1218gearman_task_st *gearman_client_add_task_status(gearman_client_st *client,1220gearman_task_st *gearman_client_add_task_status(gearman_client_st *client_shell,
1219 gearman_task_st *task_shell,1221 gearman_task_st *task_shell,
1220 void *context,1222 void *context,
1221 const gearman_job_handle_t job_handle,1223 const gearman_job_handle_t job_handle,
@@ -1230,15 +1232,16 @@
1230 ret_ptr= &unused;1232 ret_ptr= &unused;
1231 }1233 }
12321234
1233 if (client == NULL)1235 if (client_shell == NULL or client_shell->impl() == NULL)
1234 {1236 {
1235 *ret_ptr= GEARMAN_INVALID_ARGUMENT;1237 *ret_ptr= GEARMAN_INVALID_ARGUMENT;
1236 return NULL;1238 return NULL;
1237 }1239 }
1240 Client* client= client_shell->impl();
12381241
1239 if ((task_shell= gearman_task_internal_create(*client, task_shell)) == NULL)1242 if ((task_shell= gearman_task_internal_create(client, task_shell)) == NULL)
1240 {1243 {
1241 *ret_ptr= gearman_client_error_code(client);1244 *ret_ptr= gearman_client_error_code(client_shell);
1242 return NULL;1245 return NULL;
1243 }1246 }
12441247
@@ -1249,14 +1252,14 @@
12491252
1250 args[0]= job_handle;1253 args[0]= job_handle;
1251 args_size[0]= strlen(job_handle);1254 args_size[0]= strlen(job_handle);
1252 gearman_return_t rc= gearman_packet_create_args(client->impl()->universal, task->send,1255 gearman_return_t rc= gearman_packet_create_args(client->universal, task->send,
1253 GEARMAN_MAGIC_REQUEST,1256 GEARMAN_MAGIC_REQUEST,
1254 GEARMAN_COMMAND_GET_STATUS,1257 GEARMAN_COMMAND_GET_STATUS,
1255 args, args_size, 1);1258 args, args_size, 1);
1256 if (gearman_success(rc))1259 if (gearman_success(rc))
1257 {1260 {
1258 client->impl()->new_tasks++;1261 client->new_tasks++;
1259 client->impl()->running_tasks++;1262 client->running_tasks++;
1260 task->options.send_in_use= true;1263 task->options.send_in_use= true;
1261 }1264 }
1262 *ret_ptr= rc;1265 *ret_ptr= rc;
@@ -1264,7 +1267,7 @@
1264 return task_shell;1267 return task_shell;
1265}1268}
12661269
1267gearman_task_st *gearman_client_add_task_status_by_unique(gearman_client_st *client,1270gearman_task_st *gearman_client_add_task_status_by_unique(gearman_client_st *client_shell,
1268 gearman_task_st *task_shell,1271 gearman_task_st *task_shell,
1269 const char *unique_handle,1272 const char *unique_handle,
1270 gearman_return_t *ret_ptr)1273 gearman_return_t *ret_ptr)
@@ -1278,11 +1281,12 @@
1278 ret_ptr= &unused;1281 ret_ptr= &unused;
1279 }1282 }
12801283
1281 if (client == NULL)1284 if (client_shell == NULL or client_shell->impl() == NULL)
1282 {1285 {
1283 *ret_ptr= GEARMAN_INVALID_ARGUMENT;1286 *ret_ptr= GEARMAN_INVALID_ARGUMENT;
1284 return NULL;1287 return NULL;
1285 }1288 }
1289 Client* client= client_shell->impl();
12861290
1287 if (unique_handle == NULL)1291 if (unique_handle == NULL)
1288 {1292 {
@@ -1297,9 +1301,9 @@
1297 return NULL;1301 return NULL;
1298 }1302 }
12991303
1300 if ((task_shell= gearman_task_internal_create(*client, task_shell)) == NULL)1304 if ((task_shell= gearman_task_internal_create(client, task_shell)) == NULL)
1301 {1305 {
1302 *ret_ptr= gearman_client_error_code(client);1306 *ret_ptr= gearman_client_error_code(client_shell);
1303 return NULL;1307 return NULL;
1304 }1308 }
13051309
@@ -1311,14 +1315,14 @@
13111315
1312 args[0]= task->unique;1316 args[0]= task->unique;
1313 args_size[0]= task->unique_length;1317 args_size[0]= task->unique_length;
1314 gearman_return_t rc= gearman_packet_create_args(client->impl()->universal, task->send,1318 gearman_return_t rc= gearman_packet_create_args(client->universal, task->send,
1315 GEARMAN_MAGIC_REQUEST,1319 GEARMAN_MAGIC_REQUEST,
1316 GEARMAN_COMMAND_GET_STATUS_UNIQUE,1320 GEARMAN_COMMAND_GET_STATUS_UNIQUE,
1317 args, args_size, 1);1321 args, args_size, 1);
1318 if (gearman_success(rc))1322 if (gearman_success(rc))
1319 {1323 {
1320 client->impl()->new_tasks++;1324 client->new_tasks++;
1321 client->impl()->running_tasks++;1325 client->running_tasks++;
1322 task->options.send_in_use= true;1326 task->options.send_in_use= true;
1323 }1327 }
1324 *ret_ptr= rc;1328 *ret_ptr= rc;
13251329
=== modified file 'libgearman/do.cc'
--- libgearman/do.cc 2013-01-28 23:44:49 +0000
+++ libgearman/do.cc 2013-07-07 00:33:27 +0000
@@ -71,14 +71,14 @@
71 ret_ptr= &unused;71 ret_ptr= &unused;
72 }72 }
7373
74 if (client == NULL)74 if (client == NULL or client->impl() == NULL)
75 {75 {
76 *ret_ptr= GEARMAN_INVALID_ARGUMENT;76 *ret_ptr= GEARMAN_INVALID_ARGUMENT;
77 return NULL;77 return NULL;
78 }78 }
7979
80 {80 {
81 gearman_task_st *do_task_ptr= add_task(*client, &do_task, NULL, command,81 gearman_task_st *do_task_ptr= add_task(*(client->impl()), &do_task, NULL, command,
82 function,82 function,
83 local_unique,83 local_unique,
84 workload,84 workload,
@@ -144,14 +144,14 @@
144 gearman_string_t &workload,144 gearman_string_t &workload,
145 gearman_job_handle_t job_handle)145 gearman_job_handle_t job_handle)
146{146{
147 if (client == NULL)147 if (client == NULL or client->impl() == NULL)
148 {148 {
149 return GEARMAN_INVALID_ARGUMENT;149 return GEARMAN_INVALID_ARGUMENT;
150 }150 }
151151
152 gearman_task_st do_task;152 gearman_task_st do_task;
153 {153 {
154 gearman_task_st *do_task_ptr= add_task(*client, &do_task, 154 gearman_task_st *do_task_ptr= add_task(*(client->impl()), &do_task,
155 client, 155 client,
156 command,156 command,
157 function,157 function,
158158
=== modified file 'libgearman/execute.cc'
--- libgearman/execute.cc 2013-05-11 11:15:03 +0000
+++ libgearman/execute.cc 2013-07-07 00:33:27 +0000
@@ -70,18 +70,20 @@
7070
7171
7272
73gearman_task_st *gearman_execute(gearman_client_st *client,73gearman_task_st *gearman_execute(gearman_client_st *client_shell,
74 const char *function_name, size_t function_length,74 const char *function_name, size_t function_length,
75 const char *unique_str, size_t unique_length,75 const char *unique_str, size_t unique_length,
76 gearman_task_attr_t *task_attr,76 gearman_task_attr_t *task_attr,
77 gearman_argument_t *arguments,77 gearman_argument_t *arguments,
78 void *context)78 void *context)
79{79{
80 if (client == NULL)80 if (client_shell == NULL or client_shell->impl() == NULL)
81 {81 {
82 return NULL;82 return NULL;
83 }83 }
8484
85 Client* client= client_shell->impl();
86
85 gearman_argument_t null_arg= gearman_argument_make(0, 0, 0, 0);87 gearman_argument_t null_arg= gearman_argument_make(0, 0, 0, 0);
86 if (arguments == NULL)88 if (arguments == NULL)
87 {89 {
@@ -90,7 +92,7 @@
9092
91 if (function_name == NULL or function_length == 0)93 if (function_name == NULL or function_length == 0)
92 {94 {
93 gearman_error(client->impl()->universal, GEARMAN_INVALID_ARGUMENT, "function_name was NULL");95 gearman_error(client->universal, GEARMAN_INVALID_ARGUMENT, "function_name was NULL");
94 return NULL;96 return NULL;
95 }97 }
96 gearman_string_t function= { function_name, function_length };98 gearman_string_t function= { function_name, function_length };
@@ -149,18 +151,18 @@
149151
150 if (task == NULL)152 if (task == NULL)
151 {153 {
152 gearman_universal_error_code(client->impl()->universal);154 gearman_universal_error_code(client->universal);
153155
154 return NULL;156 return NULL;
155 }157 }
156158
157 task->impl()->type= GEARMAN_TASK_KIND_EXECUTE;159 task->impl()->type= GEARMAN_TASK_KIND_EXECUTE;
158 gearman_client_run_tasks(client);160 gearman_client_run_tasks(client->shell());
159161
160 return task;162 return task;
161}163}
162164
163gearman_task_st *gearman_execute_by_partition(gearman_client_st *client,165gearman_task_st *gearman_execute_by_partition(gearman_client_st *client_shell,
164 const char *partition_function, const size_t partition_function_length,166 const char *partition_function, const size_t partition_function_length,
165 const char *function_name, const size_t function_name_length,167 const char *function_name, const size_t function_name_length,
166 const char *unique_str, const size_t unique_length,168 const char *unique_str, const size_t unique_length,
@@ -168,25 +170,27 @@
168 gearman_argument_t *arguments,170 gearman_argument_t *arguments,
169 void *context)171 void *context)
170{172{
171 if (client == NULL)173 if (client_shell == NULL or client_shell->impl() == NULL)
172 {174 {
173 errno= EINVAL;175 errno= EINVAL;
174 return NULL;176 return NULL;
175 }177 }
176178
179 Client* client= client_shell->impl();
180
177 if ((partition_function == NULL) or (partition_function_length == 0))181 if ((partition_function == NULL) or (partition_function_length == 0))
178 {182 {
179 gearman_error(client->impl()->universal, GEARMAN_INVALID_ARGUMENT, "partition_function was NULL");183 gearman_error(client->universal, GEARMAN_INVALID_ARGUMENT, "partition_function was NULL");
180 return NULL;184 return NULL;
181 }185 }
182186
183 if ((function_name == NULL) or (function_name_length == 0))187 if ((function_name == NULL) or (function_name_length == 0))
184 {188 {
185 gearman_error(client->impl()->universal, GEARMAN_INVALID_ARGUMENT, "function_name was NULL");189 gearman_error(client->universal, GEARMAN_INVALID_ARGUMENT, "function_name was NULL");
186 return NULL;190 return NULL;
187 }191 }
188 192
189 universal_reset_error(client->impl()->universal);193 universal_reset_error(client->universal);
190194
191 gearman_task_st *task= NULL;195 gearman_task_st *task= NULL;
192 gearman_string_t partition= { partition_function, partition_function_length };196 gearman_string_t partition= { partition_function, partition_function_length };
@@ -211,7 +215,7 @@
211 break;215 break;
212216
213 case GEARMAN_TASK_ATTR_EPOCH:217 case GEARMAN_TASK_ATTR_EPOCH:
214 gearman_error(client->impl()->universal, GEARMAN_INVALID_ARGUMENT, "EPOCH is not currently supported for gearman_client_execute_reduce()");218 gearman_error(client->universal, GEARMAN_INVALID_ARGUMENT, "EPOCH is not currently supported for gearman_client_execute_reduce()");
215 return NULL;219 return NULL;
216#if 0220#if 0
217 task= add_task(client,221 task= add_task(client,
@@ -262,9 +266,9 @@
262266
263 do {267 do {
264 gearman_return_t rc;268 gearman_return_t rc;
265 if (gearman_failed(rc= gearman_client_run_tasks(client)))269 if (gearman_failed(rc= gearman_client_run_tasks(client->shell())))
266 {270 {
267 gearman_gerror(client->impl()->universal, rc);271 gearman_gerror(client->universal, rc);
268 gearman_task_free(task);272 gearman_task_free(task);
269 return NULL;273 return NULL;
270 }274 }
271275
=== modified file 'libgearman/interface/task.hpp'
--- libgearman/interface/task.hpp 2013-07-06 20:11:54 +0000
+++ libgearman/interface/task.hpp 2013-07-07 00:33:27 +0000
@@ -89,7 +89,7 @@
89 return _shell;89 return _shell;
90 }90 }
9191
92 Task(gearman_client_st& client_, gearman_task_st* shell_) :92 Task(Client* client_, gearman_task_st* shell_) :
93 type(GEARMAN_TASK_KIND_ADD_TASK),93 type(GEARMAN_TASK_KIND_ADD_TASK),
94 state(GEARMAN_TASK_STATE_NEW),94 state(GEARMAN_TASK_STATE_NEW),
95 magic_(TASK_MAGIC),95 magic_(TASK_MAGIC),
@@ -97,13 +97,13 @@
97 numerator(0),97 numerator(0),
98 denominator(0),98 denominator(0),
99 client_count(0),99 client_count(0),
100 client(client_.impl()),100 client(client_),
101 next(NULL),101 next(NULL),
102 prev(NULL),102 prev(NULL),
103 context(NULL),103 context(NULL),
104 con(NULL),104 con(NULL),
105 recv(NULL),105 recv(NULL),
106 func(client_.impl()->actions),106 func(client_->actions),
107 result_rc(GEARMAN_UNKNOWN_STATE),107 result_rc(GEARMAN_UNKNOWN_STATE),
108 _result_ptr(NULL),108 _result_ptr(NULL),
109 unique_length(0),109 unique_length(0),
@@ -125,14 +125,14 @@
125125
126 // Add the task to the client126 // Add the task to the client
127 {127 {
128 if (client_.impl()->task_list)128 if (client_->task_list)
129 {129 {
130 client_.impl()->task_list->impl()->prev= _shell;130 client_->task_list->impl()->prev= _shell;
131 }131 }
132 next= client_.impl()->task_list;132 next= client_->task_list;
133 prev= NULL;133 prev= NULL;
134 client_.impl()->task_list= _shell;134 client_->task_list= _shell;
135 client_.impl()->task_count++;135 client_->task_count++;
136 }136 }
137137
138 _shell->impl(this);138 _shell->impl(this);
139139
=== modified file 'libgearman/job.cc'
--- libgearman/job.cc 2013-07-05 22:06:45 +0000
+++ libgearman/job.cc 2013-07-07 00:33:27 +0000
@@ -77,34 +77,35 @@
77 bool init()77 bool init()
78 {78 {
79 client= gearman_client_create(NULL);79 client= gearman_client_create(NULL);
80 if (not client)80 if (client)
81 {81 {
82 return false;82
83 }83 if (universal._namespace)
8484 {
85 if (universal._namespace)85 gearman_client_set_namespace(client,
86 {86 gearman_string_value(universal._namespace),
87 gearman_client_set_namespace(client, 87 gearman_string_length(universal._namespace));
88 gearman_string_value(universal._namespace),88 }
89 gearman_string_length(universal._namespace));89
90 }90 for (gearman_connection_st *con= universal.con_list; con; con= con->next_connection())
9191 {
92 for (gearman_connection_st *con= universal.con_list; con; con= con->next_connection())92 if (gearman_failed(client->impl()->add_server(con->_host, con->_service)))
93 {93 {
94 if (gearman_failed(client->impl()->add_server(con->_host, con->_service)))94 return false;
95 {95 }
96 return false;96 }
97 }97
98 }98 return true;
9999 }
100 return true;100
101 return false;
101 }102 }
102103
103 bool add(gearman_argument_t &arguments)104 bool add(gearman_argument_t &arguments)
104 {105 {
105 gearman_string_t function= gearman_string(reducer_function);106 gearman_string_t function= gearman_string(reducer_function);
106 gearman_unique_t unique= gearman_unique_make(0, 0);107 gearman_unique_t unique= gearman_unique_make(0, 0);
107 gearman_task_st *task= add_task(*client,108 gearman_task_st *task= add_task(*(client->impl()),
108 NULL,109 NULL,
109 GEARMAN_COMMAND_SUBMIT_JOB,110 GEARMAN_COMMAND_SUBMIT_JOB,
110 function,111 function,
111112
=== modified file 'libgearman/task.cc'
--- libgearman/task.cc 2013-07-06 17:53:34 +0000
+++ libgearman/task.cc 2013-07-07 00:33:27 +0000
@@ -54,7 +54,7 @@
54 * Public Definitions54 * Public Definitions
55 */55 */
5656
57gearman_task_st *gearman_task_internal_create(gearman_client_st& client, gearman_task_st *task_shell)57gearman_task_st *gearman_task_internal_create(Client* client, gearman_task_st *task_shell)
58{58{
59 Task* task= new (std::nothrow) Task(client, task_shell);59 Task* task= new (std::nothrow) Task(client, task_shell);
60 if (task)60 if (task)
@@ -62,7 +62,7 @@
62 return task->shell();62 return task->shell();
63 }63 }
6464
65 gearman_perror(client.impl()->universal, "gearman_task_st new");65 gearman_perror(client->universal, "gearman_task_st new");
66 gearman_task_free(task_shell);66 gearman_task_free(task_shell);
6767
68 return NULL;68 return NULL;
6969
=== modified file 'libgearman/task.hpp'
--- libgearman/task.hpp 2013-07-06 17:53:34 +0000
+++ libgearman/task.hpp 2013-07-07 00:33:27 +0000
@@ -46,7 +46,7 @@
46 * @return On success, a pointer to the (possibly allocated) structure. On46 * @return On success, a pointer to the (possibly allocated) structure. On
47 * failure this will be NULL.47 * failure this will be NULL.
48 */48 */
49gearman_task_st *gearman_task_internal_create(gearman_client_st& client,49gearman_task_st *gearman_task_internal_create(Client* client,
50 gearman_task_st *task);50 gearman_task_st *task);
5151
52void gearman_task_free(Task* task);52void gearman_task_free(Task* task);

Subscribers

People subscribed via source and target branches

to all changes: