90 lines
1.7 KiB
Python
Raw Normal View History

2015-12-06 18:18:13 -05:00
import sys
sys.path.insert(0, './tmsp')
from wire import *
from server import *
# tmsp application interface
class CounterApplication():
def __init__(self):
self.hashCount = 0
self.txCount = 0
self.commitCount = 0
def open(self):
return CounterAppContext(self)
class CounterAppContext():
def __init__(self, app):
self.app = app
self.hashCount = app.hashCount
self.txCount = app.txCount
self.commitCount = app.commitCount
self.serial = False
def echo(self, msg):
return msg, 0
def info(self):
return ["hash, tx, commit counts:%d, %d, %d"%(self.hashCount, self.txCount, self.commitCount)], 0
def set_option(self, key, value):
if key == "serial" and value == "on":
self.serial = True
return 0
def append_tx(self, txBytes):
if self.serial:
2015-12-14 18:00:18 -05:00
txByteArray = bytearray(txBytes)
if len(txBytes) >= 2 and txBytes[:2] == "0x":
txByteArray = hex2bytes(txBytes[2:])
2015-12-19 21:31:53 -05:00
txValue = decode_big_endian(BytesBuffer(txByteArray), len(txBytes))
2015-12-06 18:18:13 -05:00
if txValue != self.txCount:
2015-12-14 18:00:18 -05:00
return None, 1
2015-12-06 18:18:13 -05:00
self.txCount += 1
return None, 0
def get_hash(self):
self.hashCount += 1
if self.txCount == 0:
return "", 0
2015-12-14 18:00:18 -05:00
h = encode_big_endian(self.txCount, 8)
h.reverse()
return str(h), 0
2015-12-06 18:18:13 -05:00
def commit(self):
2015-12-21 18:12:38 -05:00
self.commitCount += 1
2015-12-06 18:18:13 -05:00
return 0
def rollback(self):
return 0
def add_listener(self):
return 0
def rm_listener(self):
return 0
def event(self):
return
if __name__ == '__main__':
l = len(sys.argv)
if l == 1:
port = 46658
elif l == 2:
port = int(sys.argv[1])
else:
print "too many arguments"
quit()
print 'TMSP Demo APP (Python)'
app = CounterApplication()
server = TMSPServer(app, port)
server.main_loop()