aboutsummaryrefslogtreecommitdiff
path: root/parrot_zik/message.py
diff options
context:
space:
mode:
authorMarek Siarkowicz <mareksiarkowicz@gmail.com>2015-06-15 11:33:33 +0200
committerMarek Siarkowicz <mareksiarkowicz@gmail.com>2015-06-15 12:01:43 +0200
commit947a9f7d10bc3c54939cfa72dab27b2e64034318 (patch)
tree052108b258f5179c457b762e2134bf9fff1dccfe /parrot_zik/message.py
parent55255db75378f39807371bb7e434cc943fd66f27 (diff)
downloadpyParrotZikTCP-947a9f7d10bc3c54939cfa72dab27b2e64034318.tar.xz
pyParrotZikTCP-947a9f7d10bc3c54939cfa72dab27b2e64034318.zip
Create packet.
Diffstat (limited to 'parrot_zik/message.py')
-rw-r--r--parrot_zik/message.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/parrot_zik/message.py b/parrot_zik/message.py
new file mode 100644
index 0000000..214b6f9
--- /dev/null
+++ b/parrot_zik/message.py
@@ -0,0 +1,30 @@
+class Message:
+ def __init__(self, resource, method, arg=None):
+ self.method = method
+ self.resource = resource
+ self.arg = arg
+
+ def __str__(self):
+ return str(self.request)
+
+ @property
+ def request(self):
+ message = bytearray()
+ message.extend(self.header)
+ message.extend(bytearray(self.request_string))
+ return message
+
+ @property
+ def header(self):
+ header = bytearray([0])
+ header.append(len(self.request_string) + 3)
+ header.append("\x80")
+ return header
+
+ @property
+ def request_string(self):
+ if self.method == 'set':
+ return 'SET {}/{}?arg={}'.format(self.resource, self.method,
+ str(self.arg).lower())
+ else:
+ return 'GET {}/{}'.format(self.resource, self.method)