| %module python_pybuffer |
| %include <pybuffer.i> |
| %include <cstring.i> |
| /*functions for the test case*/ |
| %pybuffer_mutable_binary(char *buf1, int len); |
| %pybuffer_mutable_string(char *buf2); |
| %pybuffer_binary(const char *buf3, int len); |
| %pybuffer_string(const char *buf4); |
| |
| %inline %{ |
| void func1(char *buf1, int len) |
| { |
| int i; |
| for (i=0; i<len; ++i) |
| buf1[i] = 'a'; |
| return; |
| } |
| void func2(char *buf2) |
| { |
| strcpy(buf2, "Hello world!"); |
| } |
| int func3(const char *buf3, int len) |
| { |
| int count = 0; |
| int i; |
| for(i=0; i<len; ++i) |
| if (isalnum(buf3[i])) |
| ++count; |
| return count; |
| } |
| size_t func4(const char *buf4) |
| { |
| return strlen(buf4); |
| } |
| %} |
| |
| /*functions for the benchmark*/ |
| %pybuffer_mutable_string(char *str1); |
| %cstring_mutable(char *str2); |
| |
| %inline %{ |
| void title(char *str) { |
| int outword = 1; |
| while(*str) { |
| if (isalnum(*str)) { |
| if (outword) { |
| outword = 0; |
| *str = toupper(*str); |
| } |
| } |
| else { |
| outword = 0; |
| } |
| str++; |
| } |
| } |
| |
| void title1(char *str1) { |
| title(str1); |
| } |
| void title2(char *str2) { |
| title(str2); |
| } |
| %} |