Skip to content

Instantly share code, notes, and snippets.

View sznurek's full-sized avatar

sznurek sznurek

View GitHub Profile
class Action:
def __init__(self):
self.next_action = None
def run(self, socket, vars):
pass # this will be overloaded
def __rshift__(self, other):
self.append_action(other)
class ReadAction(Action):
def __init__(self, name):
super().__init__()
self.name = name
def run(self, socket, vars):
data = socket.recv(MAGIC_CONSTANT)
vars[self.name] = data
class WriteAction(Action):
class ActionManager(IOBase):
def __init__(self, action, socket, finished_callback=None):
self.action = action
self.socket = socket
self.finished_callback = finished_callback
self.vars = {}
def register(self, fdmanager):
if self.action is None:
return
@sznurek
sznurek / gist:3306888
Created August 9, 2012 18:35
Array elements
<?php
$my_array = array(
'one' => 1337,
'two' => 69,
);
@sznurek
sznurek / gist:3306924
Created August 9, 2012 18:37
Gotcha in JS
var my_array = {
'one': 1337,
'two': 69,
};
@sznurek
sznurek / coroutine.py
Created February 19, 2014 22:37
Python asynchronous server featuring generator (coroutines).
#!/usr/bin/env python3
import sys
import socket
import select
def command(name, args=None):
return {'name': name, 'args': args}
def readcmd():