comparison libinterp/corefcn/urlwrite.cc @ 20612:7374a3a6d594

use new string_value method to handle value extraction errors * urlwrite.cc: Use new string_value method.
author John W. Eaton <jwe@octave.org>
date Thu, 08 Oct 2015 17:26:40 -0400
parents 56fee8f84fe7
children
comparison
equal deleted inserted replaced
20611:40ed9b46a800 20612:7374a3a6d594
348 { 348 {
349 print_usage (); 349 print_usage ();
350 return retval; 350 return retval;
351 } 351 }
352 352
353 if (! args(0).is_string ()) 353 std::string url = args(0).string_value ("urlwrite: URL must be a string");
354 {
355 error ("urlwrite: URL must be a string");
356 return retval;
357 }
358
359 std::string url = args(0).string_value ();
360
361 if (! args(1).is_string ())
362 {
363 error ("urlwrite: LOCALFILE must be a string");
364 return retval;
365 }
366 354
367 // name to store the file if download is succesful 355 // name to store the file if download is succesful
368 std::string filename = args(1).string_value (); 356 std::string filename = args(1).string_value ("urlwrite: LOCALFILE must be a string");
369 357
370 std::string method; 358 std::string method;
371 Array<std::string> param; 359 Array<std::string> param;
372 360
373 if (nargin == 4) 361 if (nargin == 4)
374 { 362 {
375 if (! args(2).is_string ()) 363 method = args(2).string_value ("urlwrite: METHOD must be a string");
376 {
377 error ("urlwrite: METHOD must be a string");
378 return retval;
379 }
380
381 method = args(2).string_value ();
382 364
383 if (method != "get" && method != "post") 365 if (method != "get" && method != "post")
384 { 366 {
385 error ("urlwrite: METHOD must be \"get\" or \"post\""); 367 error ("urlwrite: METHOD must be \"get\" or \"post\"");
386 return retval; 368 return retval;
509 { 491 {
510 print_usage (); 492 print_usage ();
511 return retval; 493 return retval;
512 } 494 }
513 495
514 if (! args(0).is_string ()) 496 std::string url = args(0).string_value ("urlread: URL must be a string");
515 {
516 error ("urlread: URL must be a string");
517 return retval;
518 }
519
520 std::string url = args(0).string_value ();
521 497
522 std::string method; 498 std::string method;
523 Array<std::string> param; 499 Array<std::string> param;
524 500
525 if (nargin == 3) 501 if (nargin == 3)
526 { 502 {
527 if (! args(1).is_string ()) 503 method = args(1).string_value ("urlread: METHOD must be a string");
528 {
529 error ("urlread: METHOD must be a string");
530 return retval;
531 }
532
533 method = args(1).string_value ();
534 504
535 if (method != "get" && method != "post") 505 if (method != "get" && method != "post")
536 { 506 {
537 error ("urlread: METHOD must be \"get\" or \"post\""); 507 error ("urlread: METHOD must be \"get\" or \"post\"");
538 return retval; 508 return retval;
597 print_usage (); 567 print_usage ();
598 return retval; 568 return retval;
599 } 569 }
600 else 570 else
601 { 571 {
602 host = args(0).string_value (); 572 host = args(0).string_value ("__ftp__: HOST must be a string");
603 573
604 if (nargin > 1) 574 if (nargin > 1)
605 user = args(1).string_value (); 575 user = args(1).string_value ("__ftp__: USER must be a string");
606 576
607 if (nargin > 2) 577 if (nargin > 2)
608 passwd = args(2).string_value (); 578 passwd = args(2).string_value ("__ftp__: PASSWD must be a string");
609 579
610 curl_handle ch 580 curl_handle ch
611 = ch_manager::make_curl_handle (host, user, passwd, octave_stdout); 581 = ch_manager::make_curl_handle (host, user, passwd, octave_stdout);
612 582
613 retval = ch.value (); 583 retval = ch.value ();
660 if (curl.is_valid ()) 630 if (curl.is_valid ())
661 { 631 {
662 std::string path = ""; 632 std::string path = "";
663 633
664 if (nargin > 1) 634 if (nargin > 1)
665 path = args(1).string_value (); 635 path = args(1).string_value ("__ftp_cwd__: PATH must be a string");
666 636
667 if (! error_state) 637 if (! error_state)
668 curl.cwd (path); 638 curl.cwd (path);
669 else 639 else
670 error ("__ftp_cwd__: expecting path as second argument"); 640 error ("__ftp_cwd__: expecting path as second argument");
870 { 840 {
871 url_transfer curl = ch_manager::get_object (args(0)); 841 url_transfer curl = ch_manager::get_object (args(0));
872 842
873 if (curl.is_valid ()) 843 if (curl.is_valid ())
874 { 844 {
875 std::string file = args(1).string_value (); 845 std::string file = args(1).string_value ("__ftp_delete__: FILE must be a string");
876 846
877 if (! error_state) 847 if (! error_state)
878 curl.del (file); 848 curl.del (file);
879 else 849 else
880 error ("__ftp_delete__: expecting file name as second argument"); 850 error ("__ftp_delete__: expecting file name as second argument");
902 { 872 {
903 url_transfer curl = ch_manager::get_object (args(0)); 873 url_transfer curl = ch_manager::get_object (args(0));
904 874
905 if (curl.is_valid ()) 875 if (curl.is_valid ())
906 { 876 {
907 std::string dir = args(1).string_value (); 877 std::string dir = args(1).string_value ("__ftp_rmdir__: DIR must be a string");
908 878
909 if (! error_state) 879 if (! error_state)
910 curl.rmdir (dir); 880 curl.rmdir (dir);
911 else 881 else
912 error ("__ftp_rmdir__: expecting directory name as second argument"); 882 error ("__ftp_rmdir__: expecting directory name as second argument");
934 { 904 {
935 url_transfer curl = ch_manager::get_object (args(0)); 905 url_transfer curl = ch_manager::get_object (args(0));
936 906
937 if (curl.is_valid ()) 907 if (curl.is_valid ())
938 { 908 {
939 std::string dir = args(1).string_value (); 909 std::string dir = args(1).string_value ("__ftp_mkdir__: DIR must be a string");
940 910
941 if (! error_state) 911 if (! error_state)
942 curl.mkdir (dir); 912 curl.mkdir (dir);
943 else 913 else
944 error ("__ftp_mkdir__: expecting directory name as second argument"); 914 error ("__ftp_mkdir__: expecting directory name as second argument");
966 { 936 {
967 url_transfer curl = ch_manager::get_object (args(0)); 937 url_transfer curl = ch_manager::get_object (args(0));
968 938
969 if (curl.is_valid ()) 939 if (curl.is_valid ())
970 { 940 {
971 std::string oldname = args(1).string_value (); 941 std::string oldname = args(1).string_value ("__ftp_rename__: OLDNAME must be a string");
972 std::string newname = args(2).string_value (); 942 std::string newname = args(2).string_value ("__ftp_rename__: NEWNAME must be a string");
973 943
974 if (! error_state) 944 if (! error_state)
975 curl.rename (oldname, newname); 945 curl.rename (oldname, newname);
976 else 946 else
977 error ("__ftp_rename__: expecting file names for second and third arguments"); 947 error ("__ftp_rename__: expecting file names for second and third arguments");
999 { 969 {
1000 url_transfer curl = ch_manager::get_object (args(0)); 970 url_transfer curl = ch_manager::get_object (args(0));
1001 971
1002 if (curl.is_valid ()) 972 if (curl.is_valid ())
1003 { 973 {
1004 std::string pat = args(1).string_value (); 974 std::string pat = args(1).string_value ("__ftp_mput__: PATTERN must be a string");
1005 975
1006 if (! error_state) 976 if (! error_state)
1007 { 977 {
1008 string_vector file_list; 978 string_vector file_list;
1009 979
1071 return retval; 1041 return retval;
1072 } 1042 }
1073 1043
1074 DEFUN (__ftp_mget__, args, , 1044 DEFUN (__ftp_mget__, args, ,
1075 "-*- texinfo -*-\n\ 1045 "-*- texinfo -*-\n\
1076 @deftypefn {Loadable Function} {} __ftp_mget__ (@var{handle}, @var{files})\n\ 1046 @deftypefn {Loadable Function} {} __ftp_mget__ (@var{handle}, @var{pattern})\n\
1047 @deftypefnx {Loadable Function} {} __ftp_mget__ (@var{handle}, @var{pattern}, @var{target})\n\
1077 Undocumented internal function\n\ 1048 Undocumented internal function\n\
1078 @end deftypefn") 1049 @end deftypefn")
1079 { 1050 {
1080 octave_value retval; 1051 octave_value retval;
1081 1052
1087 { 1058 {
1088 url_transfer curl = ch_manager::get_object (args(0)); 1059 url_transfer curl = ch_manager::get_object (args(0));
1089 1060
1090 if (curl.is_valid ()) 1061 if (curl.is_valid ())
1091 { 1062 {
1092 std::string file = args(1).string_value (); 1063 std::string file = args(1).string_value ("__ftp_mget__: PATTERN must be a string");
1093 std::string target; 1064 std::string target;
1094 1065
1095 if (nargin == 3) 1066 if (nargin == 3)
1096 target = args(2).string_value () + file_ops::dir_sep_str (); 1067 target = args(2).string_value ("__ftp_mget__: TARGET must be a string") + file_ops::dir_sep_str ();
1097 1068
1098 if (! error_state) 1069 if (! error_state)
1099 { 1070 {
1100 string_vector sv = curl.list (); 1071 string_vector sv = curl.list ();
1101 octave_idx_type n = 0; 1072 octave_idx_type n = 0;