#!/usr/bin/env python # encoding: utf-8 """ AsyncProxy.py Created by Cody Brocious on 2007-04-27. Copyright (c) 2007 Cody Brocious All rights reserved. """ import struct try: import cPickle as pickle except: import pickle class AsyncProxy(object): def __init__(self, sock): self.sock = sock def __getattr__(self, name): return self.caller(name) def caller(self, name): def call(*args, **kwargs): if 'callback' in kwargs: callback = kwargs['callback'].im_func.func_name del kwargs['callback'] elif len(args) > 0: callback = args[0].im_func.func_name del args[0] else: callback = None req = (name, args, kwargs, callback) data = pickle.dumps(req) try: self.sock.send(struct.pack('L', len(data))) self.sock.send(data) except: return False return True return call