summaryrefslogtreecommitdiffstats
path: root/external_libs/python/zmq/backend/cffi/message.py
diff options
context:
space:
mode:
authorDan Klein <danklei@cisco.com>2015-08-24 17:28:17 +0300
committerDan Klein <danklei@cisco.com>2015-08-24 17:28:17 +0300
commit7d3be8c612e295820649779335288c197b80ccb2 (patch)
tree78e9636bc8780dedc919c30378a621f425e1cbfc /external_libs/python/zmq/backend/cffi/message.py
parentdab741a80699f86e86c91718872a052cca9bbb25 (diff)
Changes location of console and fixed dependencies
Diffstat (limited to 'external_libs/python/zmq/backend/cffi/message.py')
-rw-r--r--external_libs/python/zmq/backend/cffi/message.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/external_libs/python/zmq/backend/cffi/message.py b/external_libs/python/zmq/backend/cffi/message.py
new file mode 100644
index 00000000..c35decb6
--- /dev/null
+++ b/external_libs/python/zmq/backend/cffi/message.py
@@ -0,0 +1,69 @@
+"""Dummy Frame object"""
+
+# Copyright (C) PyZMQ Developers
+# Distributed under the terms of the Modified BSD License.
+
+from ._cffi import ffi, C
+
+import zmq
+from zmq.utils.strtypes import unicode
+
+try:
+ view = memoryview
+except NameError:
+ view = buffer
+
+_content = lambda x: x.tobytes() if type(x) == memoryview else x
+
+class Frame(object):
+ _data = None
+ tracker = None
+ closed = False
+ more = False
+ buffer = None
+
+
+ def __init__(self, data, track=False):
+ try:
+ view(data)
+ except TypeError:
+ raise
+
+ self._data = data
+
+ if isinstance(data, unicode):
+ raise TypeError("Unicode objects not allowed. Only: str/bytes, " +
+ "buffer interfaces.")
+
+ self.more = False
+ self.tracker = None
+ self.closed = False
+ if track:
+ self.tracker = zmq.MessageTracker()
+
+ self.buffer = view(self.bytes)
+
+ @property
+ def bytes(self):
+ data = _content(self._data)
+ return data
+
+ def __len__(self):
+ return len(self.bytes)
+
+ def __eq__(self, other):
+ return self.bytes == _content(other)
+
+ def __str__(self):
+ if str is unicode:
+ return self.bytes.decode()
+ else:
+ return self.bytes
+
+ @property
+ def done(self):
+ return True
+
+Message = Frame
+
+__all__ = ['Frame', 'Message']