1aec3c8f4Simarom/* Generated by Cython 0.21.2 */
2aec3c8f4Simarom
3aec3c8f4Simarom#define PY_SSIZE_T_CLEAN
4aec3c8f4Simarom#ifndef CYTHON_USE_PYLONG_INTERNALS
5aec3c8f4Simarom#ifdef PYLONG_BITS_IN_DIGIT
6aec3c8f4Simarom#define CYTHON_USE_PYLONG_INTERNALS 0
7aec3c8f4Simarom#else
8aec3c8f4Simarom#include "pyconfig.h"
9aec3c8f4Simarom#ifdef PYLONG_BITS_IN_DIGIT
10aec3c8f4Simarom#define CYTHON_USE_PYLONG_INTERNALS 1
11aec3c8f4Simarom#else
12aec3c8f4Simarom#define CYTHON_USE_PYLONG_INTERNALS 0
13aec3c8f4Simarom#endif
14aec3c8f4Simarom#endif
15aec3c8f4Simarom#endif
16aec3c8f4Simarom#include "Python.h"
17aec3c8f4Simarom#ifndef Py_PYTHON_H
18aec3c8f4Simarom    #error Python headers needed to compile C extensions, please install development version of Python.
19aec3c8f4Simarom#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000)
20aec3c8f4Simarom    #error Cython requires Python 2.6+ or Python 3.2+.
21aec3c8f4Simarom#else
22aec3c8f4Simarom#define CYTHON_ABI "0_21_2"
23aec3c8f4Simarom#include <stddef.h>
24aec3c8f4Simarom#ifndef offsetof
25aec3c8f4Simarom#define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
26aec3c8f4Simarom#endif
27aec3c8f4Simarom#if !defined(WIN32) && !defined(MS_WINDOWS)
28aec3c8f4Simarom  #ifndef __stdcall
29aec3c8f4Simarom    #define __stdcall
30aec3c8f4Simarom  #endif
31aec3c8f4Simarom  #ifndef __cdecl
32aec3c8f4Simarom    #define __cdecl
33aec3c8f4Simarom  #endif
34aec3c8f4Simarom  #ifndef __fastcall
35aec3c8f4Simarom    #define __fastcall
36aec3c8f4Simarom  #endif
37aec3c8f4Simarom#endif
38aec3c8f4Simarom#ifndef DL_IMPORT
39aec3c8f4Simarom  #define DL_IMPORT(t) t
40aec3c8f4Simarom#endif
41aec3c8f4Simarom#ifndef DL_EXPORT
42aec3c8f4Simarom  #define DL_EXPORT(t) t
43aec3c8f4Simarom#endif
44aec3c8f4Simarom#ifndef PY_LONG_LONG
45aec3c8f4Simarom  #define PY_LONG_LONG LONG_LONG
46aec3c8f4Simarom#endif
47aec3c8f4Simarom#ifndef Py_HUGE_VAL
48aec3c8f4Simarom  #define Py_HUGE_VAL HUGE_VAL
49aec3c8f4Simarom#endif
50aec3c8f4Simarom#ifdef PYPY_VERSION
51aec3c8f4Simarom#define CYTHON_COMPILING_IN_PYPY 1
52aec3c8f4Simarom#define CYTHON_COMPILING_IN_CPYTHON 0
53aec3c8f4Simarom#else
54aec3c8f4Simarom#define CYTHON_COMPILING_IN_PYPY 0
55aec3c8f4Simarom#define CYTHON_COMPILING_IN_CPYTHON 1
56aec3c8f4Simarom#endif
57aec3c8f4Simarom#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600
58aec3c8f4Simarom#define Py_OptimizeFlag 0
59aec3c8f4Simarom#endif
60aec3c8f4Simarom#define __PYX_BUILD_PY_SSIZE_T "n"
61aec3c8f4Simarom#define CYTHON_FORMAT_SSIZE_T "z"
62aec3c8f4Simarom#if PY_MAJOR_VERSION < 3
63aec3c8f4Simarom  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
64aec3c8f4Simarom  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
65aec3c8f4Simarom          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
66aec3c8f4Simarom  #define __Pyx_DefaultClassType PyClass_Type
67aec3c8f4Simarom#else
68aec3c8f4Simarom  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
69aec3c8f4Simarom  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
70aec3c8f4Simarom          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
71aec3c8f4Simarom  #define __Pyx_DefaultClassType PyType_Type
72aec3c8f4Simarom#endif
73aec3c8f4Simarom#if PY_MAJOR_VERSION >= 3
74aec3c8f4Simarom  #define Py_TPFLAGS_CHECKTYPES 0
75aec3c8f4Simarom  #define Py_TPFLAGS_HAVE_INDEX 0
76aec3c8f4Simarom  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
77aec3c8f4Simarom#endif
78aec3c8f4Simarom#if PY_VERSION_HEX < 0x030400a1 && !defined(Py_TPFLAGS_HAVE_FINALIZE)
79aec3c8f4Simarom  #define Py_TPFLAGS_HAVE_FINALIZE 0
80aec3c8f4Simarom#endif
81aec3c8f4Simarom#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
82aec3c8f4Simarom  #define CYTHON_PEP393_ENABLED 1
83aec3c8f4Simarom  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ? \
84aec3c8f4Simarom                                              0 : _PyUnicode_Ready((PyObject *)(op)))
85aec3c8f4Simarom  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
86aec3c8f4Simarom  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
87aec3c8f4Simarom  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
88aec3c8f4Simarom  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
89aec3c8f4Simarom  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
90aec3c8f4Simarom#else
91aec3c8f4Simarom  #define CYTHON_PEP393_ENABLED 0
92aec3c8f4Simarom  #define __Pyx_PyUnicode_READY(op)       (0)
93aec3c8f4Simarom  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
94aec3c8f4Simarom  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
95aec3c8f4Simarom  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
96aec3c8f4Simarom  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
97aec3c8f4Simarom  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
98aec3c8f4Simarom#endif
99aec3c8f4Simarom#if CYTHON_COMPILING_IN_PYPY
100aec3c8f4Simarom  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
101aec3c8f4Simarom  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
102aec3c8f4Simarom  #define __Pyx_PyFrozenSet_Size(s)         PyObject_Size(s)
103aec3c8f4Simarom#else
104aec3c8f4Simarom  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
105aec3c8f4Simarom  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ? \
106aec3c8f4Simarom      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
107aec3c8f4Simarom  #define __Pyx_PyFrozenSet_Size(s)         PySet_Size(s)
108aec3c8f4Simarom#endif
109aec3c8f4Simarom#define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
110aec3c8f4Simarom#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
111aec3c8f4Simarom#if PY_MAJOR_VERSION >= 3
112aec3c8f4Simarom  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
113aec3c8f4Simarom#else
114aec3c8f4Simarom  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
115aec3c8f4Simarom#endif
116aec3c8f4Simarom#if PY_MAJOR_VERSION >= 3
117aec3c8f4Simarom  #define PyBaseString_Type            PyUnicode_Type
118aec3c8f4Simarom  #define PyStringObject               PyUnicodeObject
119aec3c8f4Simarom  #define PyString_Type                PyUnicode_Type
120aec3c8f4Simarom  #define PyString_Check               PyUnicode_Check
121aec3c8f4Simarom  #define PyString_CheckExact          PyUnicode_CheckExact
122aec3c8f4Simarom#endif
123aec3c8f4Simarom#if PY_MAJOR_VERSION >= 3
124aec3c8f4Simarom  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
125aec3c8f4Simarom  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
126aec3c8f4Simarom#else
127aec3c8f4Simarom  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
128aec3c8f4Simarom  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
129aec3c8f4Simarom#endif
130aec3c8f4Simarom#ifndef PySet_CheckExact
131aec3c8f4Simarom  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
132aec3c8f4Simarom#endif
133aec3c8f4Simarom#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
134aec3c8f4Simarom#if PY_MAJOR_VERSION >= 3
135aec3c8f4Simarom  #define PyIntObject                  PyLongObject
136aec3c8f4Simarom  #define PyInt_Type                   PyLong_Type
137aec3c8f4Simarom  #define PyInt_Check(op)              PyLong_Check(op)
138aec3c8f4Simarom  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
139aec3c8f4Simarom  #define PyInt_FromString             PyLong_FromString
140aec3c8f4Simarom  #define PyInt_FromUnicode            PyLong_FromUnicode
141aec3c8f4Simarom  #define PyInt_FromLong               PyLong_FromLong
142aec3c8f4Simarom  #define PyInt_FromSize_t             PyLong_FromSize_t
143aec3c8f4Simarom  #define PyInt_FromSsize_t            PyLong_FromSsize_t
144aec3c8f4Simarom  #define PyInt_AsLong                 PyLong_AsLong
145aec3c8f4Simarom  #define PyInt_AS_LONG                PyLong_AS_LONG
146aec3c8f4Simarom  #define PyInt_AsSsize_t              PyLong_AsSsize_t
147aec3c8f4Simarom  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
148aec3c8f4Simarom  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
149aec3c8f4Simarom  #define PyNumber_Int                 PyNumber_Long
150aec3c8f4Simarom#endif
151aec3c8f4Simarom#if PY_MAJOR_VERSION >= 3
152aec3c8f4Simarom  #define PyBoolObject                 PyLongObject
153aec3c8f4Simarom#endif
154aec3c8f4Simarom#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
155aec3c8f4Simarom  #ifndef PyUnicode_InternFromString
156aec3c8f4Simarom    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
157aec3c8f4Simarom  #endif
158aec3c8f4Simarom#endif
159aec3c8f4Simarom#if PY_VERSION_HEX < 0x030200A4
160aec3c8f4Simarom  typedef long Py_hash_t;
161aec3c8f4Simarom  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
162aec3c8f4Simarom  #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
163aec3c8f4Simarom#else
164aec3c8f4Simarom  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
165aec3c8f4Simarom  #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
166aec3c8f4Simarom#endif
167aec3c8f4Simarom#if PY_MAJOR_VERSION >= 3
168aec3c8f4Simarom  #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
169aec3c8f4Simarom#else
170aec3c8f4Simarom  #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
171aec3c8f4Simarom#endif
172aec3c8f4Simarom#ifndef CYTHON_INLINE
173aec3c8f4Simarom  #if defined(__GNUC__)
174aec3c8f4Simarom    #define CYTHON_INLINE __inline__
175aec3c8f4Simarom  #elif defined(_MSC_VER)
176aec3c8f4Simarom    #define CYTHON_INLINE __inline
177aec3c8f4Simarom  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
178aec3c8f4Simarom    #define CYTHON_INLINE inline
179aec3c8f4Simarom  #else
180aec3c8f4Simarom    #define CYTHON_INLINE
181aec3c8f4Simarom  #endif
182aec3c8f4Simarom#endif
183aec3c8f4Simarom#ifndef CYTHON_RESTRICT
184aec3c8f4Simarom  #if defined(__GNUC__)
185aec3c8f4Simarom    #define CYTHON_RESTRICT __restrict__
186aec3c8f4Simarom  #elif defined(_MSC_VER) && _MSC_VER >= 1400
187aec3c8f4Simarom    #define CYTHON_RESTRICT __restrict
188aec3c8f4Simarom  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
189aec3c8f4Simarom    #define CYTHON_RESTRICT restrict
190aec3c8f4Simarom  #else
191aec3c8f4Simarom    #define CYTHON_RESTRICT
192aec3c8f4Simarom  #endif
193aec3c8f4Simarom#endif
194aec3c8f4Simarom#ifdef NAN
195aec3c8f4Simarom#define __PYX_NAN() ((float) NAN)
196aec3c8f4Simarom#else
197aec3c8f4Simaromstatic CYTHON_INLINE float __PYX_NAN() {
198aec3c8f4Simarom  /* Initialize NaN. The sign is irrelevant, an exponent with all bits 1 and
199aec3c8f4Simarom   a nonzero mantissa means NaN. If the first bit in the mantissa is 1, it is
200aec3c8f4Simarom   a quiet NaN. */
201aec3c8f4Simarom  float value;
202aec3c8f4Simarom  memset(&value, 0xFF, sizeof(value));
203aec3c8f4Simarom  return value;
204aec3c8f4Simarom}
205aec3c8f4Simarom#endif
206aec3c8f4Simarom#ifdef __cplusplus
207aec3c8f4Simaromtemplate<typename T>
208aec3c8f4Simaromvoid __Pyx_call_destructor(T* x) {
209aec3c8f4Simarom    x->~T();
210aec3c8f4Simarom}
211aec3c8f4Simarom#endif
212aec3c8f4Simarom
213aec3c8f4Simarom
214aec3c8f4Simarom#if PY_MAJOR_VERSION >= 3
215aec3c8f4Simarom  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
216aec3c8f4Simarom  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
217aec3c8f4Simarom#else
218aec3c8f4Simarom  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
219aec3c8f4Simarom  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
220aec3c8f4Simarom#endif
221aec3c8f4Simarom
222aec3c8f4Simarom#ifndef __PYX_EXTERN_C
223aec3c8f4Simarom  #ifdef __cplusplus
224aec3c8f4Simarom    #define __PYX_EXTERN_C extern "C"
225aec3c8f4Simarom  #else
226aec3c8f4Simarom    #define __PYX_EXTERN_C extern
227aec3c8f4Simarom  #endif
228aec3c8f4Simarom#endif
229aec3c8f4Simarom
230aec3c8f4Simarom#if defined(WIN32) || defined(MS_WINDOWS)
231aec3c8f4Simarom#define _USE_MATH_DEFINES
232aec3c8f4Simarom#endif
233aec3c8f4Simarom#include <math.h>
234aec3c8f4Simarom#define __PYX_HAVE__zmq__backend__cython__message
235aec3c8f4Simarom#define __PYX_HAVE_API__zmq__backend__cython__message
236aec3c8f4Simarom#include "string.h"
237aec3c8f4Simarom#include "stdio.h"
238aec3c8f4Simarom#include "pythread.h"
239aec3c8f4Simarom#include "zmq_compat.h"
240aec3c8f4Simarom#include "zmq.h"
241aec3c8f4Simarom#include "zmq_utils.h"
242aec3c8f4Simarom#include "pyversion_compat.h"
243aec3c8f4Simarom#include "stdlib.h"
244aec3c8f4Simarom#include "errno.h"
245aec3c8f4Simarom#ifdef _OPENMP
246aec3c8f4Simarom#include <omp.h>
247aec3c8f4Simarom#endif /* _OPENMP */
248aec3c8f4Simarom
249aec3c8f4Simarom#ifdef PYREX_WITHOUT_ASSERTIONS
250aec3c8f4Simarom#define CYTHON_WITHOUT_ASSERTIONS
251aec3c8f4Simarom#endif
252aec3c8f4Simarom
253aec3c8f4Simarom#ifndef CYTHON_UNUSED
254aec3c8f4Simarom# if defined(__GNUC__)
255aec3c8f4Simarom#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
256aec3c8f4Simarom#     define CYTHON_UNUSED __attribute__ ((__unused__))
257aec3c8f4Simarom#   else
258aec3c8f4Simarom#     define CYTHON_UNUSED
259aec3c8f4Simarom#   endif
260aec3c8f4Simarom# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
261aec3c8f4Simarom#   define CYTHON_UNUSED __attribute__ ((__unused__))
262aec3c8f4Simarom# else
263aec3c8f4Simarom#   define CYTHON_UNUSED
264aec3c8f4Simarom# endif
265aec3c8f4Simarom#endif
266aec3c8f4Simaromtypedef struct {PyObject **p; char *s; const Py_ssize_t n; const char* encoding;
267aec3c8f4Simarom                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
268aec3c8f4Simarom
269aec3c8f4Simarom#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
270aec3c8f4Simarom#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
271aec3c8f4Simarom#define __PYX_DEFAULT_STRING_ENCODING ""
272aec3c8f4Simarom#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
273aec3c8f4Simarom#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
274aec3c8f4Simarom#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (    \
275aec3c8f4Simarom    (sizeof(type) < sizeof(Py_ssize_t))  ||             \
276aec3c8f4Simarom    (sizeof(type) > sizeof(Py_ssize_t) &&               \
277aec3c8f4Simarom          likely(v < (type)PY_SSIZE_T_MAX ||            \
278aec3c8f4Simarom                 v == (type)PY_SSIZE_T_MAX)  &&         \
279aec3c8f4Simarom          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||       \
280aec3c8f4Simarom                                v == (type)PY_SSIZE_T_MIN)))  ||  \
281aec3c8f4Simarom    (sizeof(type) == sizeof(Py_ssize_t) &&              \
282aec3c8f4Simarom          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||        \
283aec3c8f4Simarom                               v == (type)PY_SSIZE_T_MAX)))  )
284aec3c8f4Simaromstatic CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*);
285aec3c8f4Simaromstatic CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
286aec3c8f4Simarom#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
287aec3c8f4Simarom#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
288aec3c8f4Simarom#define __Pyx_PyBytes_FromString        PyBytes_FromString
289aec3c8f4Simarom#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
290aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
291aec3c8f4Simarom#if PY_MAJOR_VERSION < 3
292aec3c8f4Simarom    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
293aec3c8f4Simarom    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
294aec3c8f4Simarom#else
295aec3c8f4Simarom    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
296aec3c8f4Simarom    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
297aec3c8f4Simarom#endif
298aec3c8f4Simarom#define __Pyx_PyObject_AsSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
299aec3c8f4Simarom#define __Pyx_PyObject_AsUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
300aec3c8f4Simarom#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const char*)s)
301aec3c8f4Simarom#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
302aec3c8f4Simarom#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const char*)s)
303aec3c8f4Simarom#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
304aec3c8f4Simarom#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const char*)s)
305aec3c8f4Simarom#if PY_MAJOR_VERSION < 3
306aec3c8f4Simaromstatic CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
307aec3c8f4Simarom{
308aec3c8f4Simarom    const Py_UNICODE *u_end = u;
309aec3c8f4Simarom    while (*u_end++) ;
310aec3c8f4Simarom    return (size_t)(u_end - u - 1);
311aec3c8f4Simarom}
312aec3c8f4Simarom#else
313aec3c8f4Simarom#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
314aec3c8f4Simarom#endif
315aec3c8f4Simarom#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
316aec3c8f4Simarom#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
317aec3c8f4Simarom#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
318aec3c8f4Simarom#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
319aec3c8f4Simarom#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
320aec3c8f4Simaromstatic CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
321aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
322aec3c8f4Simaromstatic CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
323aec3c8f4Simaromstatic CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
324aec3c8f4Simarom#if CYTHON_COMPILING_IN_CPYTHON
325aec3c8f4Simarom#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
326aec3c8f4Simarom#else
327aec3c8f4Simarom#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
328aec3c8f4Simarom#endif
329aec3c8f4Simarom#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
330aec3c8f4Simarom#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
331aec3c8f4Simaromstatic int __Pyx_sys_getdefaultencoding_not_ascii;
332aec3c8f4Simaromstatic int __Pyx_init_sys_getdefaultencoding_params(void) {
333aec3c8f4Simarom    PyObject* sys;
334aec3c8f4Simarom    PyObject* default_encoding = NULL;
335aec3c8f4Simarom    PyObject* ascii_chars_u = NULL;
336aec3c8f4Simarom    PyObject* ascii_chars_b = NULL;
337aec3c8f4Simarom    const char* default_encoding_c;
338aec3c8f4Simarom    sys = PyImport_ImportModule("sys");
339aec3c8f4Simarom    if (!sys) goto bad;
340aec3c8f4Simarom    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
341aec3c8f4Simarom    Py_DECREF(sys);
342aec3c8f4Simarom    if (!default_encoding) goto bad;
343aec3c8f4Simarom    default_encoding_c = PyBytes_AsString(default_encoding);
344aec3c8f4Simarom    if (!default_encoding_c) goto bad;
345aec3c8f4Simarom    if (strcmp(default_encoding_c, "ascii") == 0) {
346aec3c8f4Simarom        __Pyx_sys_getdefaultencoding_not_ascii = 0;
347aec3c8f4Simarom    } else {
348aec3c8f4Simarom        char ascii_chars[128];
349aec3c8f4Simarom        int c;
350aec3c8f4Simarom        for (c = 0; c < 128; c++) {
351aec3c8f4Simarom            ascii_chars[c] = c;
352aec3c8f4Simarom        }
353aec3c8f4Simarom        __Pyx_sys_getdefaultencoding_not_ascii = 1;
354aec3c8f4Simarom        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
355aec3c8f4Simarom        if (!ascii_chars_u) goto bad;
356aec3c8f4Simarom        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
357aec3c8f4Simarom        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
358aec3c8f4Simarom            PyErr_Format(
359aec3c8f4Simarom                PyExc_ValueError,
360aec3c8f4Simarom                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
361aec3c8f4Simarom                default_encoding_c);
362aec3c8f4Simarom            goto bad;
363aec3c8f4Simarom        }
364aec3c8f4Simarom        Py_DECREF(ascii_chars_u);
365aec3c8f4Simarom        Py_DECREF(ascii_chars_b);
366aec3c8f4Simarom    }
367aec3c8f4Simarom    Py_DECREF(default_encoding);
368aec3c8f4Simarom    return 0;
369aec3c8f4Simarombad:
370aec3c8f4Simarom    Py_XDECREF(default_encoding);
371aec3c8f4Simarom    Py_XDECREF(ascii_chars_u);
372aec3c8f4Simarom    Py_XDECREF(ascii_chars_b);
373aec3c8f4Simarom    return -1;
374aec3c8f4Simarom}
375aec3c8f4Simarom#endif
376aec3c8f4Simarom#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
377aec3c8f4Simarom#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
378aec3c8f4Simarom#else
379aec3c8f4Simarom#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
380aec3c8f4Simarom#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
381aec3c8f4Simaromstatic char* __PYX_DEFAULT_STRING_ENCODING;
382aec3c8f4Simaromstatic int __Pyx_init_sys_getdefaultencoding_params(void) {
383aec3c8f4Simarom    PyObject* sys;
384aec3c8f4Simarom    PyObject* default_encoding = NULL;
385aec3c8f4Simarom    char* default_encoding_c;
386aec3c8f4Simarom    sys = PyImport_ImportModule("sys");
387aec3c8f4Simarom    if (!sys) goto bad;
388aec3c8f4Simarom    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
389aec3c8f4Simarom    Py_DECREF(sys);
390aec3c8f4Simarom    if (!default_encoding) goto bad;
391aec3c8f4Simarom    default_encoding_c = PyBytes_AsString(default_encoding);
392aec3c8f4Simarom    if (!default_encoding_c) goto bad;
393aec3c8f4Simarom    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c));
394aec3c8f4Simarom    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
395aec3c8f4Simarom    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
396aec3c8f4Simarom    Py_DECREF(default_encoding);
397aec3c8f4Simarom    return 0;
398aec3c8f4Simarombad:
399aec3c8f4Simarom    Py_XDECREF(default_encoding);
400aec3c8f4Simarom    return -1;
401aec3c8f4Simarom}
402aec3c8f4Simarom#endif
403aec3c8f4Simarom#endif
404aec3c8f4Simarom
405aec3c8f4Simarom
406aec3c8f4Simarom/* Test for GCC > 2.95 */
407aec3c8f4Simarom#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
408aec3c8f4Simarom  #define likely(x)   __builtin_expect(!!(x), 1)
409aec3c8f4Simarom  #define unlikely(x) __builtin_expect(!!(x), 0)
410aec3c8f4Simarom#else /* !__GNUC__ or GCC < 2.95 */
411aec3c8f4Simarom  #define likely(x)   (x)
412aec3c8f4Simarom  #define unlikely(x) (x)
413aec3c8f4Simarom#endif /* __GNUC__ */
414aec3c8f4Simarom
415aec3c8f4Simaromstatic PyObject *__pyx_m;
416aec3c8f4Simaromstatic PyObject *__pyx_d;
417aec3c8f4Simaromstatic PyObject *__pyx_b;
418aec3c8f4Simaromstatic PyObject *__pyx_empty_tuple;
419aec3c8f4Simaromstatic PyObject *__pyx_empty_bytes;
420aec3c8f4Simaromstatic int __pyx_lineno;
421aec3c8f4Simaromstatic int __pyx_clineno = 0;
422aec3c8f4Simaromstatic const char * __pyx_cfilenm= __FILE__;
423aec3c8f4Simaromstatic const char *__pyx_filename;
424aec3c8f4Simarom
425aec3c8f4Simarom
426aec3c8f4Simaromstatic const char *__pyx_f[] = {
427aec3c8f4Simarom  "zmq/backend/cython/message.pyx",
428aec3c8f4Simarom  "zmq/backend/cython/message.pxd",
429aec3c8f4Simarom  "zmq/backend/cython/checkrc.pxd",
430aec3c8f4Simarom  "zmq/utils/buffers.pxd",
431aec3c8f4Simarom  "type.pxd",
432aec3c8f4Simarom  "bool.pxd",
433aec3c8f4Simarom  "complex.pxd",
434aec3c8f4Simarom};
435aec3c8f4Simarom
436aec3c8f4Simarom/*--- Type declarations ---*/
437aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_7message_MessageTracker;
438aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_7message_Frame;
439aec3c8f4Simaromstruct __pyx_t_3zmq_7backend_6cython_7message_zhint;
440aec3c8f4Simaromtypedef struct __pyx_t_3zmq_7backend_6cython_7message_zhint __pyx_t_3zmq_7backend_6cython_7message_zhint;
441aec3c8f4Simarom
442aec3c8f4Simarom/* "zmq/backend/cython/message.pyx":61
443aec3c8f4Simarom * #-----------------------------------------------------------------------------
444aec3c8f4Simarom *
445aec3c8f4Simarom * ctypedef struct zhint:             # <<<<<<<<<<<<<<
446aec3c8f4Simarom *     void *ctx
447aec3c8f4Simarom *     size_t id
448aec3c8f4Simarom */
449aec3c8f4Simaromstruct __pyx_t_3zmq_7backend_6cython_7message_zhint {
450aec3c8f4Simarom  void *ctx;
451aec3c8f4Simarom  size_t id;
452aec3c8f4Simarom};
453aec3c8f4Simarom
454aec3c8f4Simarom/* "zmq/backend/cython/message.pxd":34
455aec3c8f4Simarom * #-----------------------------------------------------------------------------
456aec3c8f4Simarom *
457aec3c8f4Simarom * cdef class MessageTracker(object):             # <<<<<<<<<<<<<<
458aec3c8f4Simarom *
459aec3c8f4Simarom *     cdef set events  # Message Event objects to track.
460aec3c8f4Simarom */
461aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_7message_MessageTracker {
462aec3c8f4Simarom  PyObject_HEAD
463aec3c8f4Simarom  PyObject *events;
464aec3c8f4Simarom  PyObject *peers;
465aec3c8f4Simarom};
466aec3c8f4Simarom
467aec3c8f4Simarom
468aec3c8f4Simarom/* "zmq/backend/cython/message.pxd":40
469aec3c8f4Simarom *
470aec3c8f4Simarom *
471aec3c8f4Simarom * cdef class Frame:             # <<<<<<<<<<<<<<
472aec3c8f4Simarom *
473aec3c8f4Simarom *     cdef zmq_msg_t zmq_msg
474aec3c8f4Simarom */
475aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_7message_Frame {
476aec3c8f4Simarom  PyObject_HEAD
477aec3c8f4Simarom  struct __pyx_vtabstruct_3zmq_7backend_6cython_7message_Frame *__pyx_vtab;
478aec3c8f4Simarom  zmq_msg_t zmq_msg;
479aec3c8f4Simarom  PyObject *_data;
480aec3c8f4Simarom  PyObject *_buffer;
481aec3c8f4Simarom  PyObject *_bytes;
482aec3c8f4Simarom  int _failed_init;
483aec3c8f4Simarom  PyObject *tracker_event;
484aec3c8f4Simarom  PyObject *tracker;
485aec3c8f4Simarom  int more;
486aec3c8f4Simarom};
487aec3c8f4Simarom
488aec3c8f4Simarom
489aec3c8f4Simarom
490aec3c8f4Simarom/* "zmq/backend/cython/message.pyx":111
491aec3c8f4Simarom * gc = None
492aec3c8f4Simarom *
493aec3c8f4Simarom * cdef class Frame:             # <<<<<<<<<<<<<<
494aec3c8f4Simarom *     """Frame(data=None, track=False)
495aec3c8f4Simarom *
496aec3c8f4Simarom */
497aec3c8f4Simarom
498aec3c8f4Simaromstruct __pyx_vtabstruct_3zmq_7backend_6cython_7message_Frame {
499aec3c8f4Simarom  struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *(*fast_copy)(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *);
500aec3c8f4Simarom  PyObject *(*_getbuffer)(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *);
501aec3c8f4Simarom};
502aec3c8f4Simaromstatic struct __pyx_vtabstruct_3zmq_7backend_6cython_7message_Frame *__pyx_vtabptr_3zmq_7backend_6cython_7message_Frame;
503aec3c8f4Simaromstatic PyObject *__pyx_f_3zmq_7backend_6cython_7message_5Frame__getbuffer(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *);
504aec3c8f4Simarom#ifndef CYTHON_REFNANNY
505aec3c8f4Simarom  #define CYTHON_REFNANNY 0
506aec3c8f4Simarom#endif
507aec3c8f4Simarom#if CYTHON_REFNANNY
508aec3c8f4Simarom  typedef struct {
509aec3c8f4Simarom    void (*INCREF)(void*, PyObject*, int);
510aec3c8f4Simarom    void (*DECREF)(void*, PyObject*, int);
511aec3c8f4Simarom    void (*GOTREF)(void*, PyObject*, int);
512aec3c8f4Simarom    void (*GIVEREF)(void*, PyObject*, int);
513aec3c8f4Simarom    void* (*SetupContext)(const char*, int, const char*);
514aec3c8f4Simarom    void (*FinishContext)(void**);
515aec3c8f4Simarom  } __Pyx_RefNannyAPIStruct;
516aec3c8f4Simarom  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
517aec3c8f4Simarom  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
518aec3c8f4Simarom  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
519aec3c8f4Simarom#ifdef WITH_THREAD
520aec3c8f4Simarom  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
521aec3c8f4Simarom          if (acquire_gil) { \
522aec3c8f4Simarom              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \
523aec3c8f4Simarom              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
524aec3c8f4Simarom              PyGILState_Release(__pyx_gilstate_save); \
525aec3c8f4Simarom          } else { \
526aec3c8f4Simarom              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
527aec3c8f4Simarom          }
528aec3c8f4Simarom#else
529aec3c8f4Simarom  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
530aec3c8f4Simarom          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
531aec3c8f4Simarom#endif
532aec3c8f4Simarom  #define __Pyx_RefNannyFinishContext() \
533aec3c8f4Simarom          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
534aec3c8f4Simarom  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
535aec3c8f4Simarom  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
536aec3c8f4Simarom  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
537aec3c8f4Simarom  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
538aec3c8f4Simarom  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
539aec3c8f4Simarom  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
540aec3c8f4Simarom  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
541aec3c8f4Simarom  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
542aec3c8f4Simarom#else
543aec3c8f4Simarom  #define __Pyx_RefNannyDeclarations
544aec3c8f4Simarom  #define __Pyx_RefNannySetupContext(name, acquire_gil)
545aec3c8f4Simarom  #define __Pyx_RefNannyFinishContext()
546aec3c8f4Simarom  #define __Pyx_INCREF(r) Py_INCREF(r)
547aec3c8f4Simarom  #define __Pyx_DECREF(r) Py_DECREF(r)
548aec3c8f4Simarom  #define __Pyx_GOTREF(r)
549aec3c8f4Simarom  #define __Pyx_GIVEREF(r)
550aec3c8f4Simarom  #define __Pyx_XINCREF(r) Py_XINCREF(r)
551aec3c8f4Simarom  #define __Pyx_XDECREF(r) Py_XDECREF(r)
552aec3c8f4Simarom  #define __Pyx_XGOTREF(r)
553aec3c8f4Simarom  #define __Pyx_XGIVEREF(r)
554aec3c8f4Simarom#endif
555aec3c8f4Simarom#define __Pyx_XDECREF_SET(r, v) do {                            \
556aec3c8f4Simarom        PyObject *tmp = (PyObject *) r;                         \
557aec3c8f4Simarom        r = v; __Pyx_XDECREF(tmp);                              \
558aec3c8f4Simarom    } while (0)
559aec3c8f4Simarom#define __Pyx_DECREF_SET(r, v) do {                             \
560aec3c8f4Simarom        PyObject *tmp = (PyObject *) r;                         \
561aec3c8f4Simarom        r = v; __Pyx_DECREF(tmp);                               \
562aec3c8f4Simarom    } while (0)
563aec3c8f4Simarom#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
564aec3c8f4Simarom#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
565aec3c8f4Simarom
566aec3c8f4Simarom#if CYTHON_COMPILING_IN_CPYTHON
567aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
568aec3c8f4Simarom    PyTypeObject* tp = Py_TYPE(obj);
569aec3c8f4Simarom    if (likely(tp->tp_getattro))
570aec3c8f4Simarom        return tp->tp_getattro(obj, attr_name);
571aec3c8f4Simarom#if PY_MAJOR_VERSION < 3
572aec3c8f4Simarom    if (likely(tp->tp_getattr))
573aec3c8f4Simarom        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
574aec3c8f4Simarom#endif
575aec3c8f4Simarom    return PyObject_GetAttr(obj, attr_name);
576aec3c8f4Simarom}
577aec3c8f4Simarom#else
578aec3c8f4Simarom#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
579aec3c8f4Simarom#endif
580aec3c8f4Simarom
581aec3c8f4Simaromstatic PyObject *__Pyx_GetBuiltinName(PyObject *name);
582aec3c8f4Simarom
583aec3c8f4Simaromstatic void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
584aec3c8f4Simarom
585aec3c8f4Simaromstatic int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \
586aec3c8f4Simarom    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \
587aec3c8f4Simarom    const char* function_name);
588aec3c8f4Simarom
589aec3c8f4Simaromstatic void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
590aec3c8f4Simarom    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
591aec3c8f4Simarom
592aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name);
593aec3c8f4Simarom
594aec3c8f4Simarom#if CYTHON_COMPILING_IN_CPYTHON
595aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
596aec3c8f4Simarom#else
597aec3c8f4Simarom#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
598aec3c8f4Simarom#endif
599aec3c8f4Simarom
600aec3c8f4Simarom#if CYTHON_COMPILING_IN_CPYTHON
601aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
602aec3c8f4Simarom#endif
603aec3c8f4Simarom
604aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
605aec3c8f4Simarom
606aec3c8f4Simarom#if CYTHON_COMPILING_IN_CPYTHON
607aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
608aec3c8f4Simarom#else
609aec3c8f4Simarom#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
610aec3c8f4Simarom#endif
611aec3c8f4Simarom
612aec3c8f4Simaromstatic CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb);
613aec3c8f4Simaromstatic CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb);
614aec3c8f4Simarom
615aec3c8f4Simaromstatic void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
616aec3c8f4Simarom
617aec3c8f4Simaromstatic PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
618aec3c8f4Simarom
619aec3c8f4Simaromstatic void __Pyx_WriteUnraisable(const char *name, int clineno,
620aec3c8f4Simarom                                  int lineno, const char *filename,
621aec3c8f4Simarom                                  int full_traceback);
622aec3c8f4Simarom
623aec3c8f4Simarom#include <string.h>
624aec3c8f4Simarom
625aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_decode_c_string(
626aec3c8f4Simarom         const char* cstring, Py_ssize_t start, Py_ssize_t stop,
627aec3c8f4Simarom         const char* encoding, const char* errors,
628aec3c8f4Simarom         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));
629aec3c8f4Simarom
630aec3c8f4Simaromstatic CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb);
631aec3c8f4Simaromstatic void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb);
632aec3c8f4Simarom
633aec3c8f4Simaromstatic int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
634aec3c8f4Simarom
635aec3c8f4Simaromstatic int __Pyx_SetVtable(PyObject *dict, void *vtable);
636aec3c8f4Simarom
637aec3c8f4Simaromstatic PyObject *__Pyx_GetNameInClass(PyObject *nmspace, PyObject *name);
638aec3c8f4Simarom
639aec3c8f4Simaromtypedef struct {
640aec3c8f4Simarom    int code_line;
641aec3c8f4Simarom    PyCodeObject* code_object;
642aec3c8f4Simarom} __Pyx_CodeObjectCacheEntry;
643aec3c8f4Simaromstruct __Pyx_CodeObjectCache {
644aec3c8f4Simarom    int count;
645aec3c8f4Simarom    int max_count;
646aec3c8f4Simarom    __Pyx_CodeObjectCacheEntry* entries;
647aec3c8f4Simarom};
648aec3c8f4Simaromstatic struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
649aec3c8f4Simaromstatic int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
650aec3c8f4Simaromstatic PyCodeObject *__pyx_find_code_object(int code_line);
651aec3c8f4Simaromstatic void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
652aec3c8f4Simarom
653aec3c8f4Simaromstatic void __Pyx_AddTraceback(const char *funcname, int c_line,
654aec3c8f4Simarom                               int py_line, const char *filename);
655aec3c8f4Simarom
656aec3c8f4Simaromstatic PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
657aec3c8f4Simarom
658aec3c8f4Simaromstatic CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
659aec3c8f4Simarom
660aec3c8f4Simaromstatic CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);
661aec3c8f4Simarom
662aec3c8f4Simarom#ifndef __PYX_FORCE_INIT_THREADS
663aec3c8f4Simarom  #define __PYX_FORCE_INIT_THREADS 0
664aec3c8f4Simarom#endif
665aec3c8f4Simarom
666aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
667aec3c8f4Simarom
668aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
669aec3c8f4Simarom
670aec3c8f4Simaromstatic CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
671aec3c8f4Simarom
672aec3c8f4Simaromstatic int __Pyx_check_binary_version(void);
673aec3c8f4Simarom
674aec3c8f4Simarom#if !defined(__Pyx_PyIdentifier_FromString)
675aec3c8f4Simarom#if PY_MAJOR_VERSION < 3
676aec3c8f4Simarom  #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
677aec3c8f4Simarom#else
678aec3c8f4Simarom  #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
679aec3c8f4Simarom#endif
680aec3c8f4Simarom#endif
681aec3c8f4Simarom
682aec3c8f4Simaromstatic PyObject *__Pyx_ImportModule(const char *name);
683aec3c8f4Simarom
684aec3c8f4Simaromstatic PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict);
685aec3c8f4Simarom
686aec3c8f4Simaromstatic int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
687aec3c8f4Simarom
688aec3c8f4Simaromstatic struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_f_3zmq_7backend_6cython_7message_5Frame_fast_copy(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto*/
689aec3c8f4Simaromstatic PyObject *__pyx_f_3zmq_7backend_6cython_7message_5Frame__getbuffer(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto*/
690aec3c8f4Simarom
691aec3c8f4Simarom/* Module declarations from 'cpython.version' */
692aec3c8f4Simarom
693aec3c8f4Simarom/* Module declarations from 'cpython.ref' */
694aec3c8f4Simarom
695aec3c8f4Simarom/* Module declarations from 'cpython.exc' */
696aec3c8f4Simarom
697aec3c8f4Simarom/* Module declarations from 'cpython.module' */
698aec3c8f4Simarom
699aec3c8f4Simarom/* Module declarations from 'cpython.mem' */
700aec3c8f4Simarom
701aec3c8f4Simarom/* Module declarations from 'cpython.tuple' */
702aec3c8f4Simarom
703aec3c8f4Simarom/* Module declarations from 'cpython.list' */
704aec3c8f4Simarom
705aec3c8f4Simarom/* Module declarations from 'libc.string' */
706aec3c8f4Simarom
707aec3c8f4Simarom/* Module declarations from 'libc.stdio' */
708aec3c8f4Simarom
709aec3c8f4Simarom/* Module declarations from 'cpython.object' */
710aec3c8f4Simarom
711aec3c8f4Simarom/* Module declarations from 'cpython.sequence' */
712aec3c8f4Simarom
713aec3c8f4Simarom/* Module declarations from 'cpython.mapping' */
714aec3c8f4Simarom
715aec3c8f4Simarom/* Module declarations from 'cpython.iterator' */
716aec3c8f4Simarom
717aec3c8f4Simarom/* Module declarations from '__builtin__' */
718aec3c8f4Simarom
719aec3c8f4Simarom/* Module declarations from 'cpython.type' */
720aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
721aec3c8f4Simarom
722aec3c8f4Simarom/* Module declarations from 'cpython.number' */
723aec3c8f4Simarom
724aec3c8f4Simarom/* Module declarations from 'cpython.int' */
725aec3c8f4Simarom
726aec3c8f4Simarom/* Module declarations from '__builtin__' */
727aec3c8f4Simarom
728aec3c8f4Simarom/* Module declarations from 'cpython.bool' */
729aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0;
730aec3c8f4Simarom
731aec3c8f4Simarom/* Module declarations from 'cpython.long' */
732aec3c8f4Simarom
733aec3c8f4Simarom/* Module declarations from 'cpython.float' */
734aec3c8f4Simarom
735aec3c8f4Simarom/* Module declarations from '__builtin__' */
736aec3c8f4Simarom
737aec3c8f4Simarom/* Module declarations from 'cpython.complex' */
738aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0;
739aec3c8f4Simarom
740aec3c8f4Simarom/* Module declarations from 'cpython.string' */
741aec3c8f4Simarom
742aec3c8f4Simarom/* Module declarations from 'cpython.unicode' */
743aec3c8f4Simarom
744aec3c8f4Simarom/* Module declarations from 'cpython.dict' */
745aec3c8f4Simarom
746aec3c8f4Simarom/* Module declarations from 'cpython.instance' */
747aec3c8f4Simarom
748aec3c8f4Simarom/* Module declarations from 'cpython.function' */
749aec3c8f4Simarom
750aec3c8f4Simarom/* Module declarations from 'cpython.method' */
751aec3c8f4Simarom
752aec3c8f4Simarom/* Module declarations from 'cpython.weakref' */
753aec3c8f4Simarom
754aec3c8f4Simarom/* Module declarations from 'cpython.getargs' */
755aec3c8f4Simarom
756aec3c8f4Simarom/* Module declarations from 'cpython.pythread' */
757aec3c8f4Simarom
758aec3c8f4Simarom/* Module declarations from 'cpython.pystate' */
759aec3c8f4Simarom
760aec3c8f4Simarom/* Module declarations from 'cpython.cobject' */
761aec3c8f4Simarom
762aec3c8f4Simarom/* Module declarations from 'cpython.oldbuffer' */
763aec3c8f4Simarom
764aec3c8f4Simarom/* Module declarations from 'cpython.set' */
765aec3c8f4Simarom
766aec3c8f4Simarom/* Module declarations from 'cpython.buffer' */
767aec3c8f4Simarom
768aec3c8f4Simarom/* Module declarations from 'cpython.bytes' */
769aec3c8f4Simarom
770aec3c8f4Simarom/* Module declarations from 'cpython.pycapsule' */
771aec3c8f4Simarom
772aec3c8f4Simarom/* Module declarations from 'cpython' */
773aec3c8f4Simarom
774aec3c8f4Simarom/* Module declarations from 'zmq.backend.cython.libzmq' */
775aec3c8f4Simarom
776aec3c8f4Simarom/* Module declarations from 'buffers' */
777aec3c8f4Simaromstatic CYTHON_INLINE int __pyx_f_7buffers_memoryview_available(void); /*proto*/
778aec3c8f4Simaromstatic CYTHON_INLINE int __pyx_f_7buffers_oldstyle_available(void); /*proto*/
779aec3c8f4Simaromstatic CYTHON_INLINE int __pyx_f_7buffers_check_buffer(PyObject *); /*proto*/
780aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_asbuffer(PyObject *, int, int, void **, Py_ssize_t *, Py_ssize_t *); /*proto*/
781aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_asbuffer_r(PyObject *, void **, Py_ssize_t *); /*proto*/
782aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_frombuffer_3(void *, Py_ssize_t, int); /*proto*/
783aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_frombuffer_2(void *, Py_ssize_t, int); /*proto*/
784aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_frombuffer(void *, Py_ssize_t, int); /*proto*/
785aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_viewfromobject(PyObject *, int); /*proto*/
786aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_viewfromobject_r(PyObject *); /*proto*/
787aec3c8f4Simarom
788aec3c8f4Simarom/* Module declarations from 'libc.stdlib' */
789aec3c8f4Simarom
790aec3c8f4Simarom/* Module declarations from 'libc.errno' */
791aec3c8f4Simarom
792aec3c8f4Simarom/* Module declarations from 'zmq.backend.cython.checkrc' */
793aec3c8f4Simaromstatic CYTHON_INLINE int __pyx_f_3zmq_7backend_6cython_7checkrc__check_rc(int); /*proto*/
794aec3c8f4Simarom
795aec3c8f4Simarom/* Module declarations from 'zmq.backend.cython.message' */
796aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_3zmq_7backend_6cython_7message_MessageTracker = 0;
797aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_3zmq_7backend_6cython_7message_Frame = 0;
798aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_7message_copy_zmq_msg_bytes(zmq_msg_t *); /*proto*/
799aec3c8f4Simaromstatic void __pyx_f_3zmq_7backend_6cython_7message_free_python_msg(void *, void *); /*proto*/
800aec3c8f4Simarom#define __Pyx_MODULE_NAME "zmq.backend.cython.message"
801aec3c8f4Simaromint __pyx_module_is_main_zmq__backend__cython__message = 0;
802aec3c8f4Simarom
803aec3c8f4Simarom/* Implementation of 'zmq.backend.cython.message' */
804aec3c8f4Simaromstatic PyObject *__pyx_builtin_ImportError;
805aec3c8f4Simaromstatic PyObject *__pyx_builtin_AttributeError;
806aec3c8f4Simaromstatic PyObject *__pyx_builtin_property;
807aec3c8f4Simaromstatic PyObject *__pyx_builtin_TypeError;
808aec3c8f4Simaromstatic PyObject *__pyx_builtin_SystemError;
809aec3c8f4Simaromstatic PyObject *__pyx_builtin_NotImplementedError;
810aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_7message_5Frame___cinit__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, PyObject *__pyx_v_data, PyObject *__pyx_v_track, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
811aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_7message_5Frame_2__init__(CYTHON_UNUSED struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_data, CYTHON_UNUSED PyObject *__pyx_v_track); /* proto */
812aec3c8f4Simaromstatic void __pyx_pf_3zmq_7backend_6cython_7message_5Frame_4__dealloc__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto */
813aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_7message_5Frame_6__getbuffer__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, Py_buffer *__pyx_v_buffer, CYTHON_UNUSED int __pyx_v_flags); /* proto */
814aec3c8f4Simarom#if PY_MAJOR_VERSION < 3
815aec3c8f4Simaromstatic Py_ssize_t __pyx_pf_3zmq_7backend_6cython_7message_5Frame_8__getsegcount__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, Py_ssize_t *__pyx_v_lenp); /* proto */
816aec3c8f4Simarom#endif
817aec3c8f4Simarom#if PY_MAJOR_VERSION < 3
818aec3c8f4Simaromstatic Py_ssize_t __pyx_pf_3zmq_7backend_6cython_7message_5Frame_10__getreadbuffer__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p); /* proto */
819aec3c8f4Simarom#endif
820aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_7message_5Frame_12__copy__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto */
821aec3c8f4Simaromstatic Py_ssize_t __pyx_pf_3zmq_7backend_6cython_7message_5Frame_14__len__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto */
822aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_7message_5Frame_16__str__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto */
823aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_7message_5Frame_18buffer(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto */
824aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_7message_5Frame_20bytes(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto */
825aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_7message_5Frame_22set(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, int __pyx_v_option, int __pyx_v_value); /* proto */
826aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_7message_5Frame_24get(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, PyObject *__pyx_v_option); /* proto */
827aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_7message_5Frame_13tracker_event___get__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto */
828aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_7message_5Frame_13tracker_event_2__set__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
829aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_7message_5Frame_13tracker_event_4__del__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto */
830aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_7message_5Frame_7tracker___get__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto */
831aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_7message_5Frame_7tracker_2__set__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
832aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_7message_5Frame_7tracker_4__del__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto */
833aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_7message_5Frame_4more___get__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self); /* proto */
834aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_7message_5Frame_4more_2__set__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
835aec3c8f4Simaromstatic PyObject *__pyx_tp_new_3zmq_7backend_6cython_7message_MessageTracker(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
836aec3c8f4Simaromstatic PyObject *__pyx_tp_new_3zmq_7backend_6cython_7message_Frame(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
837aec3c8f4Simaromstatic char __pyx_k_B[] = "B";
838aec3c8f4Simaromstatic char __pyx_k__7[] = "";
839aec3c8f4Simaromstatic char __pyx_k_gc[] = "gc";
840aec3c8f4Simaromstatic char __pyx_k_all[] = "__all__";
841aec3c8f4Simaromstatic char __pyx_k_zmq[] = "zmq";
842aec3c8f4Simaromstatic char __pyx_k_char[] = "char";
843aec3c8f4Simaromstatic char __pyx_k_data[] = "data";
844aec3c8f4Simaromstatic char __pyx_k_main[] = "__main__";
845aec3c8f4Simaromstatic char __pyx_k_test[] = "__test__";
846aec3c8f4Simaromstatic char __pyx_k_time[] = "time";
847aec3c8f4Simaromstatic char __pyx_k_utf8[] = "utf8";
848aec3c8f4Simaromstatic char __pyx_k_Again[] = "Again";
849aec3c8f4Simaromstatic char __pyx_k_Event[] = "Event";
850aec3c8f4Simaromstatic char __pyx_k_Frame[] = "Frame";
851aec3c8f4Simaromstatic char __pyx_k_ascii[] = "ascii";
852aec3c8f4Simaromstatic char __pyx_k_bytes[] = "bytes";
853aec3c8f4Simaromstatic char __pyx_k_dtype[] = "dtype";
854aec3c8f4Simaromstatic char __pyx_k_store[] = "store";
855aec3c8f4Simaromstatic char __pyx_k_track[] = "track";
856aec3c8f4Simaromstatic char __pyx_k_value[] = "value";
857aec3c8f4Simaromstatic char __pyx_k_buffer[] = "buffer";
858aec3c8f4Simaromstatic char __pyx_k_decode[] = "decode";
859aec3c8f4Simaromstatic char __pyx_k_encode[] = "encode";
860aec3c8f4Simaromstatic char __pyx_k_import[] = "__import__";
861aec3c8f4Simaromstatic char __pyx_k_option[] = "option";
862aec3c8f4Simaromstatic char __pyx_k_Event_2[] = "_Event";
863aec3c8f4Simaromstatic char __pyx_k_Message[] = "Message";
864aec3c8f4Simaromstatic char __pyx_k_context[] = "_context";
865aec3c8f4Simaromstatic char __pyx_k_unicode[] = "unicode";
866aec3c8f4Simaromstatic char __pyx_k_ZMQError[] = "ZMQError";
867aec3c8f4Simaromstatic char __pyx_k_itemsize[] = "itemsize";
868aec3c8f4Simaromstatic char __pyx_k_property[] = "property";
869aec3c8f4Simaromstatic char __pyx_k_typecode[] = "typecode";
870aec3c8f4Simaromstatic char __pyx_k_TypeError[] = "TypeError";
871aec3c8f4Simaromstatic char __pyx_k_threading[] = "threading";
872aec3c8f4Simaromstatic char __pyx_k_zmq_error[] = "zmq.error";
873aec3c8f4Simaromstatic char __pyx_k_basestring[] = "basestring";
874aec3c8f4Simaromstatic char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
875aec3c8f4Simaromstatic char __pyx_k_underlying[] = "underlying";
876aec3c8f4Simaromstatic char __pyx_k_ImportError[] = "ImportError";
877aec3c8f4Simaromstatic char __pyx_k_SystemError[] = "SystemError";
878aec3c8f4Simaromstatic char __pyx_k_check_version[] = "_check_version";
879aec3c8f4Simaromstatic char __pyx_k_AttributeError[] = "AttributeError";
880aec3c8f4Simaromstatic char __pyx_k_MessageTracker[] = "MessageTracker";
881aec3c8f4Simaromstatic char __pyx_k_ContextTerminated[] = "ContextTerminated";
882aec3c8f4Simaromstatic char __pyx_k_zmq_utils_garbage[] = "zmq.utils.garbage";
883aec3c8f4Simaromstatic char __pyx_k_expected_str_got_r[] = "expected str, got: %r";
884aec3c8f4Simaromstatic char __pyx_k_inproc_pyzmq_gc_01[] = "inproc://pyzmq.gc.01";
885aec3c8f4Simaromstatic char __pyx_k_zmq_utils_strtypes[] = "zmq.utils.strtypes";
886aec3c8f4Simaromstatic char __pyx_k_NotImplementedError[] = "NotImplementedError";
887aec3c8f4Simaromstatic char __pyx_k_get_string_properties[] = "get string properties";
888aec3c8f4Simaromstatic char __pyx_k_pyzmq_gc_send_failed_s[] = "pyzmq-gc send failed: %s\n";
889aec3c8f4Simaromstatic char __pyx_k_pyzmq_gc_connect_failed_s[] = "pyzmq-gc connect failed: %s\n";
890aec3c8f4Simaromstatic char __pyx_k_0MQ_Message_related_classes[] = "0MQ Message related classes.";
891aec3c8f4Simaromstatic char __pyx_k_Old_style_buffers_not_available[] = "Old style buffers not available.";
892aec3c8f4Simaromstatic char __pyx_k_r_does_not_provide_a_buffer_int[] = "%r does not provide a buffer interface.";
893aec3c8f4Simaromstatic char __pyx_k_Unicode_objects_not_allowed_Only[] = "Unicode objects not allowed. Only: str/bytes, buffer interfaces.";
894aec3c8f4Simaromstatic char __pyx_k_accessing_non_existent_buffer_se[] = "accessing non-existent buffer segment";
895aec3c8f4Simaromstatic PyObject *__pyx_n_s_Again;
896aec3c8f4Simaromstatic PyObject *__pyx_n_s_AttributeError;
897aec3c8f4Simaromstatic PyObject *__pyx_n_b_B;
898aec3c8f4Simaromstatic PyObject *__pyx_n_s_ContextTerminated;
899aec3c8f4Simaromstatic PyObject *__pyx_n_s_Event;
900aec3c8f4Simaromstatic PyObject *__pyx_n_s_Event_2;
901aec3c8f4Simaromstatic PyObject *__pyx_n_s_Frame;
902aec3c8f4Simaromstatic PyObject *__pyx_n_s_ImportError;
903aec3c8f4Simaromstatic PyObject *__pyx_n_s_Message;
904aec3c8f4Simaromstatic PyObject *__pyx_n_s_MessageTracker;
905aec3c8f4Simaromstatic PyObject *__pyx_n_s_NotImplementedError;
906aec3c8f4Simaromstatic PyObject *__pyx_kp_s_Old_style_buffers_not_available;
907aec3c8f4Simaromstatic PyObject *__pyx_n_s_SystemError;
908aec3c8f4Simaromstatic PyObject *__pyx_n_s_TypeError;
909aec3c8f4Simaromstatic PyObject *__pyx_kp_s_Unicode_objects_not_allowed_Only;
910aec3c8f4Simaromstatic PyObject *__pyx_n_s_ZMQError;
911aec3c8f4Simaromstatic PyObject *__pyx_kp_s__7;
912aec3c8f4Simaromstatic PyObject *__pyx_kp_s_accessing_non_existent_buffer_se;
913aec3c8f4Simaromstatic PyObject *__pyx_n_s_all;
914aec3c8f4Simaromstatic PyObject *__pyx_n_s_ascii;
915aec3c8f4Simaromstatic PyObject *__pyx_n_s_basestring;
916aec3c8f4Simaromstatic PyObject *__pyx_n_s_buffer;
917aec3c8f4Simaromstatic PyObject *__pyx_n_s_bytes;
918aec3c8f4Simaromstatic PyObject *__pyx_n_s_char;
919aec3c8f4Simaromstatic PyObject *__pyx_n_s_check_version;
920aec3c8f4Simaromstatic PyObject *__pyx_n_s_context;
921aec3c8f4Simaromstatic PyObject *__pyx_n_s_data;
922aec3c8f4Simaromstatic PyObject *__pyx_n_s_decode;
923aec3c8f4Simaromstatic PyObject *__pyx_n_s_dtype;
924aec3c8f4Simaromstatic PyObject *__pyx_n_s_encode;
925aec3c8f4Simaromstatic PyObject *__pyx_kp_s_expected_str_got_r;
926aec3c8f4Simaromstatic PyObject *__pyx_n_s_gc;
927aec3c8f4Simaromstatic PyObject *__pyx_kp_s_get_string_properties;
928aec3c8f4Simaromstatic PyObject *__pyx_n_s_import;
929aec3c8f4Simaromstatic PyObject *__pyx_n_s_itemsize;
930aec3c8f4Simaromstatic PyObject *__pyx_n_s_main;
931aec3c8f4Simaromstatic PyObject *__pyx_n_s_option;
932aec3c8f4Simaromstatic PyObject *__pyx_n_s_property;
933aec3c8f4Simaromstatic PyObject *__pyx_n_s_pyx_vtable;
934aec3c8f4Simaromstatic PyObject *__pyx_kp_s_r_does_not_provide_a_buffer_int;
935aec3c8f4Simaromstatic PyObject *__pyx_n_s_store;
936aec3c8f4Simaromstatic PyObject *__pyx_n_s_test;
937aec3c8f4Simaromstatic PyObject *__pyx_n_s_threading;
938aec3c8f4Simaromstatic PyObject *__pyx_n_s_time;
939aec3c8f4Simaromstatic PyObject *__pyx_n_s_track;
940aec3c8f4Simaromstatic PyObject *__pyx_n_s_typecode;
941aec3c8f4Simaromstatic PyObject *__pyx_n_s_underlying;
942aec3c8f4Simaromstatic PyObject *__pyx_n_s_unicode;
943aec3c8f4Simaromstatic PyObject *__pyx_n_s_utf8;
944aec3c8f4Simaromstatic PyObject *__pyx_n_s_value;
945aec3c8f4Simaromstatic PyObject *__pyx_n_s_zmq;
946aec3c8f4Simaromstatic PyObject *__pyx_n_s_zmq_error;
947aec3c8f4Simaromstatic PyObject *__pyx_n_s_zmq_utils_garbage;
948aec3c8f4Simaromstatic PyObject *__pyx_n_s_zmq_utils_strtypes;
949aec3c8f4Simaromstatic PyObject *__pyx_int_1;
950aec3c8f4Simaromstatic PyObject *__pyx_int_4;
951aec3c8f4Simaromstatic PyObject *__pyx_tuple_;
952aec3c8f4Simaromstatic PyObject *__pyx_tuple__2;
953aec3c8f4Simaromstatic PyObject *__pyx_tuple__3;
954aec3c8f4Simaromstatic PyObject *__pyx_tuple__4;
955aec3c8f4Simaromstatic PyObject *__pyx_tuple__5;
956aec3c8f4Simaromstatic PyObject *__pyx_tuple__6;
957aec3c8f4Simaromstatic PyObject *__pyx_tuple__8;
958aec3c8f4Simarom
959aec3c8f4Simarom/* "zmq/backend/cython/message.pyx":65
960aec3c8f4Simarom *     size_t id
961aec3c8f4Simarom *
962aec3c8f4Simarom * cdef void free_python_msg(void *data, void *vhint) nogil:             # <<<<<<<<<<<<<<
963aec3c8f4Simarom *     """A pure-C function for DECREF'ing Python-owned message data.
964aec3c8f4Simarom *
965aec3c8f4Simarom */
966aec3c8f4Simarom
967aec3c8f4Simaromstatic void __pyx_f_3zmq_7backend_6cython_7message_free_python_msg(CYTHON_UNUSED void *__pyx_v_data, void *__pyx_v_vhint) {
968aec3c8f4Simarom  void *__pyx_v_push;
969aec3c8f4Simarom  zmq_msg_t __pyx_v_msg;
970aec3c8f4Simarom  __pyx_t_3zmq_7backend_6cython_7message_zhint *__pyx_v_hint;
971aec3c8f4Simarom  int __pyx_v_rc;
972aec3c8f4Simarom  int __pyx_t_1;
973aec3c8f4Simarom
974aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":87
975aec3c8f4Simarom *     cdef void *push
976aec3c8f4Simarom *     cdef zmq_msg_t msg
977aec3c8f4Simarom *     cdef zhint *hint = <zhint *> vhint             # <<<<<<<<<<<<<<
978aec3c8f4Simarom *     if hint != NULL:
979aec3c8f4Simarom *         zmq_msg_init_size(&msg, sizeof(size_t))
980aec3c8f4Simarom */
981aec3c8f4Simarom  __pyx_v_hint = ((__pyx_t_3zmq_7backend_6cython_7message_zhint *)__pyx_v_vhint);
982aec3c8f4Simarom
983aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":88
984aec3c8f4Simarom *     cdef zmq_msg_t msg
985aec3c8f4Simarom *     cdef zhint *hint = <zhint *> vhint
986aec3c8f4Simarom *     if hint != NULL:             # <<<<<<<<<<<<<<
987aec3c8f4Simarom *         zmq_msg_init_size(&msg, sizeof(size_t))
988aec3c8f4Simarom *         memcpy(zmq_msg_data(&msg), &hint.id, sizeof(size_t))
989aec3c8f4Simarom */
990aec3c8f4Simarom  __pyx_t_1 = ((__pyx_v_hint != NULL) != 0);
991aec3c8f4Simarom  if (__pyx_t_1) {
992aec3c8f4Simarom
993aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":89
994aec3c8f4Simarom *     cdef zhint *hint = <zhint *> vhint
995aec3c8f4Simarom *     if hint != NULL:
996aec3c8f4Simarom *         zmq_msg_init_size(&msg, sizeof(size_t))             # <<<<<<<<<<<<<<
997aec3c8f4Simarom *         memcpy(zmq_msg_data(&msg), &hint.id, sizeof(size_t))
998aec3c8f4Simarom *
999aec3c8f4Simarom */
1000aec3c8f4Simarom    zmq_msg_init_size((&__pyx_v_msg), (sizeof(size_t)));
1001aec3c8f4Simarom
1002aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":90
1003aec3c8f4Simarom *     if hint != NULL:
1004aec3c8f4Simarom *         zmq_msg_init_size(&msg, sizeof(size_t))
1005aec3c8f4Simarom *         memcpy(zmq_msg_data(&msg), &hint.id, sizeof(size_t))             # <<<<<<<<<<<<<<
1006aec3c8f4Simarom *
1007aec3c8f4Simarom *         push = zmq_socket(hint.ctx, ZMQ_PUSH)
1008aec3c8f4Simarom */
1009aec3c8f4Simarom    memcpy(zmq_msg_data((&__pyx_v_msg)), (&__pyx_v_hint->id), (sizeof(size_t)));
1010aec3c8f4Simarom
1011aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":92
1012aec3c8f4Simarom *         memcpy(zmq_msg_data(&msg), &hint.id, sizeof(size_t))
1013aec3c8f4Simarom *
1014aec3c8f4Simarom *         push = zmq_socket(hint.ctx, ZMQ_PUSH)             # <<<<<<<<<<<<<<
1015aec3c8f4Simarom *         if push == NULL:
1016aec3c8f4Simarom *             # this will happen if the context has been terminated
1017aec3c8f4Simarom */
1018aec3c8f4Simarom    __pyx_v_push = zmq_socket(__pyx_v_hint->ctx, ZMQ_PUSH);
1019aec3c8f4Simarom
1020aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":93
1021aec3c8f4Simarom *
1022aec3c8f4Simarom *         push = zmq_socket(hint.ctx, ZMQ_PUSH)
1023aec3c8f4Simarom *         if push == NULL:             # <<<<<<<<<<<<<<
1024aec3c8f4Simarom *             # this will happen if the context has been terminated
1025aec3c8f4Simarom *             return
1026aec3c8f4Simarom */
1027aec3c8f4Simarom    __pyx_t_1 = ((__pyx_v_push == NULL) != 0);
1028aec3c8f4Simarom    if (__pyx_t_1) {
1029aec3c8f4Simarom
1030aec3c8f4Simarom      /* "zmq/backend/cython/message.pyx":95
1031aec3c8f4Simarom *         if push == NULL:
1032aec3c8f4Simarom *             # this will happen if the context has been terminated
1033aec3c8f4Simarom *             return             # <<<<<<<<<<<<<<
1034aec3c8f4Simarom *         rc = zmq_connect(push, "inproc://pyzmq.gc.01")
1035aec3c8f4Simarom *         if rc < 0:
1036aec3c8f4Simarom */
1037aec3c8f4Simarom      goto __pyx_L0;
1038aec3c8f4Simarom    }
1039aec3c8f4Simarom
1040aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":96
1041aec3c8f4Simarom *             # this will happen if the context has been terminated
1042aec3c8f4Simarom *             return
1043aec3c8f4Simarom *         rc = zmq_connect(push, "inproc://pyzmq.gc.01")             # <<<<<<<<<<<<<<
1044aec3c8f4Simarom *         if rc < 0:
1045aec3c8f4Simarom *             fprintf(cstderr, "pyzmq-gc connect failed: %s\n", zmq_strerror(zmq_errno()))
1046aec3c8f4Simarom */
1047aec3c8f4Simarom    __pyx_v_rc = zmq_connect(__pyx_v_push, __pyx_k_inproc_pyzmq_gc_01);
1048aec3c8f4Simarom
1049aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":97
1050aec3c8f4Simarom *             return
1051aec3c8f4Simarom *         rc = zmq_connect(push, "inproc://pyzmq.gc.01")
1052aec3c8f4Simarom *         if rc < 0:             # <<<<<<<<<<<<<<
1053aec3c8f4Simarom *             fprintf(cstderr, "pyzmq-gc connect failed: %s\n", zmq_strerror(zmq_errno()))
1054aec3c8f4Simarom *             return
1055aec3c8f4Simarom */
1056aec3c8f4Simarom    __pyx_t_1 = ((__pyx_v_rc < 0) != 0);
1057aec3c8f4Simarom    if (__pyx_t_1) {
1058aec3c8f4Simarom
1059aec3c8f4Simarom      /* "zmq/backend/cython/message.pyx":98
1060aec3c8f4Simarom *         rc = zmq_connect(push, "inproc://pyzmq.gc.01")
1061aec3c8f4Simarom *         if rc < 0:
1062aec3c8f4Simarom *             fprintf(cstderr, "pyzmq-gc connect failed: %s\n", zmq_strerror(zmq_errno()))             # <<<<<<<<<<<<<<
1063aec3c8f4Simarom *             return
1064aec3c8f4Simarom *
1065aec3c8f4Simarom */
1066aec3c8f4Simarom      fprintf(stderr, __pyx_k_pyzmq_gc_connect_failed_s, zmq_strerror(zmq_errno()));
1067aec3c8f4Simarom
1068aec3c8f4Simarom      /* "zmq/backend/cython/message.pyx":99
1069aec3c8f4Simarom *         if rc < 0:
1070aec3c8f4Simarom *             fprintf(cstderr, "pyzmq-gc connect failed: %s\n", zmq_strerror(zmq_errno()))
1071aec3c8f4Simarom *             return             # <<<<<<<<<<<<<<
1072aec3c8f4Simarom *
1073aec3c8f4Simarom *         rc = zmq_msg_send(&msg, push, 0)
1074aec3c8f4Simarom */
1075aec3c8f4Simarom      goto __pyx_L0;
1076aec3c8f4Simarom    }
1077aec3c8f4Simarom
1078aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":101
1079aec3c8f4Simarom *             return
1080aec3c8f4Simarom *
1081aec3c8f4Simarom *         rc = zmq_msg_send(&msg, push, 0)             # <<<<<<<<<<<<<<
1082aec3c8f4Simarom *         if rc < 0:
1083aec3c8f4Simarom *             fprintf(cstderr, "pyzmq-gc send failed: %s\n", zmq_strerror(zmq_errno()))
1084aec3c8f4Simarom */
1085aec3c8f4Simarom    __pyx_v_rc = zmq_msg_send((&__pyx_v_msg), __pyx_v_push, 0);
1086aec3c8f4Simarom
1087aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":102
1088aec3c8f4Simarom *
1089aec3c8f4Simarom *         rc = zmq_msg_send(&msg, push, 0)
1090aec3c8f4Simarom *         if rc < 0:             # <<<<<<<<<<<<<<
1091aec3c8f4Simarom *             fprintf(cstderr, "pyzmq-gc send failed: %s\n", zmq_strerror(zmq_errno()))
1092aec3c8f4Simarom *
1093aec3c8f4Simarom */
1094aec3c8f4Simarom    __pyx_t_1 = ((__pyx_v_rc < 0) != 0);
1095aec3c8f4Simarom    if (__pyx_t_1) {
1096aec3c8f4Simarom
1097aec3c8f4Simarom      /* "zmq/backend/cython/message.pyx":103
1098aec3c8f4Simarom *         rc = zmq_msg_send(&msg, push, 0)
1099aec3c8f4Simarom *         if rc < 0:
1100aec3c8f4Simarom *             fprintf(cstderr, "pyzmq-gc send failed: %s\n", zmq_strerror(zmq_errno()))             # <<<<<<<<<<<<<<
1101aec3c8f4Simarom *
1102aec3c8f4Simarom *         zmq_msg_close(&msg)
1103aec3c8f4Simarom */
1104aec3c8f4Simarom      fprintf(stderr, __pyx_k_pyzmq_gc_send_failed_s, zmq_strerror(zmq_errno()));
1105aec3c8f4Simarom      goto __pyx_L6;
1106aec3c8f4Simarom    }
1107aec3c8f4Simarom    __pyx_L6:;
1108aec3c8f4Simarom
1109aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":105
1110aec3c8f4Simarom *             fprintf(cstderr, "pyzmq-gc send failed: %s\n", zmq_strerror(zmq_errno()))
1111aec3c8f4Simarom *
1112aec3c8f4Simarom *         zmq_msg_close(&msg)             # <<<<<<<<<<<<<<
1113aec3c8f4Simarom *         zmq_close(push)
1114aec3c8f4Simarom *         free(hint)
1115aec3c8f4Simarom */
1116aec3c8f4Simarom    zmq_msg_close((&__pyx_v_msg));
1117aec3c8f4Simarom
1118aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":106
1119aec3c8f4Simarom *
1120aec3c8f4Simarom *         zmq_msg_close(&msg)
1121aec3c8f4Simarom *         zmq_close(push)             # <<<<<<<<<<<<<<
1122aec3c8f4Simarom *         free(hint)
1123aec3c8f4Simarom *
1124aec3c8f4Simarom */
1125aec3c8f4Simarom    zmq_close(__pyx_v_push);
1126aec3c8f4Simarom
1127aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":107
1128aec3c8f4Simarom *         zmq_msg_close(&msg)
1129aec3c8f4Simarom *         zmq_close(push)
1130aec3c8f4Simarom *         free(hint)             # <<<<<<<<<<<<<<
1131aec3c8f4Simarom *
1132aec3c8f4Simarom * gc = None
1133aec3c8f4Simarom */
1134aec3c8f4Simarom    free(__pyx_v_hint);
1135aec3c8f4Simarom    goto __pyx_L3;
1136aec3c8f4Simarom  }
1137aec3c8f4Simarom  __pyx_L3:;
1138aec3c8f4Simarom
1139aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":65
1140aec3c8f4Simarom *     size_t id
1141aec3c8f4Simarom *
1142aec3c8f4Simarom * cdef void free_python_msg(void *data, void *vhint) nogil:             # <<<<<<<<<<<<<<
1143aec3c8f4Simarom *     """A pure-C function for DECREF'ing Python-owned message data.
1144aec3c8f4Simarom *
1145aec3c8f4Simarom */
1146aec3c8f4Simarom
1147aec3c8f4Simarom  /* function exit code */
1148aec3c8f4Simarom  __pyx_L0:;
1149aec3c8f4Simarom}
1150aec3c8f4Simarom
1151aec3c8f4Simarom/* "zmq/backend/cython/message.pyx":138
1152aec3c8f4Simarom *     """
1153aec3c8f4Simarom *
1154aec3c8f4Simarom *     def __cinit__(self, object data=None, track=False, **kwargs):             # <<<<<<<<<<<<<<
1155aec3c8f4Simarom *         cdef int rc
1156aec3c8f4Simarom *         cdef char *data_c = NULL
1157aec3c8f4Simarom */
1158aec3c8f4Simarom
1159aec3c8f4Simarom/* Python wrapper */
1160aec3c8f4Simaromstatic int __pyx_pw_3zmq_7backend_6cython_7message_5Frame_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
1161aec3c8f4Simaromstatic int __pyx_pw_3zmq_7backend_6cython_7message_5Frame_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
1162aec3c8f4Simarom  PyObject *__pyx_v_data = 0;
1163aec3c8f4Simarom  PyObject *__pyx_v_track = 0;
1164aec3c8f4Simarom  CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0;
1165aec3c8f4Simarom  int __pyx_lineno = 0;
1166aec3c8f4Simarom  const char *__pyx_filename = NULL;
1167aec3c8f4Simarom  int __pyx_clineno = 0;
1168aec3c8f4Simarom  int __pyx_r;
1169aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1170aec3c8f4Simarom  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
1171aec3c8f4Simarom  __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return -1;
1172aec3c8f4Simarom  __Pyx_GOTREF(__pyx_v_kwargs);
1173aec3c8f4Simarom  {
1174aec3c8f4Simarom    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_track,0};
1175aec3c8f4Simarom    PyObject* values[2] = {0,0};
1176aec3c8f4Simarom    values[0] = ((PyObject *)Py_None);
1177aec3c8f4Simarom    values[1] = ((PyObject *)Py_False);
1178aec3c8f4Simarom    if (unlikely(__pyx_kwds)) {
1179aec3c8f4Simarom      Py_ssize_t kw_args;
1180aec3c8f4Simarom      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
1181aec3c8f4Simarom      switch (pos_args) {
1182aec3c8f4Simarom        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
1183aec3c8f4Simarom        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
1184aec3c8f4Simarom        case  0: break;
1185aec3c8f4Simarom        default: goto __pyx_L5_argtuple_error;
1186aec3c8f4Simarom      }
1187aec3c8f4Simarom      kw_args = PyDict_Size(__pyx_kwds);
1188aec3c8f4Simarom      switch (pos_args) {
1189aec3c8f4Simarom        case  0:
1190aec3c8f4Simarom        if (kw_args > 0) {
1191aec3c8f4Simarom          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data);
1192aec3c8f4Simarom          if (value) { values[0] = value; kw_args--; }
1193aec3c8f4Simarom        }
1194aec3c8f4Simarom        case  1:
1195aec3c8f4Simarom        if (kw_args > 0) {
1196aec3c8f4Simarom          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_track);
1197aec3c8f4Simarom          if (value) { values[1] = value; kw_args--; }
1198aec3c8f4Simarom        }
1199aec3c8f4Simarom      }
1200aec3c8f4Simarom      if (unlikely(kw_args > 0)) {
1201aec3c8f4Simarom        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
1202aec3c8f4Simarom      }
1203aec3c8f4Simarom    } else {
1204aec3c8f4Simarom      switch (PyTuple_GET_SIZE(__pyx_args)) {
1205aec3c8f4Simarom        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
1206aec3c8f4Simarom        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
1207aec3c8f4Simarom        case  0: break;
1208aec3c8f4Simarom        default: goto __pyx_L5_argtuple_error;
1209aec3c8f4Simarom      }
1210aec3c8f4Simarom    }
1211aec3c8f4Simarom    __pyx_v_data = values[0];
1212aec3c8f4Simarom    __pyx_v_track = values[1];
1213aec3c8f4Simarom  }
1214aec3c8f4Simarom  goto __pyx_L4_argument_unpacking_done;
1215aec3c8f4Simarom  __pyx_L5_argtuple_error:;
1216aec3c8f4Simarom  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
1217aec3c8f4Simarom  __pyx_L3_error:;
1218aec3c8f4Simarom  __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
1219aec3c8f4Simarom  __Pyx_AddTraceback("zmq.backend.cython.message.Frame.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
1220aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1221aec3c8f4Simarom  return -1;
1222aec3c8f4Simarom  __pyx_L4_argument_unpacking_done:;
1223aec3c8f4Simarom  __pyx_r = __pyx_pf_3zmq_7backend_6cython_7message_5Frame___cinit__(((struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *)__pyx_v_self), __pyx_v_data, __pyx_v_track, __pyx_v_kwargs);
1224aec3c8f4Simarom
1225aec3c8f4Simarom  /* function exit code */
1226aec3c8f4Simarom  __Pyx_XDECREF(__pyx_v_kwargs);
1227aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1228aec3c8f4Simarom  return __pyx_r;
1229aec3c8f4Simarom}
1230aec3c8f4Simarom
1231aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_7message_5Frame___cinit__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, PyObject *__pyx_v_data, PyObject *__pyx_v_track, CYTHON_UNUSED PyObject *__pyx_v_kwargs) {
1232aec3c8f4Simarom  int __pyx_v_rc;
1233aec3c8f4Simarom  char *__pyx_v_data_c;
1234aec3c8f4Simarom  Py_ssize_t __pyx_v_data_len_c;
1235aec3c8f4Simarom  __pyx_t_3zmq_7backend_6cython_7message_zhint *__pyx_v_hint;
1236aec3c8f4Simarom  PyObject *__pyx_v_evt = NULL;
1237aec3c8f4Simarom  int __pyx_r;
1238aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1239aec3c8f4Simarom  int __pyx_t_1;
1240aec3c8f4Simarom  PyObject *__pyx_t_2 = NULL;
1241aec3c8f4Simarom  PyObject *__pyx_t_3 = NULL;
1242aec3c8f4Simarom  PyObject *__pyx_t_4 = NULL;
1243aec3c8f4Simarom  PyObject *__pyx_t_5 = NULL;
1244aec3c8f4Simarom  int __pyx_t_6;
1245aec3c8f4Simarom  int __pyx_t_7;
1246aec3c8f4Simarom  Py_ssize_t __pyx_t_8;
1247aec3c8f4Simarom  size_t __pyx_t_9;
1248aec3c8f4Simarom  int __pyx_lineno = 0;
1249aec3c8f4Simarom  const char *__pyx_filename = NULL;
1250aec3c8f4Simarom  int __pyx_clineno = 0;
1251aec3c8f4Simarom  __Pyx_RefNannySetupContext("__cinit__", 0);
1252aec3c8f4Simarom
1253aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":140
1254aec3c8f4Simarom *     def __cinit__(self, object data=None, track=False, **kwargs):
1255aec3c8f4Simarom *         cdef int rc
1256aec3c8f4Simarom *         cdef char *data_c = NULL             # <<<<<<<<<<<<<<
1257aec3c8f4Simarom *         cdef Py_ssize_t data_len_c=0
1258aec3c8f4Simarom *         cdef zhint *hint
1259aec3c8f4Simarom */
1260aec3c8f4Simarom  __pyx_v_data_c = NULL;
1261aec3c8f4Simarom
1262aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":141
1263aec3c8f4Simarom *         cdef int rc
1264aec3c8f4Simarom *         cdef char *data_c = NULL
1265aec3c8f4Simarom *         cdef Py_ssize_t data_len_c=0             # <<<<<<<<<<<<<<
1266aec3c8f4Simarom *         cdef zhint *hint
1267aec3c8f4Simarom *
1268aec3c8f4Simarom */
1269aec3c8f4Simarom  __pyx_v_data_len_c = 0;
1270aec3c8f4Simarom
1271aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":145
1272aec3c8f4Simarom *
1273aec3c8f4Simarom *         # init more as False
1274aec3c8f4Simarom *         self.more = False             # <<<<<<<<<<<<<<
1275aec3c8f4Simarom *
1276aec3c8f4Simarom *         # Save the data object in case the user wants the the data as a str.
1277aec3c8f4Simarom */
1278aec3c8f4Simarom  __pyx_v_self->more = 0;
1279aec3c8f4Simarom
1280aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":148
1281aec3c8f4Simarom *
1282aec3c8f4Simarom *         # Save the data object in case the user wants the the data as a str.
1283aec3c8f4Simarom *         self._data = data             # <<<<<<<<<<<<<<
1284aec3c8f4Simarom *         self._failed_init = True  # bool switch for dealloc
1285aec3c8f4Simarom *         self._buffer = None       # buffer view of data
1286aec3c8f4Simarom */
1287aec3c8f4Simarom  __Pyx_INCREF(__pyx_v_data);
1288aec3c8f4Simarom  __Pyx_GIVEREF(__pyx_v_data);
1289aec3c8f4Simarom  __Pyx_GOTREF(__pyx_v_self->_data);
1290aec3c8f4Simarom  __Pyx_DECREF(__pyx_v_self->_data);
1291aec3c8f4Simarom  __pyx_v_self->_data = __pyx_v_data;
1292aec3c8f4Simarom
1293aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":149
1294aec3c8f4Simarom *         # Save the data object in case the user wants the the data as a str.
1295aec3c8f4Simarom *         self._data = data
1296aec3c8f4Simarom *         self._failed_init = True  # bool switch for dealloc             # <<<<<<<<<<<<<<
1297aec3c8f4Simarom *         self._buffer = None       # buffer view of data
1298aec3c8f4Simarom *         self._bytes = None        # bytes copy of data
1299aec3c8f4Simarom */
1300aec3c8f4Simarom  __pyx_v_self->_failed_init = 1;
1301aec3c8f4Simarom
1302aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":150
1303aec3c8f4Simarom *         self._data = data
1304aec3c8f4Simarom *         self._failed_init = True  # bool switch for dealloc
1305aec3c8f4Simarom *         self._buffer = None       # buffer view of data             # <<<<<<<<<<<<<<
1306aec3c8f4Simarom *         self._bytes = None        # bytes copy of data
1307aec3c8f4Simarom *
1308aec3c8f4Simarom */
1309aec3c8f4Simarom  __Pyx_INCREF(Py_None);
1310aec3c8f4Simarom  __Pyx_GIVEREF(Py_None);
1311aec3c8f4Simarom  __Pyx_GOTREF(__pyx_v_self->_buffer);
1312aec3c8f4Simarom  __Pyx_DECREF(__pyx_v_self->_buffer);
1313aec3c8f4Simarom  __pyx_v_self->_buffer = Py_None;
1314aec3c8f4Simarom
1315aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":151
1316aec3c8f4Simarom *         self._failed_init = True  # bool switch for dealloc
1317aec3c8f4Simarom *         self._buffer = None       # buffer view of data
1318aec3c8f4Simarom *         self._bytes = None        # bytes copy of data             # <<<<<<<<<<<<<<
1319aec3c8f4Simarom *
1320aec3c8f4Simarom *         # Event and MessageTracker for monitoring when zmq is done with data:
1321aec3c8f4Simarom */
1322aec3c8f4Simarom  __Pyx_INCREF(Py_None);
1323aec3c8f4Simarom  __Pyx_GIVEREF(Py_None);
1324aec3c8f4Simarom  __Pyx_GOTREF(__pyx_v_self->_bytes);
1325aec3c8f4Simarom  __Pyx_DECREF(__pyx_v_self->_bytes);
1326aec3c8f4Simarom  __pyx_v_self->_bytes = Py_None;
1327aec3c8f4Simarom
1328aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":154
1329aec3c8f4Simarom *
1330aec3c8f4Simarom *         # Event and MessageTracker for monitoring when zmq is done with data:
1331aec3c8f4Simarom *         if track:             # <<<<<<<<<<<<<<
1332aec3c8f4Simarom *             evt = Event()
1333aec3c8f4Simarom *             self.tracker_event = evt
1334aec3c8f4Simarom */
1335aec3c8f4Simarom  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_track); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1336aec3c8f4Simarom  if (__pyx_t_1) {
1337aec3c8f4Simarom
1338aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":155
1339aec3c8f4Simarom *         # Event and MessageTracker for monitoring when zmq is done with data:
1340aec3c8f4Simarom *         if track:
1341aec3c8f4Simarom *             evt = Event()             # <<<<<<<<<<<<<<
1342aec3c8f4Simarom *             self.tracker_event = evt
1343aec3c8f4Simarom *             self.tracker = zmq.MessageTracker(evt)
1344aec3c8f4Simarom */
1345aec3c8f4Simarom    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_Event); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1346aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_3);
1347aec3c8f4Simarom    __pyx_t_4 = NULL;
1348aec3c8f4Simarom    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) {
1349aec3c8f4Simarom      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
1350aec3c8f4Simarom      if (likely(__pyx_t_4)) {
1351aec3c8f4Simarom        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
1352aec3c8f4Simarom        __Pyx_INCREF(__pyx_t_4);
1353aec3c8f4Simarom        __Pyx_INCREF(function);
1354aec3c8f4Simarom        __Pyx_DECREF_SET(__pyx_t_3, function);
1355aec3c8f4Simarom      }
1356aec3c8f4Simarom    }
1357aec3c8f4Simarom    if (__pyx_t_4) {
1358aec3c8f4Simarom      __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1359aec3c8f4Simarom      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1360aec3c8f4Simarom    } else {
1361aec3c8f4Simarom      __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1362aec3c8f4Simarom    }
1363aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_2);
1364aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1365aec3c8f4Simarom    __pyx_v_evt = __pyx_t_2;
1366aec3c8f4Simarom    __pyx_t_2 = 0;
1367aec3c8f4Simarom
1368aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":156
1369aec3c8f4Simarom *         if track:
1370aec3c8f4Simarom *             evt = Event()
1371aec3c8f4Simarom *             self.tracker_event = evt             # <<<<<<<<<<<<<<
1372aec3c8f4Simarom *             self.tracker = zmq.MessageTracker(evt)
1373aec3c8f4Simarom *         else:
1374aec3c8f4Simarom */
1375aec3c8f4Simarom    __Pyx_INCREF(__pyx_v_evt);
1376aec3c8f4Simarom    __Pyx_GIVEREF(__pyx_v_evt);
1377aec3c8f4Simarom    __Pyx_GOTREF(__pyx_v_self->tracker_event);
1378aec3c8f4Simarom    __Pyx_DECREF(__pyx_v_self->tracker_event);
1379aec3c8f4Simarom    __pyx_v_self->tracker_event = __pyx_v_evt;
1380aec3c8f4Simarom
1381aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":157
1382aec3c8f4Simarom *             evt = Event()
1383aec3c8f4Simarom *             self.tracker_event = evt
1384aec3c8f4Simarom *             self.tracker = zmq.MessageTracker(evt)             # <<<<<<<<<<<<<<
1385aec3c8f4Simarom *         else:
1386aec3c8f4Simarom *             self.tracker_event = None
1387aec3c8f4Simarom */
1388aec3c8f4Simarom    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_zmq); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1389aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_3);
1390aec3c8f4Simarom    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_MessageTracker); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1391aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_4);
1392aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1393aec3c8f4Simarom    __pyx_t_3 = NULL;
1394aec3c8f4Simarom    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
1395aec3c8f4Simarom      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
1396aec3c8f4Simarom      if (likely(__pyx_t_3)) {
1397aec3c8f4Simarom        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
1398aec3c8f4Simarom        __Pyx_INCREF(__pyx_t_3);
1399aec3c8f4Simarom        __Pyx_INCREF(function);
1400aec3c8f4Simarom        __Pyx_DECREF_SET(__pyx_t_4, function);
1401aec3c8f4Simarom      }
1402aec3c8f4Simarom    }
1403aec3c8f4Simarom    if (!__pyx_t_3) {
1404aec3c8f4Simarom      __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_evt); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1405aec3c8f4Simarom      __Pyx_GOTREF(__pyx_t_2);
1406aec3c8f4Simarom    } else {
1407aec3c8f4Simarom      __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1408aec3c8f4Simarom      __Pyx_GOTREF(__pyx_t_5);
1409aec3c8f4Simarom      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = NULL;
1410aec3c8f4Simarom      __Pyx_INCREF(__pyx_v_evt);
1411aec3c8f4Simarom      PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_evt);
1412aec3c8f4Simarom      __Pyx_GIVEREF(__pyx_v_evt);
1413aec3c8f4Simarom      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1414aec3c8f4Simarom      __Pyx_GOTREF(__pyx_t_2);
1415aec3c8f4Simarom      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
1416aec3c8f4Simarom    }
1417aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1418aec3c8f4Simarom    __Pyx_GIVEREF(__pyx_t_2);
1419aec3c8f4Simarom    __Pyx_GOTREF(__pyx_v_self->tracker);
1420aec3c8f4Simarom    __Pyx_DECREF(__pyx_v_self->tracker);
1421aec3c8f4Simarom    __pyx_v_self->tracker = __pyx_t_2;
1422aec3c8f4Simarom    __pyx_t_2 = 0;
1423aec3c8f4Simarom    goto __pyx_L3;
1424aec3c8f4Simarom  }
1425aec3c8f4Simarom  /*else*/ {
1426aec3c8f4Simarom
1427aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":159
1428aec3c8f4Simarom *             self.tracker = zmq.MessageTracker(evt)
1429aec3c8f4Simarom *         else:
1430aec3c8f4Simarom *             self.tracker_event = None             # <<<<<<<<<<<<<<
1431aec3c8f4Simarom *             self.tracker = None
1432aec3c8f4Simarom *
1433aec3c8f4Simarom */
1434aec3c8f4Simarom    __Pyx_INCREF(Py_None);
1435aec3c8f4Simarom    __Pyx_GIVEREF(Py_None);
1436aec3c8f4Simarom    __Pyx_GOTREF(__pyx_v_self->tracker_event);
1437aec3c8f4Simarom    __Pyx_DECREF(__pyx_v_self->tracker_event);
1438aec3c8f4Simarom    __pyx_v_self->tracker_event = Py_None;
1439aec3c8f4Simarom
1440aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":160
1441aec3c8f4Simarom *         else:
1442aec3c8f4Simarom *             self.tracker_event = None
1443aec3c8f4Simarom *             self.tracker = None             # <<<<<<<<<<<<<<
1444aec3c8f4Simarom *
1445aec3c8f4Simarom *         if isinstance(data, unicode):
1446aec3c8f4Simarom */
1447aec3c8f4Simarom    __Pyx_INCREF(Py_None);
1448aec3c8f4Simarom    __Pyx_GIVEREF(Py_None);
1449aec3c8f4Simarom    __Pyx_GOTREF(__pyx_v_self->tracker);
1450aec3c8f4Simarom    __Pyx_DECREF(__pyx_v_self->tracker);
1451aec3c8f4Simarom    __pyx_v_self->tracker = Py_None;
1452aec3c8f4Simarom  }
1453aec3c8f4Simarom  __pyx_L3:;
1454aec3c8f4Simarom
1455aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":162
1456aec3c8f4Simarom *             self.tracker = None
1457aec3c8f4Simarom *
1458aec3c8f4Simarom *         if isinstance(data, unicode):             # <<<<<<<<<<<<<<
1459aec3c8f4Simarom *             raise TypeError("Unicode objects not allowed. Only: str/bytes, buffer interfaces.")
1460aec3c8f4Simarom *
1461aec3c8f4Simarom */
1462aec3c8f4Simarom  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_unicode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1463aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_2);
1464aec3c8f4Simarom  __pyx_t_1 = PyObject_IsInstance(__pyx_v_data, __pyx_t_2); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1465aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1466aec3c8f4Simarom  __pyx_t_6 = (__pyx_t_1 != 0);
1467aec3c8f4Simarom  if (__pyx_t_6) {
1468aec3c8f4Simarom
1469aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":163
1470aec3c8f4Simarom *
1471aec3c8f4Simarom *         if isinstance(data, unicode):
1472aec3c8f4Simarom *             raise TypeError("Unicode objects not allowed. Only: str/bytes, buffer interfaces.")             # <<<<<<<<<<<<<<
1473aec3c8f4Simarom *
1474aec3c8f4Simarom *         if data is None:
1475aec3c8f4Simarom */
1476aec3c8f4Simarom    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1477aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_2);
1478aec3c8f4Simarom    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
1479aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1480aec3c8f4Simarom    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1481aec3c8f4Simarom  }
1482aec3c8f4Simarom
1483aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":165
1484aec3c8f4Simarom *             raise TypeError("Unicode objects not allowed. Only: str/bytes, buffer interfaces.")
1485aec3c8f4Simarom *
1486aec3c8f4Simarom *         if data is None:             # <<<<<<<<<<<<<<
1487aec3c8f4Simarom *             rc = zmq_msg_init(&self.zmq_msg)
1488aec3c8f4Simarom *             _check_rc(rc)
1489aec3c8f4Simarom */
1490aec3c8f4Simarom  __pyx_t_6 = (__pyx_v_data == Py_None);
1491aec3c8f4Simarom  __pyx_t_1 = (__pyx_t_6 != 0);
1492aec3c8f4Simarom  if (__pyx_t_1) {
1493aec3c8f4Simarom
1494aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":166
1495aec3c8f4Simarom *
1496aec3c8f4Simarom *         if data is None:
1497aec3c8f4Simarom *             rc = zmq_msg_init(&self.zmq_msg)             # <<<<<<<<<<<<<<
1498aec3c8f4Simarom *             _check_rc(rc)
1499aec3c8f4Simarom *             self._failed_init = False
1500aec3c8f4Simarom */
1501aec3c8f4Simarom    __pyx_v_rc = zmq_msg_init((&__pyx_v_self->zmq_msg));
1502aec3c8f4Simarom
1503aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":167
1504aec3c8f4Simarom *         if data is None:
1505aec3c8f4Simarom *             rc = zmq_msg_init(&self.zmq_msg)
1506aec3c8f4Simarom *             _check_rc(rc)             # <<<<<<<<<<<<<<
1507aec3c8f4Simarom *             self._failed_init = False
1508aec3c8f4Simarom *             return
1509aec3c8f4Simarom */
1510aec3c8f4Simarom    __pyx_t_7 = __pyx_f_3zmq_7backend_6cython_7checkrc__check_rc(__pyx_v_rc); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1511aec3c8f4Simarom
1512aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":168
1513aec3c8f4Simarom *             rc = zmq_msg_init(&self.zmq_msg)
1514aec3c8f4Simarom *             _check_rc(rc)
1515aec3c8f4Simarom *             self._failed_init = False             # <<<<<<<<<<<<<<
1516aec3c8f4Simarom *             return
1517aec3c8f4Simarom *         else:
1518aec3c8f4Simarom */
1519aec3c8f4Simarom    __pyx_v_self->_failed_init = 0;
1520aec3c8f4Simarom
1521aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":169
1522aec3c8f4Simarom *             _check_rc(rc)
1523aec3c8f4Simarom *             self._failed_init = False
1524aec3c8f4Simarom *             return             # <<<<<<<<<<<<<<
1525aec3c8f4Simarom *         else:
1526aec3c8f4Simarom *             asbuffer_r(data, <void **>&data_c, &data_len_c)
1527aec3c8f4Simarom */
1528aec3c8f4Simarom    __pyx_r = 0;
1529aec3c8f4Simarom    goto __pyx_L0;
1530aec3c8f4Simarom  }
1531aec3c8f4Simarom  /*else*/ {
1532aec3c8f4Simarom
1533aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":171
1534aec3c8f4Simarom *             return
1535aec3c8f4Simarom *         else:
1536aec3c8f4Simarom *             asbuffer_r(data, <void **>&data_c, &data_len_c)             # <<<<<<<<<<<<<<
1537aec3c8f4Simarom *
1538aec3c8f4Simarom *         # create the hint for zmq_free_fn
1539aec3c8f4Simarom */
1540aec3c8f4Simarom    __pyx_t_2 = __pyx_f_7buffers_asbuffer_r(__pyx_v_data, ((void **)(&__pyx_v_data_c)), (&__pyx_v_data_len_c)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1541aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_2);
1542aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1543aec3c8f4Simarom  }
1544aec3c8f4Simarom
1545aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":177
1546aec3c8f4Simarom *         # allows libzmq to signal to Python when it is done with Python-owned memory.
1547aec3c8f4Simarom *         global gc
1548aec3c8f4Simarom *         if gc is None:             # <<<<<<<<<<<<<<
1549aec3c8f4Simarom *             from zmq.utils.garbage import gc
1550aec3c8f4Simarom *
1551aec3c8f4Simarom */
1552aec3c8f4Simarom  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_gc); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1553aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_2);
1554aec3c8f4Simarom  __pyx_t_1 = (__pyx_t_2 == Py_None);
1555aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1556aec3c8f4Simarom  __pyx_t_6 = (__pyx_t_1 != 0);
1557aec3c8f4Simarom  if (__pyx_t_6) {
1558aec3c8f4Simarom
1559aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":178
1560aec3c8f4Simarom *         global gc
1561aec3c8f4Simarom *         if gc is None:
1562aec3c8f4Simarom *             from zmq.utils.garbage import gc             # <<<<<<<<<<<<<<
1563aec3c8f4Simarom *
1564aec3c8f4Simarom *         hint = <zhint *> malloc(sizeof(zhint))
1565aec3c8f4Simarom */
1566aec3c8f4Simarom    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1567aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_2);
1568aec3c8f4Simarom    __Pyx_INCREF(__pyx_n_s_gc);
1569aec3c8f4Simarom    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_gc);
1570aec3c8f4Simarom    __Pyx_GIVEREF(__pyx_n_s_gc);
1571aec3c8f4Simarom    __pyx_t_4 = __Pyx_Import(__pyx_n_s_zmq_utils_garbage, __pyx_t_2, -1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1572aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_4);
1573aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1574aec3c8f4Simarom    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_gc); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1575aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_2);
1576aec3c8f4Simarom    if (PyDict_SetItem(__pyx_d, __pyx_n_s_gc, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1577aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1578aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1579aec3c8f4Simarom    goto __pyx_L6;
1580aec3c8f4Simarom  }
1581aec3c8f4Simarom  __pyx_L6:;
1582aec3c8f4Simarom
1583aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":180
1584aec3c8f4Simarom *             from zmq.utils.garbage import gc
1585aec3c8f4Simarom *
1586aec3c8f4Simarom *         hint = <zhint *> malloc(sizeof(zhint))             # <<<<<<<<<<<<<<
1587aec3c8f4Simarom *         hint.id = gc.store(data, self.tracker_event)
1588aec3c8f4Simarom *         hint.ctx = <void *> <size_t> gc._context.underlying
1589aec3c8f4Simarom */
1590aec3c8f4Simarom  __pyx_v_hint = ((__pyx_t_3zmq_7backend_6cython_7message_zhint *)malloc((sizeof(__pyx_t_3zmq_7backend_6cython_7message_zhint))));
1591aec3c8f4Simarom
1592aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":181
1593aec3c8f4Simarom *
1594aec3c8f4Simarom *         hint = <zhint *> malloc(sizeof(zhint))
1595aec3c8f4Simarom *         hint.id = gc.store(data, self.tracker_event)             # <<<<<<<<<<<<<<
1596aec3c8f4Simarom *         hint.ctx = <void *> <size_t> gc._context.underlying
1597aec3c8f4Simarom *
1598aec3c8f4Simarom */
1599aec3c8f4Simarom  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_gc); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1600aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_2);
1601aec3c8f4Simarom  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_store); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1602aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_5);
1603aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1604aec3c8f4Simarom  __pyx_t_2 = NULL;
1605aec3c8f4Simarom  __pyx_t_8 = 0;
1606aec3c8f4Simarom  if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) {
1607aec3c8f4Simarom    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
1608aec3c8f4Simarom    if (likely(__pyx_t_2)) {
1609aec3c8f4Simarom      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
1610aec3c8f4Simarom      __Pyx_INCREF(__pyx_t_2);
1611aec3c8f4Simarom      __Pyx_INCREF(function);
1612aec3c8f4Simarom      __Pyx_DECREF_SET(__pyx_t_5, function);
1613aec3c8f4Simarom      __pyx_t_8 = 1;
1614aec3c8f4Simarom    }
1615aec3c8f4Simarom  }
1616aec3c8f4Simarom  __pyx_t_3 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1617aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_3);
1618aec3c8f4Simarom  if (__pyx_t_2) {
1619aec3c8f4Simarom    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = NULL;
1620aec3c8f4Simarom  }
1621aec3c8f4Simarom  __Pyx_INCREF(__pyx_v_data);
1622aec3c8f4Simarom  PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_v_data);
1623aec3c8f4Simarom  __Pyx_GIVEREF(__pyx_v_data);
1624aec3c8f4Simarom  __Pyx_INCREF(__pyx_v_self->tracker_event);
1625aec3c8f4Simarom  PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_self->tracker_event);
1626aec3c8f4Simarom  __Pyx_GIVEREF(__pyx_v_self->tracker_event);
1627aec3c8f4Simarom  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1628aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_4);
1629aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1630aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
1631aec3c8f4Simarom  __pyx_t_9 = __Pyx_PyInt_As_size_t(__pyx_t_4); if (unlikely((__pyx_t_9 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1632aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1633aec3c8f4Simarom  __pyx_v_hint->id = __pyx_t_9;
1634aec3c8f4Simarom
1635aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":182
1636aec3c8f4Simarom *         hint = <zhint *> malloc(sizeof(zhint))
1637aec3c8f4Simarom *         hint.id = gc.store(data, self.tracker_event)
1638aec3c8f4Simarom *         hint.ctx = <void *> <size_t> gc._context.underlying             # <<<<<<<<<<<<<<
1639aec3c8f4Simarom *
1640aec3c8f4Simarom *         rc = zmq_msg_init_data(
1641aec3c8f4Simarom */
1642aec3c8f4Simarom  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_gc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1643aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_4);
1644aec3c8f4Simarom  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_context); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1645aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_5);
1646aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1647aec3c8f4Simarom  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_underlying); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1648aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_4);
1649aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
1650aec3c8f4Simarom  __pyx_t_9 = __Pyx_PyInt_As_size_t(__pyx_t_4); if (unlikely((__pyx_t_9 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1651aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1652aec3c8f4Simarom  __pyx_v_hint->ctx = ((void *)((size_t)__pyx_t_9));
1653aec3c8f4Simarom
1654aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":184
1655aec3c8f4Simarom *         hint.ctx = <void *> <size_t> gc._context.underlying
1656aec3c8f4Simarom *
1657aec3c8f4Simarom *         rc = zmq_msg_init_data(             # <<<<<<<<<<<<<<
1658aec3c8f4Simarom *                 &self.zmq_msg, <void *>data_c, data_len_c,
1659aec3c8f4Simarom *                 <zmq_free_fn *>free_python_msg, <void *>hint
1660aec3c8f4Simarom */
1661aec3c8f4Simarom  __pyx_v_rc = zmq_msg_init_data((&__pyx_v_self->zmq_msg), ((void *)__pyx_v_data_c), __pyx_v_data_len_c, ((zmq_free_fn *)__pyx_f_3zmq_7backend_6cython_7message_free_python_msg), ((void *)__pyx_v_hint));
1662aec3c8f4Simarom
1663aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":188
1664aec3c8f4Simarom *                 <zmq_free_fn *>free_python_msg, <void *>hint
1665aec3c8f4Simarom *             )
1666aec3c8f4Simarom *         if rc != 0:             # <<<<<<<<<<<<<<
1667aec3c8f4Simarom *             free(hint)
1668aec3c8f4Simarom *             _check_rc(rc)
1669aec3c8f4Simarom */
1670aec3c8f4Simarom  __pyx_t_6 = ((__pyx_v_rc != 0) != 0);
1671aec3c8f4Simarom  if (__pyx_t_6) {
1672aec3c8f4Simarom
1673aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":189
1674aec3c8f4Simarom *             )
1675aec3c8f4Simarom *         if rc != 0:
1676aec3c8f4Simarom *             free(hint)             # <<<<<<<<<<<<<<
1677aec3c8f4Simarom *             _check_rc(rc)
1678aec3c8f4Simarom *         self._failed_init = False
1679aec3c8f4Simarom */
1680aec3c8f4Simarom    free(__pyx_v_hint);
1681aec3c8f4Simarom
1682aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":190
1683aec3c8f4Simarom *         if rc != 0:
1684aec3c8f4Simarom *             free(hint)
1685aec3c8f4Simarom *             _check_rc(rc)             # <<<<<<<<<<<<<<
1686aec3c8f4Simarom *         self._failed_init = False
1687aec3c8f4Simarom *
1688aec3c8f4Simarom */
1689aec3c8f4Simarom    __pyx_t_7 = __pyx_f_3zmq_7backend_6cython_7checkrc__check_rc(__pyx_v_rc); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1690aec3c8f4Simarom    goto __pyx_L7;
1691aec3c8f4Simarom  }
1692aec3c8f4Simarom  __pyx_L7:;
1693aec3c8f4Simarom
1694aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":191
1695aec3c8f4Simarom *             free(hint)
1696aec3c8f4Simarom *             _check_rc(rc)
1697aec3c8f4Simarom *         self._failed_init = False             # <<<<<<<<<<<<<<
1698aec3c8f4Simarom *
1699aec3c8f4Simarom *     def __init__(self, object data=None, track=False):
1700aec3c8f4Simarom */
1701aec3c8f4Simarom  __pyx_v_self->_failed_init = 0;
1702aec3c8f4Simarom
1703aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":138
1704aec3c8f4Simarom *     """
1705aec3c8f4Simarom *
1706aec3c8f4Simarom *     def __cinit__(self, object data=None, track=False, **kwargs):             # <<<<<<<<<<<<<<
1707aec3c8f4Simarom *         cdef int rc
1708aec3c8f4Simarom *         cdef char *data_c = NULL
1709aec3c8f4Simarom */
1710aec3c8f4Simarom
1711aec3c8f4Simarom  /* function exit code */
1712aec3c8f4Simarom  __pyx_r = 0;
1713aec3c8f4Simarom  goto __pyx_L0;
1714aec3c8f4Simarom  __pyx_L1_error:;
1715aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_2);
1716aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_3);
1717aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_4);
1718aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_5);
1719aec3c8f4Simarom  __Pyx_AddTraceback("zmq.backend.cython.message.Frame.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
1720aec3c8f4Simarom  __pyx_r = -1;
1721aec3c8f4Simarom  __pyx_L0:;
1722aec3c8f4Simarom  __Pyx_XDECREF(__pyx_v_evt);
1723aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1724aec3c8f4Simarom  return __pyx_r;
1725aec3c8f4Simarom}
1726aec3c8f4Simarom
1727aec3c8f4Simarom/* "zmq/backend/cython/message.pyx":193
1728aec3c8f4Simarom *         self._failed_init = False
1729aec3c8f4Simarom *
1730aec3c8f4Simarom *     def __init__(self, object data=None, track=False):             # <<<<<<<<<<<<<<
1731aec3c8f4Simarom *         """Enforce signature"""
1732aec3c8f4Simarom *         pass
1733aec3c8f4Simarom */
1734aec3c8f4Simarom
1735aec3c8f4Simarom/* Python wrapper */
1736aec3c8f4Simaromstatic int __pyx_pw_3zmq_7backend_6cython_7message_5Frame_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
1737aec3c8f4Simaromstatic char __pyx_doc_3zmq_7backend_6cython_7message_5Frame_2__init__[] = "Enforce signature";
1738aec3c8f4Simarom#if CYTHON_COMPILING_IN_CPYTHON
1739aec3c8f4Simaromstruct wrapperbase __pyx_wrapperbase_3zmq_7backend_6cython_7message_5Frame_2__init__;
1740aec3c8f4Simarom#endif
1741aec3c8f4Simaromstatic int __pyx_pw_3zmq_7backend_6cython_7message_5Frame_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
1742aec3c8f4Simarom  CYTHON_UNUSED PyObject *__pyx_v_data = 0;
1743aec3c8f4Simarom  CYTHON_UNUSED PyObject *__pyx_v_track = 0;
1744aec3c8f4Simarom  int __pyx_lineno = 0;
1745aec3c8f4Simarom  const char *__pyx_filename = NULL;
1746aec3c8f4Simarom  int __pyx_clineno = 0;
1747aec3c8f4Simarom  int __pyx_r;
1748aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1749aec3c8f4Simarom  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
1750aec3c8f4Simarom  {
1751aec3c8f4Simarom    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_track,0};
1752aec3c8f4Simarom    PyObject* values[2] = {0,0};
1753aec3c8f4Simarom    values[0] = ((PyObject *)Py_None);
1754aec3c8f4Simarom    values[1] = ((PyObject *)Py_False);
1755aec3c8f4Simarom    if (unlikely(__pyx_kwds)) {
1756aec3c8f4Simarom      Py_ssize_t kw_args;
1757aec3c8f4Simarom      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
1758aec3c8f4Simarom      switch (pos_args) {
1759aec3c8f4Simarom        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
1760aec3c8f4Simarom        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
1761aec3c8f4Simarom        case  0: break;
1762aec3c8f4Simarom        default: goto __pyx_L5_argtuple_error;
1763aec3c8f4Simarom      }
1764aec3c8f4Simarom      kw_args = PyDict_Size(__pyx_kwds);
1765aec3c8f4Simarom      switch (pos_args) {
1766aec3c8f4Simarom        case  0:
1767aec3c8f4Simarom        if (kw_args > 0) {
1768aec3c8f4Simarom          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data);
1769aec3c8f4Simarom          if (value) { values[0] = value; kw_args--; }
1770aec3c8f4Simarom        }
1771aec3c8f4Simarom        case  1:
1772aec3c8f4Simarom        if (kw_args > 0) {
1773aec3c8f4Simarom          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_track);
1774aec3c8f4Simarom          if (value) { values[1] = value; kw_args--; }
1775aec3c8f4Simarom        }
1776aec3c8f4Simarom      }
1777aec3c8f4Simarom      if (unlikely(kw_args > 0)) {
1778aec3c8f4Simarom        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
1779aec3c8f4Simarom      }
1780aec3c8f4Simarom    } else {
1781aec3c8f4Simarom      switch (PyTuple_GET_SIZE(__pyx_args)) {
1782aec3c8f4Simarom        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
1783aec3c8f4Simarom        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
1784aec3c8f4Simarom        case  0: break;
1785aec3c8f4Simarom        default: goto __pyx_L5_argtuple_error;
1786aec3c8f4Simarom      }
1787aec3c8f4Simarom    }
1788aec3c8f4Simarom    __pyx_v_data = values[0];
1789aec3c8f4Simarom    __pyx_v_track = values[1];
1790aec3c8f4Simarom  }
1791aec3c8f4Simarom  goto __pyx_L4_argument_unpacking_done;
1792aec3c8f4Simarom  __pyx_L5_argtuple_error:;
1793aec3c8f4Simarom  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
1794aec3c8f4Simarom  __pyx_L3_error:;
1795aec3c8f4Simarom  __Pyx_AddTraceback("zmq.backend.cython.message.Frame.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
1796aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1797aec3c8f4Simarom  return -1;
1798aec3c8f4Simarom  __pyx_L4_argument_unpacking_done:;
1799aec3c8f4Simarom  __pyx_r = __pyx_pf_3zmq_7backend_6cython_7message_5Frame_2__init__(((struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *)__pyx_v_self), __pyx_v_data, __pyx_v_track);
1800aec3c8f4Simarom
1801aec3c8f4Simarom  /* function exit code */
1802aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1803aec3c8f4Simarom  return __pyx_r;
1804aec3c8f4Simarom}
1805aec3c8f4Simarom
1806aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_7message_5Frame_2__init__(CYTHON_UNUSED struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_data, CYTHON_UNUSED PyObject *__pyx_v_track) {
1807aec3c8f4Simarom  int __pyx_r;
1808aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1809aec3c8f4Simarom  __Pyx_RefNannySetupContext("__init__", 0);
1810aec3c8f4Simarom
1811aec3c8f4Simarom  /* function exit code */
1812aec3c8f4Simarom  __pyx_r = 0;
1813aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1814aec3c8f4Simarom  return __pyx_r;
1815aec3c8f4Simarom}
1816aec3c8f4Simarom
1817aec3c8f4Simarom/* "zmq/backend/cython/message.pyx":197
1818aec3c8f4Simarom *         pass
1819aec3c8f4Simarom *
1820aec3c8f4Simarom *     def __dealloc__(self):             # <<<<<<<<<<<<<<
1821aec3c8f4Simarom *         cdef int rc
1822aec3c8f4Simarom *         if self._failed_init:
1823aec3c8f4Simarom */
1824aec3c8f4Simarom
1825aec3c8f4Simarom/* Python wrapper */
1826aec3c8f4Simaromstatic void __pyx_pw_3zmq_7backend_6cython_7message_5Frame_5__dealloc__(PyObject *__pyx_v_self); /*proto*/
1827aec3c8f4Simaromstatic void __pyx_pw_3zmq_7backend_6cython_7message_5Frame_5__dealloc__(PyObject *__pyx_v_self) {
1828aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1829aec3c8f4Simarom  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
1830aec3c8f4Simarom  __pyx_pf_3zmq_7backend_6cython_7message_5Frame_4__dealloc__(((struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *)__pyx_v_self));
1831aec3c8f4Simarom
1832aec3c8f4Simarom  /* function exit code */
1833aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1834aec3c8f4Simarom}
1835aec3c8f4Simarom
1836aec3c8f4Simaromstatic void __pyx_pf_3zmq_7backend_6cython_7message_5Frame_4__dealloc__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self) {
1837aec3c8f4Simarom  int __pyx_v_rc;
1838aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1839aec3c8f4Simarom  int __pyx_t_1;
1840aec3c8f4Simarom  int __pyx_t_2;
1841aec3c8f4Simarom  int __pyx_lineno = 0;
1842aec3c8f4Simarom  const char *__pyx_filename = NULL;
1843aec3c8f4Simarom  int __pyx_clineno = 0;
1844aec3c8f4Simarom  __Pyx_RefNannySetupContext("__dealloc__", 0);
1845aec3c8f4Simarom
1846aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":199
1847aec3c8f4Simarom *     def __dealloc__(self):
1848aec3c8f4Simarom *         cdef int rc
1849aec3c8f4Simarom *         if self._failed_init:             # <<<<<<<<<<<<<<
1850aec3c8f4Simarom *             return
1851aec3c8f4Simarom *         # This simply decreases the 0MQ ref-count of zmq_msg.
1852aec3c8f4Simarom */
1853aec3c8f4Simarom  __pyx_t_1 = (__pyx_v_self->_failed_init != 0);
1854aec3c8f4Simarom  if (__pyx_t_1) {
1855aec3c8f4Simarom
1856aec3c8f4Simarom    /* "zmq/backend/cython/message.pyx":200
1857aec3c8f4Simarom *         cdef int rc
1858aec3c8f4Simarom *         if self._failed_init:
1859aec3c8f4Simarom *             return             # <<<<<<<<<<<<<<
1860aec3c8f4Simarom *         # This simply decreases the 0MQ ref-count of zmq_msg.
1861aec3c8f4Simarom *         with nogil:
1862aec3c8f4Simarom */
1863aec3c8f4Simarom    goto __pyx_L0;
1864aec3c8f4Simarom  }
1865aec3c8f4Simarom
1866aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":202
1867aec3c8f4Simarom *             return
1868aec3c8f4Simarom *         # This simply decreases the 0MQ ref-count of zmq_msg.
1869aec3c8f4Simarom *         with nogil:             # <<<<<<<<<<<<<<
1870aec3c8f4Simarom *             rc = zmq_msg_close(&self.zmq_msg)
1871aec3c8f4Simarom *         _check_rc(rc)
1872aec3c8f4Simarom */
1873aec3c8f4Simarom  {
1874aec3c8f4Simarom      #ifdef WITH_THREAD
1875aec3c8f4Simarom      PyThreadState *_save;
1876aec3c8f4Simarom      Py_UNBLOCK_THREADS
1877aec3c8f4Simarom      #endif
1878aec3c8f4Simarom      /*try:*/ {
1879aec3c8f4Simarom
1880aec3c8f4Simarom        /* "zmq/backend/cython/message.pyx":203
1881aec3c8f4Simarom *         # This simply decreases the 0MQ ref-count of zmq_msg.
1882aec3c8f4Simarom *         with nogil:
1883aec3c8f4Simarom *             rc = zmq_msg_close(&self.zmq_msg)             # <<<<<<<<<<<<<<
1884aec3c8f4Simarom *         _check_rc(rc)
1885aec3c8f4Simarom *
1886aec3c8f4Simarom */
1887aec3c8f4Simarom        __pyx_v_rc = zmq_msg_close((&__pyx_v_self->zmq_msg));
1888aec3c8f4Simarom      }
1889aec3c8f4Simarom
1890aec3c8f4Simarom      /* "zmq/backend/cython/message.pyx":202
1891aec3c8f4Simarom *             return
1892aec3c8f4Simarom *         # This simply decreases the 0MQ ref-count of zmq_msg.
1893aec3c8f4Simarom *         with nogil:             # <<<<<<<<<<<<<<
1894aec3c8f4Simarom *             rc = zmq_msg_close(&self.zmq_msg)
1895aec3c8f4Simarom *         _check_rc(rc)
1896aec3c8f4Simarom */
1897aec3c8f4Simarom      /*finally:*/ {
1898aec3c8f4Simarom        /*normal exit:*/{
1899aec3c8f4Simarom          #ifdef WITH_THREAD
1900aec3c8f4Simarom          Py_BLOCK_THREADS
1901aec3c8f4Simarom          #endif
1902aec3c8f4Simarom          goto __pyx_L6;
1903aec3c8f4Simarom        }
1904aec3c8f4Simarom        __pyx_L6:;
1905aec3c8f4Simarom      }
1906aec3c8f4Simarom  }
1907aec3c8f4Simarom
1908aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":204
1909aec3c8f4Simarom *         with nogil:
1910aec3c8f4Simarom *             rc = zmq_msg_close(&self.zmq_msg)
1911aec3c8f4Simarom *         _check_rc(rc)             # <<<<<<<<<<<<<<
1912aec3c8f4Simarom *
1913aec3c8f4Simarom *     # buffer interface code adapted from petsc4py by Lisandro Dalcin, a BSD project
1914aec3c8f4Simarom */
1915aec3c8f4Simarom  __pyx_t_2 = __pyx_f_3zmq_7backend_6cython_7checkrc__check_rc(__pyx_v_rc); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1916aec3c8f4Simarom
1917aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":197
1918aec3c8f4Simarom *         pass
1919aec3c8f4Simarom *
1920aec3c8f4Simarom *     def __dealloc__(self):             # <<<<<<<<<<<<<<
1921aec3c8f4Simarom *         cdef int rc
1922aec3c8f4Simarom *         if self._failed_init:
1923aec3c8f4Simarom */
1924aec3c8f4Simarom
1925aec3c8f4Simarom  /* function exit code */
1926aec3c8f4Simarom  goto __pyx_L0;
1927aec3c8f4Simarom  __pyx_L1_error:;
1928aec3c8f4Simarom  __Pyx_WriteUnraisable("zmq.backend.cython.message.Frame.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
1929aec3c8f4Simarom  __pyx_L0:;
1930aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1931aec3c8f4Simarom}
1932aec3c8f4Simarom
1933aec3c8f4Simarom/* "zmq/backend/cython/message.pyx":208
1934aec3c8f4Simarom *     # buffer interface code adapted from petsc4py by Lisandro Dalcin, a BSD project
1935aec3c8f4Simarom *
1936aec3c8f4Simarom *     def __getbuffer__(self, Py_buffer* buffer, int flags):             # <<<<<<<<<<<<<<
1937aec3c8f4Simarom *         # new-style (memoryview) buffer interface
1938aec3c8f4Simarom *         buffer.buf = zmq_msg_data(&self.zmq_msg)
1939aec3c8f4Simarom */
1940aec3c8f4Simarom
1941aec3c8f4Simarom/* Python wrapper */
1942aec3c8f4Simaromstatic CYTHON_UNUSED int __pyx_pw_3zmq_7backend_6cython_7message_5Frame_7__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_buffer, int __pyx_v_flags); /*proto*/
1943aec3c8f4Simaromstatic CYTHON_UNUSED int __pyx_pw_3zmq_7backend_6cython_7message_5Frame_7__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_buffer, int __pyx_v_flags) {
1944aec3c8f4Simarom  int __pyx_r;
1945aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1946aec3c8f4Simarom  __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
1947aec3c8f4Simarom  __pyx_r = __pyx_pf_3zmq_7backend_6cython_7message_5Frame_6__getbuffer__(((struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *)__pyx_v_self), ((Py_buffer *)__pyx_v_buffer), ((int)__pyx_v_flags));
1948aec3c8f4Simarom
1949aec3c8f4Simarom  /* function exit code */
1950aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1951aec3c8f4Simarom  return __pyx_r;
1952aec3c8f4Simarom}
1953aec3c8f4Simarom
1954aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_7message_5Frame_6__getbuffer__(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_self, Py_buffer *__pyx_v_buffer, CYTHON_UNUSED int __pyx_v_flags) {
1955aec3c8f4Simarom  int __pyx_r;
1956aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1957aec3c8f4Simarom  __Pyx_RefNannySetupContext("__getbuffer__", 0);
1958aec3c8f4Simarom  if (__pyx_v_buffer != NULL) {
1959aec3c8f4Simarom    __pyx_v_buffer->obj = Py_None; __Pyx_INCREF(Py_None);
1960aec3c8f4Simarom    __Pyx_GIVEREF(__pyx_v_buffer->obj);
1961aec3c8f4Simarom  }
1962aec3c8f4Simarom
1963aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":210
1964aec3c8f4Simarom *     def __getbuffer__(self, Py_buffer* buffer, int flags):
1965aec3c8f4Simarom *         # new-style (memoryview) buffer interface
1966aec3c8f4Simarom *         buffer.buf = zmq_msg_data(&self.zmq_msg)             # <<<<<<<<<<<<<<
1967aec3c8f4Simarom *         buffer.len = zmq_msg_size(&self.zmq_msg)
1968aec3c8f4Simarom *
1969aec3c8f4Simarom */
1970aec3c8f4Simarom  __pyx_v_buffer->buf = zmq_msg_data((&__pyx_v_self->zmq_msg));
1971aec3c8f4Simarom
1972aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":211
1973aec3c8f4Simarom *         # new-style (memoryview) buffer interface
1974aec3c8f4Simarom *         buffer.buf = zmq_msg_data(&self.zmq_msg)
1975aec3c8f4Simarom *         buffer.len = zmq_msg_size(&self.zmq_msg)             # <<<<<<<<<<<<<<
1976aec3c8f4Simarom *
1977aec3c8f4Simarom *         buffer.obj = self
1978aec3c8f4Simarom */
1979aec3c8f4Simarom  __pyx_v_buffer->len = zmq_msg_size((&__pyx_v_self->zmq_msg));
1980aec3c8f4Simarom
1981aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":213
1982aec3c8f4Simarom *         buffer.len = zmq_msg_size(&self.zmq_msg)
1983aec3c8f4Simarom *
1984aec3c8f4Simarom *         buffer.obj = self             # <<<<<<<<<<<<<<
1985aec3c8f4Simarom *         buffer.readonly = 1
1986aec3c8f4Simarom *         buffer.format = "B"
1987aec3c8f4Simarom */
1988aec3c8f4Simarom  __Pyx_INCREF(((PyObject *)__pyx_v_self));
1989aec3c8f4Simarom  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
1990aec3c8f4Simarom  __Pyx_GOTREF(__pyx_v_buffer->obj);
1991aec3c8f4Simarom  __Pyx_DECREF(__pyx_v_buffer->obj);
1992aec3c8f4Simarom  __pyx_v_buffer->obj = ((PyObject *)__pyx_v_self);
1993aec3c8f4Simarom
1994aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":214
1995aec3c8f4Simarom *
1996aec3c8f4Simarom *         buffer.obj = self
1997aec3c8f4Simarom *         buffer.readonly = 1             # <<<<<<<<<<<<<<
1998aec3c8f4Simarom *         buffer.format = "B"
1999aec3c8f4Simarom *         buffer.ndim = 0
2000aec3c8f4Simarom */
2001aec3c8f4Simarom  __pyx_v_buffer->readonly = 1;
2002aec3c8f4Simarom
2003aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":215
2004aec3c8f4Simarom *         buffer.obj = self
2005aec3c8f4Simarom *         buffer.readonly = 1
2006aec3c8f4Simarom *         buffer.format = "B"             # <<<<<<<<<<<<<<
2007aec3c8f4Simarom *         buffer.ndim = 0
2008aec3c8f4Simarom *         buffer.shape = NULL
2009aec3c8f4Simarom */
2010aec3c8f4Simarom  __pyx_v_buffer->format = __pyx_k_B;
2011aec3c8f4Simarom
2012aec3c8f4Simarom  /* "zmq/backend/cython/message.pyx":216
2013aec3c8f4Simarom *         buffer.readonly = 1
2014aec3c8f4Simarom *         buffer.format = "B"
2015aec3c8f4Simarom *         buffer.ndim = 0             # <<<<<<<<<<<<<<
2016aec3c8f4Simarom *         buffer.shape = NULL
2017aec3c8f4Simarom