これを、python(pygtk)、ruby(ruby-gnome2)、lua(lua-gtk)、C(GTK)、java(Swing)に移植してみた。![]()
オリジナルから小さいコードなので、簡単なものですが...
興味のある方は、この辺を覗いて下さい。
これを、python(pygtk)、ruby(ruby-gnome2)、lua(lua-gtk)、C(GTK)、java(Swing)に移植してみた。![]()
cd C:\temp\
wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/Memcached-libmemcached-0.2101.tar.gz
zcat Memcached-libmemcached-0.2101.tar.gz | tar xv
cd Memcached-libmemcached-0.2101
mkdir src_inst\include\libmemcached
mkdir src_inst\lib
svn co http://svn.coderepos.org/share/lang/c/libmemcached-win32/libmemcached-latest
cd libmemcached-latest\libmemcached
mingw32-make -f makefile.w32
cd ..\..
copy libmemcached-latest\libmemcached\*.h src_inst\include\libmemcached\.
copy libmemcached-latest\libmemcached\memcached.a src_inst\lib\.
copy src_inst\include\libmemcached\*.h src\libmemcached\libmemcached\.
perl Makefile.PL
set OPT="INC=-IC:\temp\Memcached-libmemcached-0.2101\src_inst\include" "LMCD_BUILT_LIB=C:\temp\Memcached-libmemcached-0.2101\src_inst\lib\memcached.a" "LDFROM=$(OBJECT) C:\temp\Memcached-libmemcached-0.2101\src_inst\lib\memcached.a"
nmake %OPT%
あとは
libmemcached-latest\libmemcached\memcached.dll
をパスの通る場所に置いておけばWindowsで
use strict;
use Perl6::Say;
use Memcached::libmemcached qw(
memcached_create
memcached_server_add
memcached_set
memcached_get
);
my $key = "foo";
my $value = "bar";
my $memc = memcached_create();
memcached_server_add($memc, '127.0.0.1');
memcached_set($memc, $key, $value);
say memcached_get($memc, $key);
こんなソースが通る様になります。Cache::Memcached::libmemcachedも動きます。
require 'memcached'
$cache = Memcached.new('127.0.0.1:11211')
$cache.set('foo', 'bar')
print $cache.get('foo')
こちらはCOMPATIBILITYファイルを弄ったり、最新バージョンで無くなったWHEELな処理をカットしないといけませんが...
import cmemcached
c = cmemcached.Client(['127.0.0.1:11211'])
c.set("foo", "bar")
print c.get("hoge")
こちらもcmemcached.pyxでWHEELな処理をカットしないといけませんが...
#include <winsock2.h>
#include <memcached.h>
#include <stdio.h>
int main(void) {
memcached_return rc;
memcached_st *memc;
char* value;
int value_length = 0;
int flags = 0;
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 0), &wsaData) != 0) {
return -1;
}
memc = memcached_create(NULL);;
rc = memcached_server_add(memc, "127.0.0.1", 11211);
printf("server add: %s\n", memcached_strerror(memc, rc));
rc = memcached_set(memc, "test", 4, "example", 8, 0, 0);
printf("set: %s\n", memcached_strerror(memc, rc));
value = memcached_get(memc, "hoge", 4, &value_length, &flags, &rc);
printf("get: %s\n", memcached_strerror(memc, rc));
printf("test = %s\n", value);
memcached_free(memc);
return 0;
}
汚いソースを見たいという方はこの辺を...このブログを応援する