Class: Curl::Multi
- Inherits:
-
Object
- Object
- Curl::Multi
- Defined in:
- ext/multi.c
Class Method Summary collapse
Instance Method Summary collapse
- #add_handle ⇒ Object
- #cleanup ⇒ Object
- #initialize(*args) ⇒ Object constructor
- #perform ⇒ Object
- #remove_handle ⇒ Object
- #setopt(opt, val) ⇒ Object
Constructor Details
#initialize(*args) ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'ext/multi.c', line 108
static VALUE rb_curl_multi_initialize(int argc, VALUE *argv, VALUE self) {
rb_curl_multi *rb_cmh;
Data_Get_Struct(self, rb_curl_multi, rb_cmh);
rb_cmh->cmh = curl_multi_init();
if (!rb_cmh->cmh) {
rb_raise(rb_eRuntimeError, "Failed to initialize multi handle");
}
rb_cmh->self = self;
return self;
}
|
Class Method Details
.strerror(errornum) ⇒ Object
8 9 10 11 12 13 14 |
# File 'ext/multi.c', line 8
static VALUE rb_curl_multi_strerror(VALUE self, VALUE errornum) {
const char *error_str;
error_str = curl_multi_strerror(NUM2LONG(errornum));
return rb_str_new2(error_str);
}
|
Instance Method Details
#add_handle ⇒ Object
#cleanup ⇒ Object
#perform ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'ext/multi.c', line 84
static VALUE rb_curl_multi_perform(VALUE self) {
rb_curl_multi *rb_cmh;
int running_handles;
Data_Get_Struct(self, rb_curl_multi, rb_cmh);
do {
curl_multi_perform(rb_cmh->cmh, &running_handles);
curl_multi_wait(rb_cmh->cmh, NULL, 0, 100000, NULL);
} while (running_handles);
return LONG2NUM(0);
}
|
#remove_handle ⇒ Object
#setopt(opt, val) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'ext/multi.c', line 65
static VALUE rb_curl_multi_setopt(VALUE self, VALUE opt, VALUE val) {
CURLMcode cm_err_code;
rb_curl_multi *rb_cmh;
long option = NUM2LONG(opt);
Data_Get_Struct(self, rb_curl_multi, rb_cmh);
switch (option) {
case CURLMOPT_MAXCONNECTS:
case CURLMOPT_PIPELINING:
cm_err_code = curl_multi_setopt(rb_cmh->cmh, option, NUM2LONG(val));
break;
default:
rb_raise(rb_eTypeError, "Unsupported option.");
}
return LONG2NUM(cm_err_code);
}
|