Changeset 1729
- Timestamp:
- 08/12/08 17:55:24 (4 months ago)
- Files:
-
- capture-mod/trunk/CaptureSoapServer.cpp (modified) (1 diff)
- capture-mod/trunk/CaptureSoapServer.h (modified) (1 diff)
- capture-mod/trunk/capture.junks.res.xml (modified) (1 diff)
- capture-mod/trunk/capture.wsdl (modified) (3 diffs)
- capture-mod/trunk/captureGSOAP.h (modified) (1 diff)
- capture-mod/trunk/client.pl (modified) (1 diff)
- capture-mod/trunk/install/CaptureBAT.exe (modified) (previous)
- capture-mod/trunk/soapC.cpp (modified) (10 diffs)
- capture-mod/trunk/soapClient.cpp (modified) (1 diff)
- capture-mod/trunk/soapH.h (modified) (18 diffs)
- capture-mod/trunk/soapServer.cpp (modified) (3 diffs)
- capture-mod/trunk/soapStub.h (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
capture-mod/trunk/CaptureSoapServer.cpp
r1728 r1729 100 100 } 101 101 102 /* 103 int ns__junks( char * a, ns__myStruct2&result)102 103 int ns__junks(struct soap *soap, char * a, ns__myStruct &result) 104 104 { 105 105 printf("in ns__struct\n"); 106 ns__myStruct 2bob;106 ns__myStruct bob; 107 107 bob.first = "bob"; 108 108 bob.last = "dole"; 109 result = &bob;109 result = bob; 110 110 111 111 return SOAP_OK; 112 112 } 113 */114 113 114 capture-mod/trunk/CaptureSoapServer.h
r1728 r1729 4 4 5 5 #pragma once 6 #include "captureGSOAP.h"6 //#include "captureGSOAP.h" 7 7 #include "Thread.h" 8 8 capture-mod/trunk/capture.junks.res.xml
r1727 r1729 7 7 xmlns:ns="capture"> 8 8 <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 9 < Struct-1>9 <s> 10 10 <first></first> 11 11 <last></last> 12 </ Struct-1>12 </s> 13 13 </SOAP-ENV:Body> 14 14 </SOAP-ENV:Envelope> capture-mod/trunk/capture.wsdl
r1727 r1729 26 26 attributeFormDefault="unqualified"> 27 27 <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> 28 <complexType name="myStruct"> 29 <complexContent> 30 <restriction base="ns:s"> 31 </restriction> 32 </complexContent> 33 </complexType> 34 <complexType name="s"> 35 <sequence> 36 <element name="first" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/> 37 <element name="last" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/> 38 </sequence> 39 </complexType> 28 40 </schema> 29 41 30 42 </types> 43 44 <message name="junks"> 45 <part name="a" type="xsd:string"/> 46 </message> 47 48 <message name="s"> 49 <part name="first" type="xsd:string"/> 50 <part name="last" type="xsd:string"/> 51 </message> 31 52 32 53 <message name="addRequest"> … … 65 86 66 87 <portType name="capturePortType"> 88 <operation name="junks"> 89 <documentation>Service definition of function ns__junks</documentation> 90 <input message="tns:junks"/> 91 <output message="tns:s"/> 92 </operation> 67 93 <operation name="add"> 68 94 <documentation>Service definition of function ns__add</documentation> … … 89 115 <binding name="capture" type="tns:capturePortType"> 90 116 <SOAP:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> 117 <operation name="junks"> 118 <SOAP:operation style="rpc" soapAction=""/> 119 <input> 120 <SOAP:body use="encoded" namespace="capture" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 121 </input> 122 <output> 123 <SOAP:body use="encoded" namespace="capture" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 124 </output> 125 </operation> 91 126 <operation name="add"> 92 127 <SOAP:operation style="rpc" soapAction=""/> capture-mod/trunk/captureGSOAP.h
r1728 r1729 8 8 //gsoap ns service namespace: capture 9 9 10 /* 11 typedef struct {10 11 typedef struct s{ 12 12 char * first; 13 13 char * last; 14 } ns__myStruct2; 15 */ 14 } ns__myStruct; 16 15 17 //int ns__junks(char * a, ns__myStruct2 &result); 18 16 int ns__junks(char * a, ns__myStruct &result); 19 17 20 18 int ns__add(int a, int b, int &result); capture-mod/trunk/client.pl
r1728 r1729 20 20 -> result; 21 21 22 23 $res = SOAP::Lite 24 -> proxy('http://192.168.0.131:1234/') 25 -> ns('capture') 26 -> junks($structData) 27 -> result; 28 22 29 print Dumper($res); 23 30 31 32 $res = SOAP::Lite 33 -> proxy('http://192.168.0.131:1234/') 34 -> ns('capture'); 35 36 my $som = $res->junks($structData); 37 38 my @hashRes = $som->paramsall; 39 40 join(":", @hashRes); 41 print @hashRes; 42 43 44 45 capture-mod/trunk/soapC.cpp
r1727 r1729 8 8 #include "soapH.h" 9 9 10 SOAP_SOURCE_STAMP("@(#) soapC.cpp ver 2.7.10 2008-08-12 0 8:49:10 GMT")10 SOAP_SOURCE_STAMP("@(#) soapC.cpp ver 2.7.10 2008-08-12 09:29:10 GMT") 11 11 12 12 … … 178 178 case SOAP_TYPE_ns__addResponse: 179 179 return soap_in_ns__addResponse(soap, NULL, NULL, "ns:addResponse"); 180 case SOAP_TYPE_ns__junks: 181 return soap_in_ns__junks(soap, NULL, NULL, "ns:junks"); 182 case SOAP_TYPE_ns__myStruct: 183 return soap_in_ns__myStruct(soap, NULL, NULL, "ns:myStruct"); 184 case SOAP_TYPE_s: 185 return soap_in_s(soap, NULL, NULL, "s"); 180 186 case SOAP_TYPE_PointerTostring: 181 187 return soap_in_PointerTostring(soap, NULL, NULL, "xsd:string"); … … 232 238 { *type = SOAP_TYPE_ns__addResponse; 233 239 return soap_in_ns__addResponse(soap, NULL, NULL, NULL); 240 } 241 if (!soap_match_tag(soap, t, "ns:junks")) 242 { *type = SOAP_TYPE_ns__junks; 243 return soap_in_ns__junks(soap, NULL, NULL, NULL); 244 } 245 if (!soap_match_tag(soap, t, "ns:myStruct")) 246 { *type = SOAP_TYPE_ns__myStruct; 247 return soap_in_ns__myStruct(soap, NULL, NULL, NULL); 248 } 249 if (!soap_match_tag(soap, t, "s")) 250 { *type = SOAP_TYPE_s; 251 return soap_in_s(soap, NULL, NULL, NULL); 234 252 } 235 253 if (!soap_match_tag(soap, t, "xsd:string")) … … 333 351 case SOAP_TYPE_ns__addResponse: 334 352 return soap_out_ns__addResponse(soap, tag, id, (const struct ns__addResponse *)ptr, "ns:addResponse"); 353 case SOAP_TYPE_ns__junks: 354 return soap_out_ns__junks(soap, tag, id, (const struct ns__junks *)ptr, "ns:junks"); 355 case SOAP_TYPE_ns__myStruct: 356 return soap_out_ns__myStruct(soap, tag, id, (const struct s *)ptr, "ns:myStruct"); 357 case SOAP_TYPE_s: 358 return soap_out_s(soap, tag, id, (const struct s *)ptr, "s"); 335 359 case SOAP_TYPE_PointerTostring: 336 360 return soap_out_PointerTostring(soap, tag, id, (char **const*)ptr, "xsd:string"); … … 382 406 soap_serialize_ns__addResponse(soap, (const struct ns__addResponse *)ptr); 383 407 break; 408 case SOAP_TYPE_ns__junks: 409 soap_serialize_ns__junks(soap, (const struct ns__junks *)ptr); 410 break; 411 case SOAP_TYPE_ns__myStruct: 412 soap_serialize_ns__myStruct(soap, (const struct s *)ptr); 413 break; 414 case SOAP_TYPE_s: 415 soap_serialize_s(soap, (const struct s *)ptr); 416 break; 384 417 case SOAP_TYPE_PointerTostring: 385 418 soap_serialize_PointerTostring(soap, (char **const*)ptr); … … 403 436 switch (t) 404 437 { 438 case SOAP_TYPE_s: 439 return (void*)soap_instantiate_s(soap, -1, type, arrayType, n); 440 case SOAP_TYPE_ns__junks: 441 return (void*)soap_instantiate_ns__junks(soap, -1, type, arrayType, n); 405 442 case SOAP_TYPE_ns__addResponse: 406 443 return (void*)soap_instantiate_ns__addResponse(soap, -1, type, arrayType, n); … … 439 476 return (void*)soap_instantiate_SOAP_ENV__Fault(soap, -1, type, arrayType, n); 440 477 #endif 478 case SOAP_TYPE_ns__myStruct: 479 return (void*)soap_instantiate_ns__myStruct(soap, -1, type, arrayType, n); 441 480 } 442 481 return NULL; … … 446 485 { switch (p->type) 447 486 { 487 case SOAP_TYPE_s: 488 if (p->size < 0) 489 delete (struct s*)p->ptr; 490 else 491 delete[] (struct s*)p->ptr; 492 break; 493 case SOAP_TYPE_ns__junks: 494 if (p->size < 0) 495 delete (struct ns__junks*)p->ptr; 496 else 497 delete[] (struct ns__junks*)p->ptr; 498 break; 448 499 case SOAP_TYPE_ns__addResponse: 449 500 if (p->size < 0) … … 523 574 else 524 575 delete[] (struct SOAP_ENV__Fault*)p->ptr; 576 break; 577 case SOAP_TYPE_ns__myStruct: 578 if (p->size < 0) 579 delete (struct s*)p->ptr; 580 else 581 delete[] (struct s*)p->ptr; 525 582 break; 526 583 default: return SOAP_ERR; … … 2197 2254 } 2198 2255 2256 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__junks(struct soap *soap, struct ns__junks *a) 2257 { 2258 (void)soap; (void)a; /* appease -Wall -Werror */ 2259 soap_default_string(soap, &a->a); 2260 } 2261 2262 SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_ns__junks(struct soap *soap, const struct ns__junks *a) 2263 { 2264 (void)soap; (void)a; /* appease -Wall -Werror */ 2265 soap_serialize_string(soap, &a->a); 2266 } 2267 2268 SOAP_FMAC3 int SOAP_FMAC4 soap_put_ns__junks(struct soap *soap, const struct ns__junks *a, const char *tag, const char *type) 2269 { 2270 register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_ns__junks); 2271 if (soap_out_ns__junks(soap, tag, id, a, type)) 2272 return soap->error; 2273 return soap_putindependent(soap); 2274 } 2275 2276 SOAP_FMAC3 int SOAP_FMAC4 soap_out_ns__junks(struct soap *soap, const char *tag, int id, const struct ns__junks *a, const char *type) 2277 { 2278 if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_ns__junks), type)) 2279 return soap->error; 2280 if (soap_out_string(soap, "a", -1, &a->a, "")) 2281 return soap->error; 2282 return soap_element_end_out(soap, tag); 2283 } 2284 2285 SOAP_FMAC3 struct ns__junks * SOAP_FMAC4 soap_get_ns__junks(struct soap *soap, struct ns__junks *p, const char *tag, const char *type) 2286 { 2287 if ((p = soap_in_ns__junks(soap, tag, p, type))) 2288 if (soap_getindependent(soap)) 2289 return NULL; 2290 return p; 2291 } 2292 2293 SOAP_FMAC3 struct ns__junks * SOAP_FMAC4 soap_in_ns__junks(struct soap *soap, const char *tag, struct ns__junks *a, const char *type) 2294 { 2295 short soap_flag_a = 1; 2296 if (soap_element_begin_in(soap, tag, 0, type)) 2297 return NULL; 2298 a = (struct ns__junks *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_ns__junks, sizeof(struct ns__junks), 0, NULL, NULL, NULL); 2299 if (!a) 2300 return NULL; 2301 soap_default_ns__junks(soap, a); 2302 if (soap->body && !*soap->href) 2303 { 2304 for (;;) 2305 { soap->error = SOAP_TAG_MISMATCH; 2306 if (soap_flag_a && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG)) 2307 if (soap_in_string(soap, "a", &a->a, "xsd:string")) 2308 { soap_flag_a--; 2309 continue; 2310 } 2311 if (soap->error == SOAP_TAG_MISMATCH) 2312 soap->error = soap_ignore_element(soap); 2313 if (soap->error == SOAP_NO_TAG) 2314 break; 2315 if (soap->error) 2316 return NULL; 2317 } 2318 if (soap_element_end_in(soap, tag)) 2319 return NULL; 2320 } 2321 else 2322 { a = (struct ns__junks *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_ns__junks, 0, sizeof(struct ns__junks), 0, NULL); 2323 if (soap->body && soap_element_end_in(soap, tag)) 2324 return NULL; 2325 } 2326 return a; 2327 } 2328 2329 SOAP_FMAC5 struct ns__junks * SOAP_FMAC6 soap_new_ns__junks(struct soap *soap, int n) 2330 { return soap_instantiate_ns__junks(soap, n, NULL, NULL, NULL); 2331 } 2332 2333 SOAP_FMAC5 void SOAP_FMAC6 soap_delete_ns__junks(struct soap *soap, struct ns__junks *p) 2334 { soap_delete(soap, p); 2335 } 2336 2337 SOAP_FMAC3 struct ns__junks * SOAP_FMAC4 soap_instantiate_ns__junks(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size) 2338 { 2339 DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_ns__junks(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:"")); 2340 struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_ns__junks, n, soap_fdelete); 2341 if (!cp) 2342 return NULL; 2343 if (n < 0) 2344 { cp->ptr = (void*)new struct ns__junks; 2345 if (size) 2346 *size = sizeof(struct ns__junks); 2347 } 2348 else 2349 { cp->ptr = (void*)new struct ns__junks[n]; 2350 if (!cp->ptr) 2351 { soap->error = SOAP_EOM; 2352 return NULL; 2353 } 2354 if (size) 2355 *size = n * sizeof(struct ns__junks); 2356 } 2357 DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr)); 2358 return (struct ns__junks*)cp->ptr; 2359 } 2360 SOAP_FMAC3 void SOAP_FMAC4 soap_copy_ns__junks(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n) 2361 { 2362 DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct ns__junks %p -> %p\n", q, p)); 2363 *(struct ns__junks*)p = *(struct ns__junks*)q; 2364 } 2365 2366 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__myStruct(struct soap *soap, struct s *a) 2367 { soap_default_s(soap, a); 2368 } 2369 2370 SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_ns__myStruct(struct soap *soap, struct s const*a) 2371 { soap_serialize_s(soap, a); 2372 } 2373 2374 SOAP_FMAC3 int SOAP_FMAC4 soap_put_ns__myStruct(struct soap *soap, const struct s *a, const char *tag, const char *type) 2375 { 2376 register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_ns__myStruct); 2377 if (soap_out_ns__myStruct(soap, tag, id, a, type)) 2378 return soap->error; 2379 return soap_putindependent(soap); 2380 } 2381 2382 SOAP_FMAC3 int SOAP_FMAC4 soap_out_ns__myStruct(struct soap *soap, const char *tag, int id, const struct s *a, const char *type) 2383 { 2384 if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_ns__myStruct), type)) 2385 return soap->error; 2386 if (soap_out_string(soap, "first", -1, &a->first, "")) 2387 return soap->error; 2388 if (soap_out_string(soap, "last", -1, &a->last, "")) 2389 return soap->error; 2390 return soap_element_end_out(soap, tag); 2391 } 2392 2393 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_get_ns__myStruct(struct soap *soap, struct s *p, const char *tag, const char *type) 2394 { 2395 if ((p = soap_in_ns__myStruct(soap, tag, p, type))) 2396 if (soap_getindependent(soap)) 2397 return NULL; 2398 return p; 2399 } 2400 2401 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_in_ns__myStruct(struct soap *soap, const char *tag, struct s *a, const char *type) 2402 { 2403 short soap_flag_first = 1, soap_flag_last = 1; 2404 if (soap_element_begin_in(soap, tag, 0, type)) 2405 return NULL; 2406 a = (struct s *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_ns__myStruct, sizeof(struct s), 0, NULL, NULL, NULL); 2407 if (!a) 2408 return NULL; 2409 soap_default_ns__myStruct(soap, a); 2410 if (soap->body && !*soap->href) 2411 { 2412 for (;;) 2413 { soap->error = SOAP_TAG_MISMATCH; 2414 if (soap_flag_first && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG)) 2415 if (soap_in_string(soap, "first", &a->first, "xsd:string")) 2416 { soap_flag_first--; 2417 continue; 2418 } 2419 if (soap_flag_last && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG)) 2420 if (soap_in_string(soap, "last", &a->last, "xsd:string")) 2421 { soap_flag_last--; 2422 continue; 2423 } 2424 if (soap->error == SOAP_TAG_MISMATCH) 2425 soap->error = soap_ignore_element(soap); 2426 if (soap->error == SOAP_NO_TAG) 2427 break; 2428 if (soap->error) 2429 return NULL; 2430 } 2431 if (soap_element_end_in(soap, tag)) 2432 return NULL; 2433 } 2434 else 2435 { a = (struct s *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_ns__myStruct, 0, sizeof(struct s), 0, NULL); 2436 if (soap->body && soap_element_end_in(soap, tag)) 2437 return NULL; 2438 } 2439 return a; 2440 } 2441 2442 SOAP_FMAC5 struct s * SOAP_FMAC6 soap_new_ns__myStruct(struct soap *soap, int n) 2443 { return soap_instantiate_ns__myStruct(soap, n, NULL, NULL, NULL); 2444 } 2445 2446 SOAP_FMAC5 void SOAP_FMAC6 soap_delete_ns__myStruct(struct soap *soap, struct s *p) 2447 { soap_delete(soap, p); 2448 } 2449 2450 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_instantiate_ns__myStruct(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size) 2451 { 2452 DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_ns__myStruct(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:"")); 2453 struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_ns__myStruct, n, soap_fdelete); 2454 if (!cp) 2455 return NULL; 2456 if (n < 0) 2457 { cp->ptr = (void*)new struct s; 2458 if (size) 2459 *size = sizeof(struct s); 2460 } 2461 else 2462 { cp->ptr = (void*)new struct s[n]; 2463 if (!cp->ptr) 2464 { soap->error = SOAP_EOM; 2465 return NULL; 2466 } 2467 if (size) 2468 *size = n * sizeof(struct s); 2469 } 2470 DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr)); 2471 return (struct s*)cp->ptr; 2472 } 2473 SOAP_FMAC3 void SOAP_FMAC4 soap_copy_ns__myStruct(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n) 2474 { 2475 DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct s %p -> %p\n", q, p)); 2476 *(struct s*)p = *(struct s*)q; 2477 } 2478 2479 SOAP_FMAC3 void SOAP_FMAC4 soap_default_s(struct soap *soap, struct s *a) 2480 { 2481 (void)soap; (void)a; /* appease -Wall -Werror */ 2482 soap_default_string(soap, &a->first); 2483 soap_default_string(soap, &a->last); 2484 } 2485 2486 SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_s(struct soap *soap, const struct s *a) 2487 { 2488 (void)soap; (void)a; /* appease -Wall -Werror */ 2489 soap_serialize_string(soap, &a->first); 2490 soap_serialize_string(soap, &a->last); 2491 } 2492 2493 SOAP_FMAC3 int SOAP_FMAC4 soap_put_s(struct soap *soap, const struct s *a, const char *tag, const char *type) 2494 { 2495 register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_s); 2496 if (soap_out_s(soap, tag, id, a, type)) 2497 return soap->error; 2498 return soap_putindependent(soap); 2499 } 2500 2501 SOAP_FMAC3 int SOAP_FMAC4 soap_out_s(struct soap *soap, const char *tag, int id, const struct s *a, const char *type) 2502 { 2503 if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_s), type)) 2504 return soap->error; 2505 if (soap_out_string(soap, "first", -1, &a->first, "")) 2506 return soap->error; 2507 if (soap_out_string(soap, "last", -1, &a->last, "")) 2508 return soap->error; 2509 return soap_element_end_out(soap, tag); 2510 } 2511 2512 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_get_s(struct soap *soap, struct s *p, const char *tag, const char *type) 2513 { 2514 if ((p = soap_in_s(soap, tag, p, type))) 2515 if (soap_getindependent(soap)) 2516 return NULL; 2517 return p; 2518 } 2519 2520 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_in_s(struct soap *soap, const char *tag, struct s *a, const char *type) 2521 { 2522 short soap_flag_first = 1, soap_flag_last = 1; 2523 if (soap_element_begin_in(soap, tag, 0, type)) 2524 return NULL; 2525 a = (struct s *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_s, sizeof(struct s), 0, NULL, NULL, NULL); 2526 if (!a) 2527 return NULL; 2528 soap_default_s(soap, a); 2529 if (soap->body && !*soap->href) 2530 { 2531 for (;;) 2532 { soap->error = SOAP_TAG_MISMATCH; 2533 if (soap_flag_first && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG)) 2534 if (soap_in_string(soap, "first", &a->first, "xsd:string")) 2535 { soap_flag_first--; 2536 continue; 2537 } 2538 if (soap_flag_last && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG)) 2539 if (soap_in_string(soap, "last", &a->last, "xsd:string")) 2540 { soap_flag_last--; 2541 continue; 2542 } 2543 if (soap->error == SOAP_TAG_MISMATCH) 2544 soap->error = soap_ignore_element(soap); 2545 if (soap->error == SOAP_NO_TAG) 2546 break; 2547 if (soap->error) 2548 return NULL; 2549 } 2550 if (soap_element_end_in(soap, tag)) 2551 return NULL; 2552 } 2553 else 2554 { a = (struct s *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_s, 0, sizeof(struct s), 0, NULL); 2555 if (soap->body && soap_element_end_in(soap, tag)) 2556 return NULL; 2557 } 2558 return a; 2559 } 2560 2561 SOAP_FMAC5 struct s * SOAP_FMAC6 soap_new_s(struct soap *soap, int n) 2562 { return soap_instantiate_s(soap, n, NULL, NULL, NULL); 2563 } 2564 2565 SOAP_FMAC5 void SOAP_FMAC6 soap_delete_s(struct soap *soap, struct s *p) 2566 { soap_delete(soap, p); 2567 } 2568 2569 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_instantiate_s(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size) 2570 { 2571 DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_s(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:"")); 2572 struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_s, n, soap_fdelete); 2573 if (!cp) 2574 return NULL; 2575 if (n < 0) 2576 { cp->ptr = (void*)new struct s; 2577 if (size) 2578 *size = sizeof(struct s); 2579 } 2580 else 2581 { cp->ptr = (void*)new struct s[n]; 2582 if (!cp->ptr) 2583 { soap->error = SOAP_EOM; 2584 return NULL; 2585 } 2586 if (size) 2587 *size = n * sizeof(struct s); 2588 } 2589 DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr)); 2590 return (struct s*)cp->ptr; 2591 } 2592 SOAP_FMAC3 void SOAP_FMAC4 soap_copy_s(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n) 2593 { 2594 DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct s %p -> %p\n", q, p)); 2595 *(struct s*)p = *(struct s*)q; 2596 } 2597 2199 2598 #ifndef WITH_NOGLOBAL 2200 2599 capture-mod/trunk/soapClient.cpp
r1727 r1729 7 7 #include "soapH.h" 8 8 9 SOAP_SOURCE_STAMP("@(#) soapClient.cpp ver 2.7.10 2008-08-12 08:49:10 GMT") 10 9 SOAP_SOURCE_STAMP("@(#) soapClient.cpp ver 2.7.10 2008-08-12 09:29:10 GMT") 10 11 12 SOAP_FMAC5 int SOAP_FMAC6 soap_call_ns__junks(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *a, struct s &result) 13 { struct ns__junks soap_tmp_ns__junks; 14 if (!soap_endpoint) 15 soap_endpoint = "http://192.168.0.131:1234"; 16 soap->encodingStyle = ""; 17 soap_tmp_ns__junks.a = a; 18 soap_begin(soap); 19 soap_serializeheader(soap); 20 soap_serialize_ns__junks(soap, &soap_tmp_ns__junks); 21 if (soap_begin_count(soap)) 22 return soap->error; 23 if (soap->mode & SOAP_IO_LENGTH) 24 { if (soap_envelope_begin_out(soap) 25 || soap_putheader(soap) 26 || soap_body_begin_out(soap) 27 || soap_put_ns__junks(soap, &soap_tmp_ns__junks, "ns:junks", "") 28 || soap_body_end_out(soap) 29 || soap_envelope_end_out(soap)) 30 return soap->error; 31 } 32 if (soap_end_count(soap)) 33 return soap->error; 34 if (soap_connect(soap, soap_endpoint, soap_action) 35 || soap_envelope_begin_out(soap) 36 || soap_putheader(soap) 37 || soap_body_begin_out(soap) 38 || soap_put_ns__junks(soap, &soap_tmp_ns__junks, "ns:junks", "") 39 || soap_body_end_out(soap) 40 || soap_envelope_end_out(soap) 41 || soap_end_send(soap)) 42 return soap_closesock(soap); 43 soap_default_ns__myStruct(soap, &result); 44 if (soap_begin_recv(soap) 45 || soap_envelope_begin_in(soap) 46 || soap_recv_header(soap) 47 || soap_body_begin_in(soap)) 48 return soap_closesock(soap); 49 soap_get_ns__myStruct(soap, &result, "ns:myStruct", ""); 50 if (soap->error) 51 { if (soap->error == SOAP_TAG_MISMATCH && soap->level == 2) 52 return soap_recv_fault(soap); 53 return soap_closesock(soap); 54 } 55 if (soap_body_end_in(soap) 56 || soap_envelope_end_in(soap) 57 || soap_end_recv(soap)) 58 return soap_closesock(soap); 59 return soap_closesock(soap); 60 } 11 61 12 62 SOAP_FMAC5 int SOAP_FMAC6 soap_call_ns__add(struct soap *soap, const char *soap_endpoint, const char *soap_action, int a, int b, int &result) capture-mod/trunk/soapH.h
r1727 r1729 49 49 50 50 #ifndef SOAP_TYPE_double 51 #define SOAP_TYPE_double ( 18)51 #define SOAP_TYPE_double (23) 52 52 #endif 53 53 SOAP_FMAC3 void SOAP_FMAC4 soap_default_double(struct soap*, double *); … … 60 60 61 61 #ifndef SOAP_TYPE_SOAP_ENV__Fault 62 #define SOAP_TYPE_SOAP_ENV__Fault (3 0)62 #define SOAP_TYPE_SOAP_ENV__Fault (35) 63 63 #endif 64 64 SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *); … … 78 78 79 79 #ifndef SOAP_TYPE_SOAP_ENV__Reason 80 #define SOAP_TYPE_SOAP_ENV__Reason ( 29)80 #define SOAP_TYPE_SOAP_ENV__Reason (34) 81 81 #endif 82 82 SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *); … … 96 96 97 97 #ifndef SOAP_TYPE_SOAP_ENV__Detail 98 #define SOAP_TYPE_SOAP_ENV__Detail ( 26)98 #define SOAP_TYPE_SOAP_ENV__Detail (31) 99 99 #endif 100 100 SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *); … … 114 114 115 115 #ifndef SOAP_TYPE_SOAP_ENV__Code 116 #define SOAP_TYPE_SOAP_ENV__Code (2 4)116 #define SOAP_TYPE_SOAP_ENV__Code (29) 117 117 #endif 118 118 SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *); … … 132 132 133 133 #ifndef SOAP_TYPE_SOAP_ENV__Header 134 #define SOAP_TYPE_SOAP_ENV__Header (2 3)134 #define SOAP_TYPE_SOAP_ENV__Header (28) 135 135 #endif 136 136 SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *); … … 148 148 149 149 #ifndef SOAP_TYPE_ns__sub 150 #define SOAP_TYPE_ns__sub (2 2)150 #define SOAP_TYPE_ns__sub (27) 151 151 #endif 152 152 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__sub(struct soap*, struct ns__sub *); … … 162 162 163 163 #ifndef SOAP_TYPE_ns__subResponse 164 #define SOAP_TYPE_ns__subResponse (2 1)164 #define SOAP_TYPE_ns__subResponse (26) 165 165 #endif 166 166 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__subResponse(struct soap*, struct ns__subResponse *); … … 176 176 177 177 #ifndef SOAP_TYPE_ns__visit 178 #define SOAP_TYPE_ns__visit ( 17)178 #define SOAP_TYPE_ns__visit (22) 179 179 #endif 180 180 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__visit(struct soap*, struct ns__visit *); … … 190 190 191 191 #ifndef SOAP_TYPE_ns__visitResponse 192 #define SOAP_TYPE_ns__visitResponse ( 16)192 #define SOAP_TYPE_ns__visitResponse (21) 193 193 #endif 194 194 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__visitResponse(struct soap*, struct ns__visitResponse *); … … 204 204 205 205 #ifndef SOAP_TYPE_ns__ping 206 #define SOAP_TYPE_ns__ping (1 4)206 #define SOAP_TYPE_ns__ping (19) 207 207 #endif 208 208 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__ping(struct soap*, struct ns__ping *); … … 218 218 219 219 #ifndef SOAP_TYPE_ns__pingResponse 220 #define SOAP_TYPE_ns__pingResponse (1 3)220 #define SOAP_TYPE_ns__pingResponse (18) 221 221 #endif 222 222 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__pingResponse(struct soap*, struct ns__pingResponse *); … … 232 232 233 233 #ifndef SOAP_TYPE_ns__add 234 #define SOAP_TYPE_ns__add (1 0)234 #define SOAP_TYPE_ns__add (15) 235 235 #endif 236 236 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__add(struct soap*, struct ns__add *); … … 246 246 247 247 #ifndef SOAP_TYPE_ns__addResponse 248 #define SOAP_TYPE_ns__addResponse ( 9)248 #define SOAP_TYPE_ns__addResponse (14) 249 249 #endif 250 250 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__addResponse(struct soap*, struct ns__addResponse *); … … 259 259 SOAP_FMAC3 void SOAP_FMAC4 soap_copy_ns__addResponse(struct soap*, int, int, void*, size_t, const void*, size_t); 260 260 261 #ifndef SOAP_TYPE_ns__junks 262 #define SOAP_TYPE_ns__junks (11) 263 #endif 264 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__junks(struct soap*, struct ns__junks *); 265 SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_ns__junks(struct soap*, const struct ns__junks *); 266 SOAP_FMAC3 int SOAP_FMAC4 soap_put_ns__junks(struct soap*, const struct ns__junks *, const char*, const char*); 267 SOAP_FMAC3 int SOAP_FMAC4 soap_out_ns__junks(struct soap*, const char*, int, const struct ns__junks *, const char*); 268 SOAP_FMAC3 struct ns__junks * SOAP_FMAC4 soap_get_ns__junks(struct soap*, struct ns__junks *, const char*, const char*); 269 SOAP_FMAC3 struct ns__junks * SOAP_FMAC4 soap_in_ns__junks(struct soap*, const char*, struct ns__junks *, const char*); 270 SOAP_FMAC5 struct ns__junks * SOAP_FMAC6 soap_new_ns__junks(struct soap*, int); 271 SOAP_FMAC5 void SOAP_FMAC6 soap_delete_ns__junks(struct soap*, struct ns__junks*); 272 SOAP_FMAC3 struct ns__junks * SOAP_FMAC4 soap_instantiate_ns__junks(struct soap*, int, const char*, const char*, size_t*); 273 SOAP_FMAC3 void SOAP_FMAC4 soap_copy_ns__junks(struct soap*, int, int, void*, size_t, const void*, size_t); 274 275 #ifndef SOAP_TYPE_ns__myStruct 276 #define SOAP_TYPE_ns__myStruct (8) 277 #endif 278 SOAP_FMAC3 void SOAP_FMAC4 soap_default_ns__myStruct(struct soap*, struct s *); 279 SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_ns__myStruct(struct soap*, struct s const*); 280 SOAP_FMAC3 int SOAP_FMAC4 soap_put_ns__myStruct(struct soap*, const struct s *, const char*, const char*); 281 SOAP_FMAC3 int SOAP_FMAC4 soap_out_ns__myStruct(struct soap*, const char*, int, const struct s *, const char*); 282 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_get_ns__myStruct(struct soap*, struct s *, const char*, const char*); 283 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_in_ns__myStruct(struct soap*, const char*, struct s *, const char*); 284 SOAP_FMAC5 struct s * SOAP_FMAC6 soap_new_ns__myStruct(struct soap*, int); 285 SOAP_FMAC5 void SOAP_FMAC6 soap_delete_ns__myStruct(struct soap*, struct s*); 286 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_instantiate_ns__myStruct(struct soap*, int, const char*, const char*, size_t*); 287 SOAP_FMAC3 void SOAP_FMAC4 soap_copy_ns__myStruct(struct soap*, int, int, void*, size_t, const void*, size_t); 288 289 #ifndef SOAP_TYPE_s 290 #define SOAP_TYPE_s (7) 291 #endif 292 SOAP_FMAC3 void SOAP_FMAC4 soap_default_s(struct soap*, struct s *); 293 SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_s(struct soap*, const struct s *); 294 SOAP_FMAC3 int SOAP_FMAC4 soap_put_s(struct soap*, const struct s *, const char*, const char*); 295 SOAP_FMAC3 int SOAP_FMAC4 soap_out_s(struct soap*, const char*, int, const struct s *, const char*); 296 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_get_s(struct soap*, struct s *, const char*, const char*); 297 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_in_s(struct soap*, const char*, struct s *, const char*); 298 SOAP_FMAC5 struct s * SOAP_FMAC6 soap_new_s(struct soap*, int); 299 SOAP_FMAC5 void SOAP_FMAC6 soap_delete_s(struct soap*, struct s*); 300 SOAP_FMAC3 struct s * SOAP_FMAC4 soap_instantiate_s(struct soap*, int, const char*, const char*, size_t*); 301 SOAP_FMAC3 void SOAP_FMAC4 soap_copy_s(struct soap*, int, int, void*, size_t, const void*, size_t); 302 261 303 #ifndef WITH_NOGLOBAL 262 304 263 305 #ifndef SOAP_TYPE_PointerToSOAP_ENV__Reason 264 #define SOAP_TYPE_PointerToSOAP_ENV__Reason (3 2)306 #define SOAP_TYPE_PointerToSOAP_ENV__Reason (37) 265 307 #endif 266 308 SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*); … … 275 317 276 318 #ifndef SOAP_TYPE_PointerToSOAP_ENV__Detail 277 #define SOAP_TYPE_PointerToSOAP_ENV__Detail (3 1)319 #define SOAP_TYPE_PointerToSOAP_ENV__Detail (36) 278 320 #endif 279 321 SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*); … … 288 330 289 331 #ifndef SOAP_TYPE_PointerToSOAP_ENV__Code 290 #define SOAP_TYPE_PointerToSOAP_ENV__Code ( 25)332 #define SOAP_TYPE_PointerToSOAP_ENV__Code (30) 291 333 #endif 292 334 SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*); … … 299 341 300 342 #ifndef SOAP_TYPE_PointerTostring 301 #define SOAP_TYPE_PointerTostring (1 1)343 #define SOAP_TYPE_PointerTostring (16) 302 344 #endif 303 345 SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTostring(struct soap*, char **const*); capture-mod/trunk/soapServer.cpp
r1727 r1729 7 7 #include "soapH.h" 8 8 9 SOAP_SOURCE_STAMP("@(#) soapServer.cpp ver 2.7.10 2008-08-12 0 8:49:10 GMT")9 SOAP_SOURCE_STAMP("@(#) soapServer.cpp ver 2.7.10 2008-08-12 09:29:10 GMT") 10 10 11 11 … … 74 74 { 75 75 soap_peek_element(soap); 76 if (!soap_match_tag(soap, soap->tag, "ns:junks")) 77 return soap_serve_ns__junks(soap); 76 78 if (!soap_match_tag(soap, soap->tag, "ns:add")) 77 79 return soap_serve_ns__add(soap); … … 86 88 #endif 87 89 90 SOAP_FMAC5 int SOAP_FMAC6 soap_serve_ns__junks(struct soap *soap) 91 { struct ns__junks soap_tmp_ns__junks; 92 struct s result; 93 soap_default_ns__myStruct(soap, &result); 94 soap_default_ns__junks(soap, &soap_tmp_ns__junks); 95 soap->encodingStyle = ""; 96 if (!soap_get_ns__junks(soap, &soap_tmp_ns__junks, "ns:junks", NULL)) 97 return soap->error; 98 if (soap_body_end_in(soap) 99 || soap_envelope_end_in(soap) 100 || soap_end_recv(soap)) 101 return soap->error; 102 soap->error = ns__junks(soap, soap_tmp_ns__junks.a, result); 103 if (soap->error) 104 return soap->error; 105 soap_serializeheader(soap); 106 soap_serialize_ns__myStruct(soap, &result); 107 if (soap_begin_count(soap)) 108 return soap->error; 109 if (soap->mode & SOAP_IO_LENGTH) 110 { if (soap_envelope_begin_out(soap) 111 || soap_putheader(soap) 112 || soap_body_begin_out(soap) 113 || soap_put_ns__myStruct(soap, &result, "ns:myStruct", "") 114 || soap_body_end_out(soap) 115 || soap_envelope_end_out(soap)) 116 return soap->error; 117 }; 118 if (soap_end_count(soap) 119 || soap_response(soap, SOAP_OK) 120 || soap_envelope_begin_out(soap) 121 || soap_putheader(soap) 122 || soap_body_begin_out(soap) 123 || soap_put_ns__myStruct(soap, &result, "ns:myStruct", "") 124 || soap_body_end_out(soap) 125 || soap_envelope_end_out(soap) 126 || soap_end_send(soap)) 127 return soap->error; 128 return soap_closesock(soap); 129 } 130 88 131 SOAP_FMAC5 int SOAP_FMAC6 soap_serve_ns__add(struct soap *soap) 89 132 { struct ns__add soap_tmp_ns__add; capture-mod/trunk/soapStub.h
r1727 r1729 28 28 #endif 29 29 30 #ifndef SOAP_TYPE_s 31 #define SOAP_TYPE_s (7) 32 /* s */ 33 struct s 34 { 35 public: 36 char *first; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* optional element of type xsd:string */ 37 char *last; /* optional element of type xsd:string */ 38 }; 39 #endif 40 41 #ifndef SOAP_TYPE_ns__junks 42 #define SOAP_TYPE_ns__junks (11) 43 /* ns:junks */ 44 struct ns__junks 45 { 46 public: 47 char *a; /* optional element of type xsd:string */ 48 }; 49 #endif 50 30 51 #ifndef SOAP_TYPE_ns__addResponse 31 #define SOAP_TYPE_ns__addResponse ( 9)52 #define SOAP_TYPE_ns__addResponse (14) 32 53 /* ns:addResponse */ 33 54 struct ns__addResponse … … 39 60 40 61 #ifndef SOAP_TYPE_ns__add 41 #define SOAP_TYPE_ns__add (1 0)62 #define SOAP_TYPE_ns__add (15) 42 63 /* ns:add */ 43 64 struct ns__add … … 50 71 51 72 #ifndef SOAP_TYPE_ns__pingResponse 52 #define SOAP_TYPE_ns__pingResponse (1 3)73 #define SOAP_TYPE_ns__pingResponse (18) 53 74 /* ns:pingResponse */ 54 75 struct ns__pingResponse … … 60 81 61 82 #ifndef SOAP_TYPE_ns__ping 62 #define SOAP_TYPE_ns__ping (1 4)83 #define SOAP_TYPE_ns__ping (19) 63 84 /* ns:ping */ 64 85 struct ns__ping … … 70 91 71 92 #ifndef SOAP_TYPE_ns__visitResponse 72 #define SOAP_TYPE_ns__visitResponse ( 16)93 #define SOAP_TYPE_ns__visitResponse (21) 73 94 /* ns:visitResponse */ 74 95 struct ns__visitResponse … … 80 101 81 102 #ifndef SOAP_TYPE_ns__visit 82 #define SOAP_TYPE_ns__visit ( 17)103 #define SOAP_TYPE_ns__visit (22) 83 104 /* ns:visit */ 84 105 struct ns__visit … … 90 111 91 112 #ifndef SOAP_TYPE_ns__subResponse 92 #define SOAP_TYPE_ns__subResponse (2 1)113 #define SOAP_TYPE_ns__subResponse (26) 93 114 /* ns:subResponse */ 94 115 struct ns__subResponse
