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__socket
235aec3c8f4Simarom#define __PYX_HAVE_API__zmq__backend__cython__socket
236aec3c8f4Simarom#include "pyversion_compat.h"
237aec3c8f4Simarom#include "errno.h"
238aec3c8f4Simarom#include "string.h"
239aec3c8f4Simarom#include "stdio.h"
240aec3c8f4Simarom#include "pythread.h"
241aec3c8f4Simarom#include "zmq_compat.h"
242aec3c8f4Simarom#include "zmq.h"
243aec3c8f4Simarom#include "zmq_utils.h"
244aec3c8f4Simarom#include "ipcmaxlen.h"
245aec3c8f4Simarom#include "getpid_compat.h"
246aec3c8f4Simarom#ifdef _OPENMP
247aec3c8f4Simarom#include <omp.h>
248aec3c8f4Simarom#endif /* _OPENMP */
249aec3c8f4Simarom
250aec3c8f4Simarom#ifdef PYREX_WITHOUT_ASSERTIONS
251aec3c8f4Simarom#define CYTHON_WITHOUT_ASSERTIONS
252aec3c8f4Simarom#endif
253aec3c8f4Simarom
254aec3c8f4Simarom#ifndef CYTHON_UNUSED
255aec3c8f4Simarom# if defined(__GNUC__)
256aec3c8f4Simarom#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
257aec3c8f4Simarom#     define CYTHON_UNUSED __attribute__ ((__unused__))
258aec3c8f4Simarom#   else
259aec3c8f4Simarom#     define CYTHON_UNUSED
260aec3c8f4Simarom#   endif
261aec3c8f4Simarom# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
262aec3c8f4Simarom#   define CYTHON_UNUSED __attribute__ ((__unused__))
263aec3c8f4Simarom# else
264aec3c8f4Simarom#   define CYTHON_UNUSED
265aec3c8f4Simarom# endif
266aec3c8f4Simarom#endif
267aec3c8f4Simaromtypedef struct {PyObject **p; char *s; const Py_ssize_t n; const char* encoding;
268aec3c8f4Simarom                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
269aec3c8f4Simarom
270aec3c8f4Simarom#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
271aec3c8f4Simarom#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
272aec3c8f4Simarom#define __PYX_DEFAULT_STRING_ENCODING ""
273aec3c8f4Simarom#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
274aec3c8f4Simarom#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
275aec3c8f4Simarom#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (    \
276aec3c8f4Simarom    (sizeof(type) < sizeof(Py_ssize_t))  ||             \
277aec3c8f4Simarom    (sizeof(type) > sizeof(Py_ssize_t) &&               \
278aec3c8f4Simarom          likely(v < (type)PY_SSIZE_T_MAX ||            \
279aec3c8f4Simarom                 v == (type)PY_SSIZE_T_MAX)  &&         \
280aec3c8f4Simarom          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||       \
281aec3c8f4Simarom                                v == (type)PY_SSIZE_T_MIN)))  ||  \
282aec3c8f4Simarom    (sizeof(type) == sizeof(Py_ssize_t) &&              \
283aec3c8f4Simarom          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||        \
284aec3c8f4Simarom                               v == (type)PY_SSIZE_T_MAX)))  )
285aec3c8f4Simaromstatic CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*);
286aec3c8f4Simaromstatic CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
287aec3c8f4Simarom#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
288aec3c8f4Simarom#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
289aec3c8f4Simarom#define __Pyx_PyBytes_FromString        PyBytes_FromString
290aec3c8f4Simarom#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
291aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
292aec3c8f4Simarom#if PY_MAJOR_VERSION < 3
293aec3c8f4Simarom    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
294aec3c8f4Simarom    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
295aec3c8f4Simarom#else
296aec3c8f4Simarom    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
297aec3c8f4Simarom    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
298aec3c8f4Simarom#endif
299aec3c8f4Simarom#define __Pyx_PyObject_AsSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
300aec3c8f4Simarom#define __Pyx_PyObject_AsUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
301aec3c8f4Simarom#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const char*)s)
302aec3c8f4Simarom#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
303aec3c8f4Simarom#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const char*)s)
304aec3c8f4Simarom#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
305aec3c8f4Simarom#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const char*)s)
306aec3c8f4Simarom#if PY_MAJOR_VERSION < 3
307aec3c8f4Simaromstatic CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
308aec3c8f4Simarom{
309aec3c8f4Simarom    const Py_UNICODE *u_end = u;
310aec3c8f4Simarom    while (*u_end++) ;
311aec3c8f4Simarom    return (size_t)(u_end - u - 1);
312aec3c8f4Simarom}
313aec3c8f4Simarom#else
314aec3c8f4Simarom#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
315aec3c8f4Simarom#endif
316aec3c8f4Simarom#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
317aec3c8f4Simarom#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
318aec3c8f4Simarom#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
319aec3c8f4Simarom#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
320aec3c8f4Simarom#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
321aec3c8f4Simaromstatic CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
322aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
323aec3c8f4Simaromstatic CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
324aec3c8f4Simaromstatic CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
325aec3c8f4Simarom#if CYTHON_COMPILING_IN_CPYTHON
326aec3c8f4Simarom#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
327aec3c8f4Simarom#else
328aec3c8f4Simarom#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
329aec3c8f4Simarom#endif
330aec3c8f4Simarom#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
331aec3c8f4Simarom#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
332aec3c8f4Simaromstatic int __Pyx_sys_getdefaultencoding_not_ascii;
333aec3c8f4Simaromstatic int __Pyx_init_sys_getdefaultencoding_params(void) {
334aec3c8f4Simarom    PyObject* sys;
335aec3c8f4Simarom    PyObject* default_encoding = NULL;
336aec3c8f4Simarom    PyObject* ascii_chars_u = NULL;
337aec3c8f4Simarom    PyObject* ascii_chars_b = NULL;
338aec3c8f4Simarom    const char* default_encoding_c;
339aec3c8f4Simarom    sys = PyImport_ImportModule("sys");
340aec3c8f4Simarom    if (!sys) goto bad;
341aec3c8f4Simarom    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
342aec3c8f4Simarom    Py_DECREF(sys);
343aec3c8f4Simarom    if (!default_encoding) goto bad;
344aec3c8f4Simarom    default_encoding_c = PyBytes_AsString(default_encoding);
345aec3c8f4Simarom    if (!default_encoding_c) goto bad;
346aec3c8f4Simarom    if (strcmp(default_encoding_c, "ascii") == 0) {
347aec3c8f4Simarom        __Pyx_sys_getdefaultencoding_not_ascii = 0;
348aec3c8f4Simarom    } else {
349aec3c8f4Simarom        char ascii_chars[128];
350aec3c8f4Simarom        int c;
351aec3c8f4Simarom        for (c = 0; c < 128; c++) {
352aec3c8f4Simarom            ascii_chars[c] = c;
353aec3c8f4Simarom        }
354aec3c8f4Simarom        __Pyx_sys_getdefaultencoding_not_ascii = 1;
355aec3c8f4Simarom        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
356aec3c8f4Simarom        if (!ascii_chars_u) goto bad;
357aec3c8f4Simarom        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
358aec3c8f4Simarom        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
359aec3c8f4Simarom            PyErr_Format(
360aec3c8f4Simarom                PyExc_ValueError,
361aec3c8f4Simarom                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
362aec3c8f4Simarom                default_encoding_c);
363aec3c8f4Simarom            goto bad;
364aec3c8f4Simarom        }
365aec3c8f4Simarom        Py_DECREF(ascii_chars_u);
366aec3c8f4Simarom        Py_DECREF(ascii_chars_b);
367aec3c8f4Simarom    }
368aec3c8f4Simarom    Py_DECREF(default_encoding);
369aec3c8f4Simarom    return 0;
370aec3c8f4Simarombad:
371aec3c8f4Simarom    Py_XDECREF(default_encoding);
372aec3c8f4Simarom    Py_XDECREF(ascii_chars_u);
373aec3c8f4Simarom    Py_XDECREF(ascii_chars_b);
374aec3c8f4Simarom    return -1;
375aec3c8f4Simarom}
376aec3c8f4Simarom#endif
377aec3c8f4Simarom#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
378aec3c8f4Simarom#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
379aec3c8f4Simarom#else
380aec3c8f4Simarom#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
381aec3c8f4Simarom#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
382aec3c8f4Simaromstatic char* __PYX_DEFAULT_STRING_ENCODING;
383aec3c8f4Simaromstatic int __Pyx_init_sys_getdefaultencoding_params(void) {
384aec3c8f4Simarom    PyObject* sys;
385aec3c8f4Simarom    PyObject* default_encoding = NULL;
386aec3c8f4Simarom    char* default_encoding_c;
387aec3c8f4Simarom    sys = PyImport_ImportModule("sys");
388aec3c8f4Simarom    if (!sys) goto bad;
389aec3c8f4Simarom    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
390aec3c8f4Simarom    Py_DECREF(sys);
391aec3c8f4Simarom    if (!default_encoding) goto bad;
392aec3c8f4Simarom    default_encoding_c = PyBytes_AsString(default_encoding);
393aec3c8f4Simarom    if (!default_encoding_c) goto bad;
394aec3c8f4Simarom    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c));
395aec3c8f4Simarom    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
396aec3c8f4Simarom    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
397aec3c8f4Simarom    Py_DECREF(default_encoding);
398aec3c8f4Simarom    return 0;
399aec3c8f4Simarombad:
400aec3c8f4Simarom    Py_XDECREF(default_encoding);
401aec3c8f4Simarom    return -1;
402aec3c8f4Simarom}
403aec3c8f4Simarom#endif
404aec3c8f4Simarom#endif
405aec3c8f4Simarom
406aec3c8f4Simarom
407aec3c8f4Simarom/* Test for GCC > 2.95 */
408aec3c8f4Simarom#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
409aec3c8f4Simarom  #define likely(x)   __builtin_expect(!!(x), 1)
410aec3c8f4Simarom  #define unlikely(x) __builtin_expect(!!(x), 0)
411aec3c8f4Simarom#else /* !__GNUC__ or GCC < 2.95 */
412aec3c8f4Simarom  #define likely(x)   (x)
413aec3c8f4Simarom  #define unlikely(x) (x)
414aec3c8f4Simarom#endif /* __GNUC__ */
415aec3c8f4Simarom
416aec3c8f4Simaromstatic PyObject *__pyx_m;
417aec3c8f4Simaromstatic PyObject *__pyx_d;
418aec3c8f4Simaromstatic PyObject *__pyx_b;
419aec3c8f4Simaromstatic PyObject *__pyx_empty_tuple;
420aec3c8f4Simaromstatic PyObject *__pyx_empty_bytes;
421aec3c8f4Simaromstatic int __pyx_lineno;
422aec3c8f4Simaromstatic int __pyx_clineno = 0;
423aec3c8f4Simaromstatic const char * __pyx_cfilenm= __FILE__;
424aec3c8f4Simaromstatic const char *__pyx_filename;
425aec3c8f4Simarom
426aec3c8f4Simarom
427aec3c8f4Simaromstatic const char *__pyx_f[] = {
428aec3c8f4Simarom  "zmq/backend/cython/socket.pyx",
429aec3c8f4Simarom  "zmq/backend/cython/socket.pxd",
430aec3c8f4Simarom  "zmq/backend/cython/checkrc.pxd",
431aec3c8f4Simarom  "zmq/backend/cython/message.pxd",
432aec3c8f4Simarom  "zmq/utils/buffers.pxd",
433aec3c8f4Simarom  "zmq/backend/cython/context.pxd",
434aec3c8f4Simarom  "type.pxd",
435aec3c8f4Simarom  "bool.pxd",
436aec3c8f4Simarom  "complex.pxd",
437aec3c8f4Simarom};
438aec3c8f4Simarom
439aec3c8f4Simarom/*--- Type declarations ---*/
440aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_7context_Context;
441aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_7message_MessageTracker;
442aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_7message_Frame;
443aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_6socket_Socket;
444aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_send;
445aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_recv;
446aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket__recv_frame;
447aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket__recv_copy;
448aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket__send_frame;
449aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket__send_copy;
450aec3c8f4Simarom
451aec3c8f4Simarom/* "zmq/backend/cython/socket.pxd":45
452aec3c8f4Simarom *
453aec3c8f4Simarom *     # cpdef methods for direct-cython access:
454aec3c8f4Simarom *     cpdef object send(self, object data, int flags=*, copy=*, track=*)             # <<<<<<<<<<<<<<
455aec3c8f4Simarom *     cpdef object recv(self, int flags=*, copy=*, track=*)
456aec3c8f4Simarom *
457aec3c8f4Simarom */
458aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_send {
459aec3c8f4Simarom  int __pyx_n;
460aec3c8f4Simarom  int flags;
461aec3c8f4Simarom  PyObject *copy;
462aec3c8f4Simarom  PyObject *track;
463aec3c8f4Simarom};
464aec3c8f4Simarom
465aec3c8f4Simarom/* "zmq/backend/cython/socket.pxd":46
466aec3c8f4Simarom *     # cpdef methods for direct-cython access:
467aec3c8f4Simarom *     cpdef object send(self, object data, int flags=*, copy=*, track=*)
468aec3c8f4Simarom *     cpdef object recv(self, int flags=*, copy=*, track=*)             # <<<<<<<<<<<<<<
469aec3c8f4Simarom *
470aec3c8f4Simarom */
471aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_recv {
472aec3c8f4Simarom  int __pyx_n;
473aec3c8f4Simarom  int flags;
474aec3c8f4Simarom  PyObject *copy;
475aec3c8f4Simarom  PyObject *track;
476aec3c8f4Simarom};
477aec3c8f4Simarom
478aec3c8f4Simarom/* "zmq/backend/cython/socket.pyx":121
479aec3c8f4Simarom *     return False
480aec3c8f4Simarom *
481aec3c8f4Simarom * cdef inline Frame _recv_frame(void *handle, int flags=0, track=False):             # <<<<<<<<<<<<<<
482aec3c8f4Simarom *     """Receive a message in a non-copying manner and return a Frame."""
483aec3c8f4Simarom *     cdef int rc
484aec3c8f4Simarom */
485aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket__recv_frame {
486aec3c8f4Simarom  int __pyx_n;
487aec3c8f4Simarom  int flags;
488aec3c8f4Simarom  PyObject *track;
489aec3c8f4Simarom};
490aec3c8f4Simarom
491aec3c8f4Simarom/* "zmq/backend/cython/socket.pyx":133
492aec3c8f4Simarom *     return msg
493aec3c8f4Simarom *
494aec3c8f4Simarom * cdef inline object _recv_copy(void *handle, int flags=0):             # <<<<<<<<<<<<<<
495aec3c8f4Simarom *     """Receive a message and return a copy"""
496aec3c8f4Simarom *     cdef zmq_msg_t zmq_msg
497aec3c8f4Simarom */
498aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket__recv_copy {
499aec3c8f4Simarom  int __pyx_n;
500aec3c8f4Simarom  int flags;
501aec3c8f4Simarom};
502aec3c8f4Simarom
503aec3c8f4Simarom/* "zmq/backend/cython/socket.pyx":144
504aec3c8f4Simarom *     return msg_bytes
505aec3c8f4Simarom *
506aec3c8f4Simarom * cdef inline object _send_frame(void *handle, Frame msg, int flags=0):             # <<<<<<<<<<<<<<
507aec3c8f4Simarom *     """Send a Frame on this socket in a non-copy manner."""
508aec3c8f4Simarom *     cdef int rc
509aec3c8f4Simarom */
510aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket__send_frame {
511aec3c8f4Simarom  int __pyx_n;
512aec3c8f4Simarom  int flags;
513aec3c8f4Simarom};
514aec3c8f4Simarom
515aec3c8f4Simarom/* "zmq/backend/cython/socket.pyx":160
516aec3c8f4Simarom *
517aec3c8f4Simarom *
518aec3c8f4Simarom * cdef inline object _send_copy(void *handle, object msg, int flags=0):             # <<<<<<<<<<<<<<
519aec3c8f4Simarom *     """Send a message on this socket by copying its content."""
520aec3c8f4Simarom *     cdef int rc, rc2
521aec3c8f4Simarom */
522aec3c8f4Simaromstruct __pyx_opt_args_3zmq_7backend_6cython_6socket__send_copy {
523aec3c8f4Simarom  int __pyx_n;
524aec3c8f4Simarom  int flags;
525aec3c8f4Simarom};
526aec3c8f4Simarom
527aec3c8f4Simarom/* "context.pxd":26
528aec3c8f4Simarom * #-----------------------------------------------------------------------------
529aec3c8f4Simarom *
530aec3c8f4Simarom * cdef class Context:             # <<<<<<<<<<<<<<
531aec3c8f4Simarom *
532aec3c8f4Simarom *     cdef object __weakref__     # enable weakref
533aec3c8f4Simarom */
534aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_7context_Context {
535aec3c8f4Simarom  PyObject_HEAD
536aec3c8f4Simarom  struct __pyx_vtabstruct_3zmq_7backend_6cython_7context_Context *__pyx_vtab;
537aec3c8f4Simarom  PyObject *__weakref__;
538aec3c8f4Simarom  void *handle;
539aec3c8f4Simarom  int _shadow;
540aec3c8f4Simarom  void **_sockets;
541aec3c8f4Simarom  size_t _n_sockets;
542aec3c8f4Simarom  size_t _max_sockets;
543aec3c8f4Simarom  int _pid;
544aec3c8f4Simarom  int closed;
545aec3c8f4Simarom};
546aec3c8f4Simarom
547aec3c8f4Simarom
548aec3c8f4Simarom/* "message.pxd":34
549aec3c8f4Simarom * #-----------------------------------------------------------------------------
550aec3c8f4Simarom *
551aec3c8f4Simarom * cdef class MessageTracker(object):             # <<<<<<<<<<<<<<
552aec3c8f4Simarom *
553aec3c8f4Simarom *     cdef set events  # Message Event objects to track.
554aec3c8f4Simarom */
555aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_7message_MessageTracker {
556aec3c8f4Simarom  PyObject_HEAD
557aec3c8f4Simarom  PyObject *events;
558aec3c8f4Simarom  PyObject *peers;
559aec3c8f4Simarom};
560aec3c8f4Simarom
561aec3c8f4Simarom
562aec3c8f4Simarom/* "message.pxd":40
563aec3c8f4Simarom *
564aec3c8f4Simarom *
565aec3c8f4Simarom * cdef class Frame:             # <<<<<<<<<<<<<<
566aec3c8f4Simarom *
567aec3c8f4Simarom *     cdef zmq_msg_t zmq_msg
568aec3c8f4Simarom */
569aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_7message_Frame {
570aec3c8f4Simarom  PyObject_HEAD
571aec3c8f4Simarom  struct __pyx_vtabstruct_3zmq_7backend_6cython_7message_Frame *__pyx_vtab;
572aec3c8f4Simarom  zmq_msg_t zmq_msg;
573aec3c8f4Simarom  PyObject *_data;
574aec3c8f4Simarom  PyObject *_buffer;
575aec3c8f4Simarom  PyObject *_bytes;
576aec3c8f4Simarom  int _failed_init;
577aec3c8f4Simarom  PyObject *tracker_event;
578aec3c8f4Simarom  PyObject *tracker;
579aec3c8f4Simarom  int more;
580aec3c8f4Simarom};
581aec3c8f4Simarom
582aec3c8f4Simarom
583aec3c8f4Simarom/* "zmq/backend/cython/socket.pxd":33
584aec3c8f4Simarom *
585aec3c8f4Simarom *
586aec3c8f4Simarom * cdef class Socket:             # <<<<<<<<<<<<<<
587aec3c8f4Simarom *
588aec3c8f4Simarom *     cdef object __weakref__     # enable weakref
589aec3c8f4Simarom */
590aec3c8f4Simaromstruct __pyx_obj_3zmq_7backend_6cython_6socket_Socket {
591aec3c8f4Simarom  PyObject_HEAD
592aec3c8f4Simarom  struct __pyx_vtabstruct_3zmq_7backend_6cython_6socket_Socket *__pyx_vtab;
593aec3c8f4Simarom  PyObject *__weakref__;
594aec3c8f4Simarom  void *handle;
595aec3c8f4Simarom  int _shadow;
596aec3c8f4Simarom  struct __pyx_obj_3zmq_7backend_6cython_7context_Context *context;
597aec3c8f4Simarom  int _closed;
598aec3c8f4Simarom  int _pid;
599aec3c8f4Simarom};
600aec3c8f4Simarom
601aec3c8f4Simarom
602aec3c8f4Simarom
603aec3c8f4Simarom/* "context.pxd":26
604aec3c8f4Simarom * #-----------------------------------------------------------------------------
605aec3c8f4Simarom *
606aec3c8f4Simarom * cdef class Context:             # <<<<<<<<<<<<<<
607aec3c8f4Simarom *
608aec3c8f4Simarom *     cdef object __weakref__     # enable weakref
609aec3c8f4Simarom */
610aec3c8f4Simarom
611aec3c8f4Simaromstruct __pyx_vtabstruct_3zmq_7backend_6cython_7context_Context {
612aec3c8f4Simarom  int (*_term)(struct __pyx_obj_3zmq_7backend_6cython_7context_Context *);
613aec3c8f4Simarom  void (*_add_socket)(struct __pyx_obj_3zmq_7backend_6cython_7context_Context *, void *);
614aec3c8f4Simarom  void (*_remove_socket)(struct __pyx_obj_3zmq_7backend_6cython_7context_Context *, void *);
615aec3c8f4Simarom};
616aec3c8f4Simaromstatic struct __pyx_vtabstruct_3zmq_7backend_6cython_7context_Context *__pyx_vtabptr_3zmq_7backend_6cython_7context_Context;
617aec3c8f4Simarom
618aec3c8f4Simarom
619aec3c8f4Simarom/* "message.pxd":40
620aec3c8f4Simarom *
621aec3c8f4Simarom *
622aec3c8f4Simarom * cdef class Frame:             # <<<<<<<<<<<<<<
623aec3c8f4Simarom *
624aec3c8f4Simarom *     cdef zmq_msg_t zmq_msg
625aec3c8f4Simarom */
626aec3c8f4Simarom
627aec3c8f4Simaromstruct __pyx_vtabstruct_3zmq_7backend_6cython_7message_Frame {
628aec3c8f4Simarom  struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *(*fast_copy)(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *);
629aec3c8f4Simarom  PyObject *(*_getbuffer)(struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *);
630aec3c8f4Simarom};
631aec3c8f4Simaromstatic struct __pyx_vtabstruct_3zmq_7backend_6cython_7message_Frame *__pyx_vtabptr_3zmq_7backend_6cython_7message_Frame;
632aec3c8f4Simarom
633aec3c8f4Simarom
634aec3c8f4Simarom/* "zmq/backend/cython/socket.pyx":185
635aec3c8f4Simarom *
636aec3c8f4Simarom *
637aec3c8f4Simarom * cdef class Socket:             # <<<<<<<<<<<<<<
638aec3c8f4Simarom *     """Socket(context, socket_type)
639aec3c8f4Simarom *
640aec3c8f4Simarom */
641aec3c8f4Simarom
642aec3c8f4Simaromstruct __pyx_vtabstruct_3zmq_7backend_6cython_6socket_Socket {
643aec3c8f4Simarom  PyObject *(*send)(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_send *__pyx_optional_args);
644aec3c8f4Simarom  PyObject *(*recv)(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *, int __pyx_skip_dispatch, struct __pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_recv *__pyx_optional_args);
645aec3c8f4Simarom};
646aec3c8f4Simaromstatic struct __pyx_vtabstruct_3zmq_7backend_6cython_6socket_Socket *__pyx_vtabptr_3zmq_7backend_6cython_6socket_Socket;
647aec3c8f4Simarom#ifndef CYTHON_REFNANNY
648aec3c8f4Simarom  #define CYTHON_REFNANNY 0
649aec3c8f4Simarom#endif
650aec3c8f4Simarom#if CYTHON_REFNANNY
651aec3c8f4Simarom  typedef struct {
652aec3c8f4Simarom    void (*INCREF)(void*, PyObject*, int);
653aec3c8f4Simarom    void (*DECREF)(void*, PyObject*, int);
654aec3c8f4Simarom    void (*GOTREF)(void*, PyObject*, int);
655aec3c8f4Simarom    void (*GIVEREF)(void*, PyObject*, int);
656aec3c8f4Simarom    void* (*SetupContext)(const char*, int, const char*);
657aec3c8f4Simarom    void (*FinishContext)(void**);
658aec3c8f4Simarom  } __Pyx_RefNannyAPIStruct;
659aec3c8f4Simarom  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
660aec3c8f4Simarom  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
661aec3c8f4Simarom  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
662aec3c8f4Simarom#ifdef WITH_THREAD
663aec3c8f4Simarom  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
664aec3c8f4Simarom          if (acquire_gil) { \
665aec3c8f4Simarom              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \
666aec3c8f4Simarom              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
667aec3c8f4Simarom              PyGILState_Release(__pyx_gilstate_save); \
668aec3c8f4Simarom          } else { \
669aec3c8f4Simarom              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
670aec3c8f4Simarom          }
671aec3c8f4Simarom#else
672aec3c8f4Simarom  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
673aec3c8f4Simarom          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
674aec3c8f4Simarom#endif
675aec3c8f4Simarom  #define __Pyx_RefNannyFinishContext() \
676aec3c8f4Simarom          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
677aec3c8f4Simarom  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
678aec3c8f4Simarom  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
679aec3c8f4Simarom  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
680aec3c8f4Simarom  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
681aec3c8f4Simarom  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
682aec3c8f4Simarom  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
683aec3c8f4Simarom  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
684aec3c8f4Simarom  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
685aec3c8f4Simarom#else
686aec3c8f4Simarom  #define __Pyx_RefNannyDeclarations
687aec3c8f4Simarom  #define __Pyx_RefNannySetupContext(name, acquire_gil)
688aec3c8f4Simarom  #define __Pyx_RefNannyFinishContext()
689aec3c8f4Simarom  #define __Pyx_INCREF(r) Py_INCREF(r)
690aec3c8f4Simarom  #define __Pyx_DECREF(r) Py_DECREF(r)
691aec3c8f4Simarom  #define __Pyx_GOTREF(r)
692aec3c8f4Simarom  #define __Pyx_GIVEREF(r)
693aec3c8f4Simarom  #define __Pyx_XINCREF(r) Py_XINCREF(r)
694aec3c8f4Simarom  #define __Pyx_XDECREF(r) Py_XDECREF(r)
695aec3c8f4Simarom  #define __Pyx_XGOTREF(r)
696aec3c8f4Simarom  #define __Pyx_XGIVEREF(r)
697aec3c8f4Simarom#endif
698aec3c8f4Simarom#define __Pyx_XDECREF_SET(r, v) do {                            \
699aec3c8f4Simarom        PyObject *tmp = (PyObject *) r;                         \
700aec3c8f4Simarom        r = v; __Pyx_XDECREF(tmp);                              \
701aec3c8f4Simarom    } while (0)
702aec3c8f4Simarom#define __Pyx_DECREF_SET(r, v) do {                             \
703aec3c8f4Simarom        PyObject *tmp = (PyObject *) r;                         \
704aec3c8f4Simarom        r = v; __Pyx_DECREF(tmp);                               \
705aec3c8f4Simarom    } while (0)
706aec3c8f4Simarom#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
707aec3c8f4Simarom#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
708aec3c8f4Simarom
709aec3c8f4Simarom#if CYTHON_COMPILING_IN_CPYTHON
710aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
711aec3c8f4Simarom    PyTypeObject* tp = Py_TYPE(obj);
712aec3c8f4Simarom    if (likely(tp->tp_getattro))
713aec3c8f4Simarom        return tp->tp_getattro(obj, attr_name);
714aec3c8f4Simarom#if PY_MAJOR_VERSION < 3
715aec3c8f4Simarom    if (likely(tp->tp_getattr))
716aec3c8f4Simarom        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
717aec3c8f4Simarom#endif
718aec3c8f4Simarom    return PyObject_GetAttr(obj, attr_name);
719aec3c8f4Simarom}
720aec3c8f4Simarom#else
721aec3c8f4Simarom#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
722aec3c8f4Simarom#endif
723aec3c8f4Simarom
724aec3c8f4Simaromstatic PyObject *__Pyx_GetBuiltinName(PyObject *name);
725aec3c8f4Simarom
726aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name);
727aec3c8f4Simarom
728aec3c8f4Simarom#if CYTHON_COMPILING_IN_CPYTHON
729aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
730aec3c8f4Simarom#else
731aec3c8f4Simarom#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
732aec3c8f4Simarom#endif
733aec3c8f4Simarom
734aec3c8f4Simarom#if CYTHON_COMPILING_IN_CPYTHON
735aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
736aec3c8f4Simarom#endif
737aec3c8f4Simarom
738aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
739aec3c8f4Simarom
740aec3c8f4Simaromstatic CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb);
741aec3c8f4Simaromstatic CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb);
742aec3c8f4Simarom
743aec3c8f4Simaromstatic void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
744aec3c8f4Simarom
745aec3c8f4Simaromstatic CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);
746aec3c8f4Simarom
747aec3c8f4Simaromstatic void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
748aec3c8f4Simarom
749aec3c8f4Simaromstatic int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \
750aec3c8f4Simarom    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \
751aec3c8f4Simarom    const char* function_name);
752aec3c8f4Simarom
753aec3c8f4Simaromstatic void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
754aec3c8f4Simarom    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
755aec3c8f4Simarom
756aec3c8f4Simaromstatic CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
757aec3c8f4Simarom    const char *name, int exact);
758aec3c8f4Simarom
759aec3c8f4Simarom#if CYTHON_COMPILING_IN_CPYTHON
760aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
761aec3c8f4Simarom#else
762aec3c8f4Simarom#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
763aec3c8f4Simarom#endif
764aec3c8f4Simarom
765aec3c8f4Simaromstatic void __Pyx_WriteUnraisable(const char *name, int clineno,
766aec3c8f4Simarom                                  int lineno, const char *filename,
767aec3c8f4Simarom                                  int full_traceback);
768aec3c8f4Simarom
769aec3c8f4Simaromstatic CYTHON_INLINE int __Pyx_PySequence_Contains(PyObject* item, PyObject* seq, int eq) {
770aec3c8f4Simarom    int result = PySequence_Contains(seq, item);
771aec3c8f4Simarom    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
772aec3c8f4Simarom}
773aec3c8f4Simarom
774aec3c8f4Simarom#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
775aec3c8f4Simarom    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
776aec3c8f4Simarom    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) : \
777aec3c8f4Simarom    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) : \
778aec3c8f4Simarom               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
779aec3c8f4Simarom#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
780aec3c8f4Simarom    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
781aec3c8f4Simarom    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) : \
782aec3c8f4Simarom    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
783aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
784aec3c8f4Simarom                                                              int wraparound, int boundscheck);
785aec3c8f4Simarom#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
786aec3c8f4Simarom    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
787aec3c8f4Simarom    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) : \
788aec3c8f4Simarom    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
789aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
790aec3c8f4Simarom                                                              int wraparound, int boundscheck);
791aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
792aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
793aec3c8f4Simarom                                                     int is_list, int wraparound, int boundscheck);
794aec3c8f4Simarom
795aec3c8f4Simaromstatic PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
796aec3c8f4Simarom
797aec3c8f4Simaromstatic CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb);
798aec3c8f4Simaromstatic void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb);
799aec3c8f4Simarom
800aec3c8f4Simaromstatic int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
801aec3c8f4Simarom
802aec3c8f4Simaromstatic int __Pyx_SetVtable(PyObject *dict, void *vtable);
803aec3c8f4Simarom
804aec3c8f4Simaromstatic void* __Pyx_GetVtable(PyObject *dict);
805aec3c8f4Simarom
806aec3c8f4Simaromstatic PyObject *__Pyx_GetNameInClass(PyObject *nmspace, PyObject *name);
807aec3c8f4Simarom
808aec3c8f4Simaromtypedef struct {
809aec3c8f4Simarom    int code_line;
810aec3c8f4Simarom    PyCodeObject* code_object;
811aec3c8f4Simarom} __Pyx_CodeObjectCacheEntry;
812aec3c8f4Simaromstruct __Pyx_CodeObjectCache {
813aec3c8f4Simarom    int count;
814aec3c8f4Simarom    int max_count;
815aec3c8f4Simarom    __Pyx_CodeObjectCacheEntry* entries;
816aec3c8f4Simarom};
817aec3c8f4Simaromstatic struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
818aec3c8f4Simaromstatic int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
819aec3c8f4Simaromstatic PyCodeObject *__pyx_find_code_object(int code_line);
820aec3c8f4Simaromstatic void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
821aec3c8f4Simarom
822aec3c8f4Simaromstatic void __Pyx_AddTraceback(const char *funcname, int c_line,
823aec3c8f4Simarom                               int py_line, const char *filename);
824aec3c8f4Simarom
825aec3c8f4Simaromstatic PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
826aec3c8f4Simarom
827aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
828aec3c8f4Simarom
829aec3c8f4Simaromstatic CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
830aec3c8f4Simarom
831aec3c8f4Simaromstatic CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);
832aec3c8f4Simarom
833aec3c8f4Simarom#ifndef __PYX_FORCE_INIT_THREADS
834aec3c8f4Simarom  #define __PYX_FORCE_INIT_THREADS 0
835aec3c8f4Simarom#endif
836aec3c8f4Simarom
837aec3c8f4Simaromstatic CYTHON_INLINE pyzmq_int64_t __Pyx_PyInt_As_pyzmq_int64_t(PyObject *);
838aec3c8f4Simarom
839aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyInt_From_pyzmq_int64_t(pyzmq_int64_t value);
840aec3c8f4Simarom
841aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyInt_From_ZMQ_FD_T(ZMQ_FD_T value);
842aec3c8f4Simarom
843aec3c8f4Simaromstatic CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
844aec3c8f4Simarom
845aec3c8f4Simaromstatic CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
846aec3c8f4Simarom
847aec3c8f4Simaromstatic CYTHON_INLINE int __Pyx_StrEq(const char *, const char *); /*proto*/
848aec3c8f4Simarom
849aec3c8f4Simaromstatic int __Pyx_check_binary_version(void);
850aec3c8f4Simarom
851aec3c8f4Simarom#if !defined(__Pyx_PyIdentifier_FromString)
852aec3c8f4Simarom#if PY_MAJOR_VERSION < 3
853aec3c8f4Simarom  #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
854aec3c8f4Simarom#else
855aec3c8f4Simarom  #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
856aec3c8f4Simarom#endif
857aec3c8f4Simarom#endif
858aec3c8f4Simarom
859aec3c8f4Simaromstatic PyObject *__Pyx_ImportModule(const char *name);
860aec3c8f4Simarom
861aec3c8f4Simaromstatic PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict);
862aec3c8f4Simarom
863aec3c8f4Simaromstatic int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
864aec3c8f4Simarom
865aec3c8f4Simaromstatic PyObject *__pyx_f_3zmq_7backend_6cython_6socket_6Socket_send(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, PyObject *__pyx_v_data, int __pyx_skip_dispatch, struct __pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_send *__pyx_optional_args); /* proto*/
866aec3c8f4Simaromstatic PyObject *__pyx_f_3zmq_7backend_6cython_6socket_6Socket_recv(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_3zmq_7backend_6cython_6socket_6Socket_recv *__pyx_optional_args); /* proto*/
867aec3c8f4Simarom
868aec3c8f4Simarom/* Module declarations from 'zmq.backend.cython.context' */
869aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_3zmq_7backend_6cython_7context_Context = 0;
870aec3c8f4Simarom
871aec3c8f4Simarom/* Module declarations from 'libc.errno' */
872aec3c8f4Simarom
873aec3c8f4Simarom/* Module declarations from 'libc.string' */
874aec3c8f4Simarom
875aec3c8f4Simarom/* Module declarations from 'cpython.version' */
876aec3c8f4Simarom
877aec3c8f4Simarom/* Module declarations from 'cpython.ref' */
878aec3c8f4Simarom
879aec3c8f4Simarom/* Module declarations from 'cpython.exc' */
880aec3c8f4Simarom
881aec3c8f4Simarom/* Module declarations from 'cpython.module' */
882aec3c8f4Simarom
883aec3c8f4Simarom/* Module declarations from 'cpython.mem' */
884aec3c8f4Simarom
885aec3c8f4Simarom/* Module declarations from 'cpython.tuple' */
886aec3c8f4Simarom
887aec3c8f4Simarom/* Module declarations from 'cpython.list' */
888aec3c8f4Simarom
889aec3c8f4Simarom/* Module declarations from 'libc.stdio' */
890aec3c8f4Simarom
891aec3c8f4Simarom/* Module declarations from 'cpython.object' */
892aec3c8f4Simarom
893aec3c8f4Simarom/* Module declarations from 'cpython.sequence' */
894aec3c8f4Simarom
895aec3c8f4Simarom/* Module declarations from 'cpython.mapping' */
896aec3c8f4Simarom
897aec3c8f4Simarom/* Module declarations from 'cpython.iterator' */
898aec3c8f4Simarom
899aec3c8f4Simarom/* Module declarations from '__builtin__' */
900aec3c8f4Simarom
901aec3c8f4Simarom/* Module declarations from 'cpython.type' */
902aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
903aec3c8f4Simarom
904aec3c8f4Simarom/* Module declarations from 'cpython.number' */
905aec3c8f4Simarom
906aec3c8f4Simarom/* Module declarations from 'cpython.int' */
907aec3c8f4Simarom
908aec3c8f4Simarom/* Module declarations from '__builtin__' */
909aec3c8f4Simarom
910aec3c8f4Simarom/* Module declarations from 'cpython.bool' */
911aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0;
912aec3c8f4Simarom
913aec3c8f4Simarom/* Module declarations from 'cpython.long' */
914aec3c8f4Simarom
915aec3c8f4Simarom/* Module declarations from 'cpython.float' */
916aec3c8f4Simarom
917aec3c8f4Simarom/* Module declarations from '__builtin__' */
918aec3c8f4Simarom
919aec3c8f4Simarom/* Module declarations from 'cpython.complex' */
920aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0;
921aec3c8f4Simarom
922aec3c8f4Simarom/* Module declarations from 'cpython.string' */
923aec3c8f4Simarom
924aec3c8f4Simarom/* Module declarations from 'cpython.unicode' */
925aec3c8f4Simarom
926aec3c8f4Simarom/* Module declarations from 'cpython.dict' */
927aec3c8f4Simarom
928aec3c8f4Simarom/* Module declarations from 'cpython.instance' */
929aec3c8f4Simarom
930aec3c8f4Simarom/* Module declarations from 'cpython.function' */
931aec3c8f4Simarom
932aec3c8f4Simarom/* Module declarations from 'cpython.method' */
933aec3c8f4Simarom
934aec3c8f4Simarom/* Module declarations from 'cpython.weakref' */
935aec3c8f4Simarom
936aec3c8f4Simarom/* Module declarations from 'cpython.getargs' */
937aec3c8f4Simarom
938aec3c8f4Simarom/* Module declarations from 'cpython.pythread' */
939aec3c8f4Simarom
940aec3c8f4Simarom/* Module declarations from 'cpython.pystate' */
941aec3c8f4Simarom
942aec3c8f4Simarom/* Module declarations from 'cpython.cobject' */
943aec3c8f4Simarom
944aec3c8f4Simarom/* Module declarations from 'cpython.oldbuffer' */
945aec3c8f4Simarom
946aec3c8f4Simarom/* Module declarations from 'cpython.set' */
947aec3c8f4Simarom
948aec3c8f4Simarom/* Module declarations from 'cpython.buffer' */
949aec3c8f4Simarom
950aec3c8f4Simarom/* Module declarations from 'cpython.bytes' */
951aec3c8f4Simarom
952aec3c8f4Simarom/* Module declarations from 'cpython.pycapsule' */
953aec3c8f4Simarom
954aec3c8f4Simarom/* Module declarations from 'cpython' */
955aec3c8f4Simarom
956aec3c8f4Simarom/* Module declarations from 'buffers' */
957aec3c8f4Simaromstatic CYTHON_INLINE int __pyx_f_7buffers_memoryview_available(void); /*proto*/
958aec3c8f4Simaromstatic CYTHON_INLINE int __pyx_f_7buffers_oldstyle_available(void); /*proto*/
959aec3c8f4Simaromstatic CYTHON_INLINE int __pyx_f_7buffers_check_buffer(PyObject *); /*proto*/
960aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_asbuffer(PyObject *, int, int, void **, Py_ssize_t *, Py_ssize_t *); /*proto*/
961aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_asbuffer_r(PyObject *, void **, Py_ssize_t *); /*proto*/
962aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_frombuffer_3(void *, Py_ssize_t, int); /*proto*/
963aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_frombuffer_2(void *, Py_ssize_t, int); /*proto*/
964aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_frombuffer(void *, Py_ssize_t, int); /*proto*/
965aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_viewfromobject(PyObject *, int); /*proto*/
966aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_7buffers_viewfromobject_r(PyObject *); /*proto*/
967aec3c8f4Simarom
968aec3c8f4Simarom/* Module declarations from 'zmq.backend.cython.libzmq' */
969aec3c8f4Simarom
970aec3c8f4Simarom/* Module declarations from 'zmq.backend.cython.message' */
971aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_3zmq_7backend_6cython_7message_MessageTracker = 0;
972aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_3zmq_7backend_6cython_7message_Frame = 0;
973aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_7message_copy_zmq_msg_bytes(zmq_msg_t *); /*proto*/
974aec3c8f4Simarom
975aec3c8f4Simarom/* Module declarations from 'zmq.backend.cython.checkrc' */
976aec3c8f4Simaromstatic CYTHON_INLINE int __pyx_f_3zmq_7backend_6cython_7checkrc__check_rc(int); /*proto*/
977aec3c8f4Simarom
978aec3c8f4Simarom/* Module declarations from 'zmq.backend.cython.socket' */
979aec3c8f4Simaromstatic PyTypeObject *__pyx_ptype_3zmq_7backend_6cython_6socket_Socket = 0;
980aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_6socket__check_closed(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *); /*proto*/
981aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_6socket__check_closed_deep(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *); /*proto*/
982aec3c8f4Simaromstatic CYTHON_INLINE struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_f_3zmq_7backend_6cython_6socket__recv_frame(void *, struct __pyx_opt_args_3zmq_7backend_6cython_6socket__recv_frame *__pyx_optional_args); /*proto*/
983aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_6socket__recv_copy(void *, struct __pyx_opt_args_3zmq_7backend_6cython_6socket__recv_copy *__pyx_optional_args); /*proto*/
984aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_6socket__send_frame(void *, struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *, struct __pyx_opt_args_3zmq_7backend_6cython_6socket__send_frame *__pyx_optional_args); /*proto*/
985aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_6socket__send_copy(void *, PyObject *, struct __pyx_opt_args_3zmq_7backend_6cython_6socket__send_copy *__pyx_optional_args); /*proto*/
986aec3c8f4Simarom#define __Pyx_MODULE_NAME "zmq.backend.cython.socket"
987aec3c8f4Simaromint __pyx_module_is_main_zmq__backend__cython__socket = 0;
988aec3c8f4Simarom
989aec3c8f4Simarom/* Implementation of 'zmq.backend.cython.socket' */
990aec3c8f4Simaromstatic PyObject *__pyx_builtin_property;
991aec3c8f4Simaromstatic PyObject *__pyx_builtin_TypeError;
992aec3c8f4Simaromstatic PyObject *__pyx_builtin_ValueError;
993aec3c8f4Simaromstatic PyObject *__pyx_builtin_AttributeError;
994aec3c8f4Simaromstatic PyObject *__pyx_builtin_NotImplementedError;
995aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_6socket_6Socket___init__(CYTHON_UNUSED struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_context, CYTHON_UNUSED PyObject *__pyx_v_socket_type, CYTHON_UNUSED PyObject *__pyx_v_shadow); /* proto */
996aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_6socket_6Socket_2__cinit__(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, struct __pyx_obj_3zmq_7backend_6cython_7context_Context *__pyx_v_context, int __pyx_v_socket_type, size_t __pyx_v_shadow, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */
997aec3c8f4Simaromstatic void __pyx_pf_3zmq_7backend_6cython_6socket_6Socket_4__dealloc__(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self); /* proto */
998aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_6underlying(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self); /* proto */
999aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_8closed(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self); /* proto */
1000aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_10close(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, PyObject *__pyx_v_linger); /* proto */
1001aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_12set(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, int __pyx_v_option, PyObject *__pyx_v_optval); /* proto */
1002aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_14get(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, int __pyx_v_option); /* proto */
1003aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_16bind(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, PyObject *__pyx_v_addr); /* proto */
1004aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_18connect(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, PyObject *__pyx_v_addr); /* proto */
1005aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_20unbind(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, PyObject *__pyx_v_addr); /* proto */
1006aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_22disconnect(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, PyObject *__pyx_v_addr); /* proto */
1007aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_24monitor(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, PyObject *__pyx_v_addr, int __pyx_v_events); /* proto */
1008aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_26send(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, PyObject *__pyx_v_data, int __pyx_v_flags, PyObject *__pyx_v_copy, PyObject *__pyx_v_track); /* proto */
1009aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_28recv(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, int __pyx_v_flags, PyObject *__pyx_v_copy, PyObject *__pyx_v_track); /* proto */
1010aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_7context___get__(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self); /* proto */
1011aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_6socket_6Socket_7context_2__set__(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
1012aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_6socket_6Socket_7context_4__del__(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self); /* proto */
1013aec3c8f4Simaromstatic PyObject *__pyx_pf_3zmq_7backend_6cython_6socket_6Socket_7_closed___get__(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self); /* proto */
1014aec3c8f4Simaromstatic int __pyx_pf_3zmq_7backend_6cython_6socket_6Socket_7_closed_2__set__(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
1015aec3c8f4Simaromstatic PyObject *__pyx_tp_new_3zmq_7backend_6cython_6socket_Socket(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
1016aec3c8f4Simaromstatic char __pyx_k_B[] = "B";
1017aec3c8f4Simaromstatic char __pyx_k__6[] = "://";
1018aec3c8f4Simaromstatic char __pyx_k__22[] = "";
1019aec3c8f4Simaromstatic char __pyx_k__24[] = "*";
1020aec3c8f4Simaromstatic char __pyx_k_all[] = "__all__";
1021aec3c8f4Simaromstatic char __pyx_k_msg[] = "msg";
1022aec3c8f4Simaromstatic char __pyx_k_sys[] = "sys";
1023aec3c8f4Simaromstatic char __pyx_k_zmq[] = "zmq";
1024aec3c8f4Simaromstatic char __pyx_k_addr[] = "addr";
1025aec3c8f4Simaromstatic char __pyx_k_char[] = "char";
1026aec3c8f4Simaromstatic char __pyx_k_copy[] = "copy";
1027aec3c8f4Simaromstatic char __pyx_k_data[] = "data";
1028aec3c8f4Simaromstatic char __pyx_k_main[] = "__main__";
1029aec3c8f4Simaromstatic char __pyx_k_recv[] = "recv";
1030aec3c8f4Simaromstatic char __pyx_k_send[] = "send";
1031aec3c8f4Simaromstatic char __pyx_k_test[] = "__test__";
1032aec3c8f4Simaromstatic char __pyx_k_time[] = "time";
1033aec3c8f4Simaromstatic char __pyx_k_Again[] = "Again";
1034aec3c8f4Simaromstatic char __pyx_k_Frame[] = "Frame";
1035aec3c8f4Simaromstatic char __pyx_k_ascii[] = "ascii";
1036aec3c8f4Simaromstatic char __pyx_k_bytes[] = "bytes";
1037aec3c8f4Simaromstatic char __pyx_k_dtype[] = "dtype";
1038aec3c8f4Simaromstatic char __pyx_k_flags[] = "flags";
1039aec3c8f4Simaromstatic char __pyx_k_split[] = "split";
1040aec3c8f4Simaromstatic char __pyx_k_track[] = "track";
1041aec3c8f4Simaromstatic char __pyx_k_utf_8[] = "utf-8";
1042aec3c8f4Simaromstatic char __pyx_k_Socket[] = "Socket";
1043aec3c8f4Simaromstatic char __pyx_k_buffer[] = "buffer";
1044aec3c8f4Simaromstatic char __pyx_k_closed[] = "closed";
1045aec3c8f4Simaromstatic char __pyx_k_codecs[] = "codecs";
1046aec3c8f4Simaromstatic char __pyx_k_decode[] = "decode";
1047aec3c8f4Simaromstatic char __pyx_k_encode[] = "encode";
1048aec3c8f4Simaromstatic char __pyx_k_events[] = "events";
1049aec3c8f4Simaromstatic char __pyx_k_format[] = "format";
1050aec3c8f4Simaromstatic char __pyx_k_import[] = "__import__";
1051aec3c8f4Simaromstatic char __pyx_k_linger[] = "linger";
1052aec3c8f4Simaromstatic char __pyx_k_option[] = "option";
1053aec3c8f4Simaromstatic char __pyx_k_optval[] = "optval";
1054aec3c8f4Simaromstatic char __pyx_k_pickle[] = "pickle";
1055aec3c8f4Simaromstatic char __pyx_k_random[] = "random";
1056aec3c8f4Simaromstatic char __pyx_k_shadow[] = "shadow";
1057aec3c8f4Simaromstatic char __pyx_k_struct[] = "struct";
1058aec3c8f4Simaromstatic char __pyx_k_unbind[] = "unbind";
1059aec3c8f4Simaromstatic char __pyx_k_RCVMORE[] = "RCVMORE";
1060aec3c8f4Simaromstatic char __pyx_k_cPickle[] = "cPickle";
1061aec3c8f4Simaromstatic char __pyx_k_context[] = "context";
1062aec3c8f4Simaromstatic char __pyx_k_jsonapi[] = "jsonapi";
1063aec3c8f4Simaromstatic char __pyx_k_monitor[] = "monitor";
1064aec3c8f4Simaromstatic char __pyx_k_replace[] = "replace";
1065aec3c8f4Simaromstatic char __pyx_k_tracker[] = "tracker";
1066aec3c8f4Simaromstatic char __pyx_k_unicode[] = "unicode";
1067aec3c8f4Simaromstatic char __pyx_k_ENOTSOCK[] = "ENOTSOCK";
1068aec3c8f4Simaromstatic char __pyx_k_ZMQError[] = "ZMQError";
1069aec3c8f4Simaromstatic char __pyx_k_copy_mod[] = "copy_mod";
1070aec3c8f4Simaromstatic char __pyx_k_itemsize[] = "itemsize";
1071aec3c8f4Simaromstatic char __pyx_k_property[] = "property";
1072aec3c8f4Simaromstatic char __pyx_k_typecode[] = "typecode";
1073aec3c8f4Simaromstatic char __pyx_k_TypeError[] = "TypeError";
1074aec3c8f4Simaromstatic char __pyx_k_constants[] = "constants";
1075aec3c8f4Simaromstatic char __pyx_k_zmq_error[] = "zmq.error";
1076aec3c8f4Simaromstatic char __pyx_k_zmq_utils[] = "zmq.utils";
1077aec3c8f4Simaromstatic char __pyx_k_ValueError[] = "ValueError";
1078aec3c8f4Simaromstatic char __pyx_k_basestring[] = "basestring";
1079aec3c8f4Simaromstatic char __pyx_k_disconnect[] = "disconnect";
1080aec3c8f4Simaromstatic char __pyx_k_getsockopt[] = "getsockopt";
1081aec3c8f4Simaromstatic char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
1082aec3c8f4Simaromstatic char __pyx_k_underlying[] = "underlying";
1083aec3c8f4Simaromstatic char __pyx_k_fd_sockopts[] = "fd_sockopts";
1084aec3c8f4Simaromstatic char __pyx_k_socket_type[] = "socket_type";
1085aec3c8f4Simaromstatic char __pyx_k_ZMQBindError[] = "ZMQBindError";
1086aec3c8f4Simaromstatic char __pyx_k_check_version[] = "_check_version";
1087aec3c8f4Simaromstatic char __pyx_k_AttributeError[] = "AttributeError";
1088aec3c8f4Simaromstatic char __pyx_k_bytes_sockopts[] = "bytes_sockopts";
1089aec3c8f4Simaromstatic char __pyx_k_int64_sockopts[] = "int64_sockopts";
1090aec3c8f4Simaromstatic char __pyx_k_0MQ_Socket_class[] = "0MQ Socket class.";
1091aec3c8f4Simaromstatic char __pyx_k_IPC_PATH_MAX_LEN[] = "IPC_PATH_MAX_LEN";
1092aec3c8f4Simaromstatic char __pyx_k_ContextTerminated[] = "ContextTerminated";
1093aec3c8f4Simaromstatic char __pyx_k_expected_int_got_r[] = "expected int, got: %r";
1094aec3c8f4Simaromstatic char __pyx_k_expected_str_got_r[] = "expected str, got: %r";
1095aec3c8f4Simaromstatic char __pyx_k_zmq_backend_cython[] = "zmq.backend.cython";
1096aec3c8f4Simaromstatic char __pyx_k_zmq_utils_strtypes[] = "zmq.utils.strtypes";
1097aec3c8f4Simaromstatic char __pyx_k_NotImplementedError[] = "NotImplementedError";
1098aec3c8f4Simaromstatic char __pyx_k_expected_bytes_got_r[] = "expected bytes, got: %r";
1099aec3c8f4Simaromstatic char __pyx_k_Not_a_tracked_message[] = "Not a tracked message";
1100aec3c8f4Simaromstatic char __pyx_k_context_must_be_specified[] = "context must be specified";
1101aec3c8f4Simaromstatic char __pyx_k_zmq_backend_cython_constants[] = "zmq.backend.cython.constants";
1102aec3c8f4Simaromstatic char __pyx_k_socket_type_must_be_specified[] = "socket_type must be specified";
1103aec3c8f4Simaromstatic char __pyx_k_Old_style_buffers_not_available[] = "Old style buffers not available.";
1104aec3c8f4Simaromstatic char __pyx_k_r_does_not_provide_a_buffer_int[] = "%r does not provide a buffer interface.";
1105aec3c8f4Simaromstatic char __pyx_k_ipc_path_0_is_longer_than_1_char[] = "ipc path \"{0}\" is longer than {1} characters (sizeof(sockaddr_un.sun_path)). zmq.IPC_PATH_MAX_LEN constant can be used to check addr length (if it is defined).";
1106aec3c8f4Simaromstatic char __pyx_k_unicode_not_allowed_use_send_str[] = "unicode not allowed, use send_string";
1107aec3c8f4Simaromstatic char __pyx_k_unicode_not_allowed_use_setsocko[] = "unicode not allowed, use setsockopt_string";
1108aec3c8f4Simaromstatic PyObject *__pyx_n_s_Again;
1109aec3c8f4Simaromstatic PyObject *__pyx_n_s_AttributeError;
1110aec3c8f4Simaromstatic PyObject *__pyx_n_b_B;
1111aec3c8f4Simaromstatic PyObject *__pyx_n_s_ContextTerminated;
1112aec3c8f4Simaromstatic PyObject *__pyx_n_s_ENOTSOCK;
1113aec3c8f4Simaromstatic PyObject *__pyx_n_s_Frame;
1114aec3c8f4Simaromstatic PyObject *__pyx_n_s_IPC_PATH_MAX_LEN;
1115aec3c8f4Simaromstatic PyObject *__pyx_n_s_NotImplementedError;
1116aec3c8f4Simaromstatic PyObject *__pyx_kp_s_Not_a_tracked_message;
1117aec3c8f4Simaromstatic PyObject *__pyx_kp_s_Old_style_buffers_not_available;
1118aec3c8f4Simaromstatic PyObject *__pyx_n_s_RCVMORE;
1119aec3c8f4Simaromstatic PyObject *__pyx_n_s_Socket;
1120aec3c8f4Simaromstatic PyObject *__pyx_n_s_TypeError;
1121aec3c8f4Simaromstatic PyObject *__pyx_n_s_ValueError;
1122aec3c8f4Simaromstatic PyObject *__pyx_n_s_ZMQBindError;
1123aec3c8f4Simaromstatic PyObject *__pyx_n_s_ZMQError;
1124aec3c8f4Simaromstatic PyObject *__pyx_kp_s__22;
1125aec3c8f4Simaromstatic PyObject *__pyx_n_s__24;
1126aec3c8f4Simaromstatic PyObject *__pyx_kp_s__6;
1127aec3c8f4Simaromstatic PyObject *__pyx_n_s_addr;
1128aec3c8f4Simaromstatic PyObject *__pyx_n_s_all;
1129aec3c8f4Simaromstatic PyObject *__pyx_n_s_ascii;
1130aec3c8f4Simaromstatic PyObject *__pyx_n_s_basestring;
1131aec3c8f4Simaromstatic PyObject *__pyx_n_s_buffer;
1132aec3c8f4Simaromstatic PyObject *__pyx_n_s_bytes;
1133aec3c8f4Simaromstatic PyObject *__pyx_n_s_bytes_sockopts;
1134aec3c8f4Simaromstatic PyObject *__pyx_n_s_cPickle;
1135aec3c8f4Simaromstatic PyObject *__pyx_n_s_char;
1136aec3c8f4Simaromstatic PyObject *__pyx_n_s_check_version;
1137aec3c8f4Simaromstatic PyObject *__pyx_n_s_closed;
1138aec3c8f4Simaromstatic PyObject *__pyx_n_s_codecs;
1139aec3c8f4Simaromstatic PyObject *__pyx_n_s_constants;
1140aec3c8f4Simaromstatic PyObject *__pyx_n_s_context;
1141aec3c8f4Simaromstatic PyObject *__pyx_kp_s_context_must_be_specified;
1142aec3c8f4Simaromstatic PyObject *__pyx_n_s_copy;
1143aec3c8f4Simaromstatic PyObject *__pyx_n_s_copy_mod;
1144aec3c8f4Simaromstatic PyObject *__pyx_n_s_data;
1145aec3c8f4Simaromstatic PyObject *__pyx_n_s_decode;
1146aec3c8f4Simaromstatic PyObject *__pyx_n_s_disconnect;
1147aec3c8f4Simaromstatic PyObject *__pyx_n_s_dtype;
1148aec3c8f4Simaromstatic PyObject *__pyx_n_s_encode;
1149aec3c8f4Simaromstatic PyObject *__pyx_n_s_events;
1150aec3c8f4Simaromstatic PyObject *__pyx_kp_s_expected_bytes_got_r;
1151aec3c8f4Simaromstatic PyObject *__pyx_kp_s_expected_int_got_r;
1152aec3c8f4Simaromstatic PyObject *__pyx_kp_s_expected_str_got_r;
1153aec3c8f4Simaromstatic PyObject *__pyx_n_s_fd_sockopts;
1154aec3c8f4Simaromstatic PyObject *__pyx_n_s_flags;
1155aec3c8f4Simaromstatic PyObject *__pyx_n_s_format;
1156aec3c8f4Simaromstatic PyObject *__pyx_n_s_getsockopt;
1157aec3c8f4Simaromstatic PyObject *__pyx_n_s_import;
1158aec3c8f4Simaromstatic PyObject *__pyx_n_s_int64_sockopts;
1159aec3c8f4Simaromstatic PyObject *__pyx_kp_s_ipc_path_0_is_longer_than_1_char;
1160aec3c8f4Simaromstatic PyObject *__pyx_n_s_itemsize;
1161aec3c8f4Simaromstatic PyObject *__pyx_n_s_jsonapi;
1162aec3c8f4Simaromstatic PyObject *__pyx_n_s_linger;
1163aec3c8f4Simaromstatic PyObject *__pyx_n_s_main;
1164aec3c8f4Simaromstatic PyObject *__pyx_n_s_monitor;
1165aec3c8f4Simaromstatic PyObject *__pyx_n_s_msg;
1166aec3c8f4Simaromstatic PyObject *__pyx_n_s_option;
1167aec3c8f4Simaromstatic PyObject *__pyx_n_s_optval;
1168aec3c8f4Simaromstatic PyObject *__pyx_n_s_pickle;
1169aec3c8f4Simaromstatic PyObject *__pyx_n_s_property;
1170aec3c8f4Simaromstatic PyObject *__pyx_n_s_pyx_vtable;
1171aec3c8f4Simaromstatic PyObject *__pyx_kp_s_r_does_not_provide_a_buffer_int;
1172aec3c8f4Simaromstatic PyObject *__pyx_n_s_random;
1173aec3c8f4Simaromstatic PyObject *__pyx_n_s_recv;
1174aec3c8f4Simaromstatic PyObject *__pyx_n_s_replace;
1175aec3c8f4Simaromstatic PyObject *__pyx_n_s_send;
1176aec3c8f4Simaromstatic PyObject *__pyx_n_s_shadow;
1177aec3c8f4Simaromstatic PyObject *__pyx_n_s_socket_type;
1178aec3c8f4Simaromstatic PyObject *__pyx_kp_s_socket_type_must_be_specified;
1179aec3c8f4Simaromstatic PyObject *__pyx_n_s_split;
1180aec3c8f4Simaromstatic PyObject *__pyx_n_s_struct;
1181aec3c8f4Simaromstatic PyObject *__pyx_n_s_sys;
1182aec3c8f4Simaromstatic PyObject *__pyx_n_s_test;
1183aec3c8f4Simaromstatic PyObject *__pyx_n_s_time;
1184aec3c8f4Simaromstatic PyObject *__pyx_n_s_track;
1185aec3c8f4Simaromstatic PyObject *__pyx_n_s_tracker;
1186aec3c8f4Simaromstatic PyObject *__pyx_n_s_typecode;
1187aec3c8f4Simaromstatic PyObject *__pyx_n_s_unbind;
1188aec3c8f4Simaromstatic PyObject *__pyx_n_s_underlying;
1189aec3c8f4Simaromstatic PyObject *__pyx_n_s_unicode;
1190aec3c8f4Simaromstatic PyObject *__pyx_kp_s_unicode_not_allowed_use_send_str;
1191aec3c8f4Simaromstatic PyObject *__pyx_kp_s_unicode_not_allowed_use_setsocko;
1192aec3c8f4Simaromstatic PyObject *__pyx_kp_s_utf_8;
1193aec3c8f4Simaromstatic PyObject *__pyx_n_s_zmq;
1194aec3c8f4Simaromstatic PyObject *__pyx_n_s_zmq_backend_cython;
1195aec3c8f4Simaromstatic PyObject *__pyx_n_s_zmq_backend_cython_constants;
1196aec3c8f4Simaromstatic PyObject *__pyx_n_s_zmq_error;
1197aec3c8f4Simaromstatic PyObject *__pyx_n_s_zmq_utils;
1198aec3c8f4Simaromstatic PyObject *__pyx_n_s_zmq_utils_strtypes;
1199aec3c8f4Simaromstatic PyObject *__pyx_int_0;
1200aec3c8f4Simaromstatic PyObject *__pyx_int_1;
1201aec3c8f4Simaromstatic PyObject *__pyx_int_2;
1202aec3c8f4Simaromstatic PyObject *__pyx_int_3;
1203aec3c8f4Simaromstatic PyObject *__pyx_int_neg_1;
1204aec3c8f4Simaromstatic int __pyx_k__15;
1205aec3c8f4Simaromstatic PyObject *__pyx_tuple_;
1206aec3c8f4Simaromstatic PyObject *__pyx_tuple__2;
1207aec3c8f4Simaromstatic PyObject *__pyx_tuple__3;
1208aec3c8f4Simaromstatic PyObject *__pyx_tuple__4;
1209aec3c8f4Simaromstatic PyObject *__pyx_tuple__5;
1210aec3c8f4Simaromstatic PyObject *__pyx_tuple__7;
1211aec3c8f4Simaromstatic PyObject *__pyx_tuple__8;
1212aec3c8f4Simaromstatic PyObject *__pyx_tuple__9;
1213aec3c8f4Simaromstatic PyObject *__pyx_tuple__10;
1214aec3c8f4Simaromstatic PyObject *__pyx_tuple__11;
1215aec3c8f4Simaromstatic PyObject *__pyx_tuple__12;
1216aec3c8f4Simaromstatic PyObject *__pyx_tuple__13;
1217aec3c8f4Simaromstatic PyObject *__pyx_tuple__14;
1218aec3c8f4Simaromstatic PyObject *__pyx_tuple__16;
1219aec3c8f4Simaromstatic PyObject *__pyx_tuple__17;
1220aec3c8f4Simaromstatic PyObject *__pyx_tuple__18;
1221aec3c8f4Simaromstatic PyObject *__pyx_tuple__19;
1222aec3c8f4Simaromstatic PyObject *__pyx_tuple__20;
1223aec3c8f4Simaromstatic PyObject *__pyx_tuple__21;
1224aec3c8f4Simaromstatic PyObject *__pyx_tuple__23;
1225aec3c8f4Simarom
1226aec3c8f4Simarom/* "zmq/backend/cython/socket.pyx":90
1227aec3c8f4Simarom * # true methods frequently cannot be inlined, acc. Cython docs
1228aec3c8f4Simarom *
1229aec3c8f4Simarom * cdef inline _check_closed(Socket s):             # <<<<<<<<<<<<<<
1230aec3c8f4Simarom *     """raise ENOTSUP if socket is closed
1231aec3c8f4Simarom *
1232aec3c8f4Simarom */
1233aec3c8f4Simarom
1234aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_6socket__check_closed(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_s) {
1235aec3c8f4Simarom  PyObject *__pyx_r = NULL;
1236aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1237aec3c8f4Simarom  int __pyx_t_1;
1238aec3c8f4Simarom  PyObject *__pyx_t_2 = NULL;
1239aec3c8f4Simarom  PyObject *__pyx_t_3 = NULL;
1240aec3c8f4Simarom  PyObject *__pyx_t_4 = NULL;
1241aec3c8f4Simarom  PyObject *__pyx_t_5 = NULL;
1242aec3c8f4Simarom  PyObject *__pyx_t_6 = NULL;
1243aec3c8f4Simarom  int __pyx_lineno = 0;
1244aec3c8f4Simarom  const char *__pyx_filename = NULL;
1245aec3c8f4Simarom  int __pyx_clineno = 0;
1246aec3c8f4Simarom  __Pyx_RefNannySetupContext("_check_closed", 0);
1247aec3c8f4Simarom
1248aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":95
1249aec3c8f4Simarom *     Does not do a deep check
1250aec3c8f4Simarom *     """
1251aec3c8f4Simarom *     if s._closed:             # <<<<<<<<<<<<<<
1252aec3c8f4Simarom *         raise ZMQError(ENOTSOCK)
1253aec3c8f4Simarom *
1254aec3c8f4Simarom */
1255aec3c8f4Simarom  __pyx_t_1 = (__pyx_v_s->_closed != 0);
1256aec3c8f4Simarom  if (__pyx_t_1) {
1257aec3c8f4Simarom
1258aec3c8f4Simarom    /* "zmq/backend/cython/socket.pyx":96
1259aec3c8f4Simarom *     """
1260aec3c8f4Simarom *     if s._closed:
1261aec3c8f4Simarom *         raise ZMQError(ENOTSOCK)             # <<<<<<<<<<<<<<
1262aec3c8f4Simarom *
1263aec3c8f4Simarom * cdef inline _check_closed_deep(Socket s):
1264aec3c8f4Simarom */
1265aec3c8f4Simarom    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZMQError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1266aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_3);
1267aec3c8f4Simarom    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ENOTSOCK); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1268aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_4);
1269aec3c8f4Simarom    __pyx_t_5 = NULL;
1270aec3c8f4Simarom    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) {
1271aec3c8f4Simarom      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
1272aec3c8f4Simarom      if (likely(__pyx_t_5)) {
1273aec3c8f4Simarom        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
1274aec3c8f4Simarom        __Pyx_INCREF(__pyx_t_5);
1275aec3c8f4Simarom        __Pyx_INCREF(function);
1276aec3c8f4Simarom        __Pyx_DECREF_SET(__pyx_t_3, function);
1277aec3c8f4Simarom      }
1278aec3c8f4Simarom    }
1279aec3c8f4Simarom    if (!__pyx_t_5) {
1280aec3c8f4Simarom      __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1281aec3c8f4Simarom      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1282aec3c8f4Simarom      __Pyx_GOTREF(__pyx_t_2);
1283aec3c8f4Simarom    } else {
1284aec3c8f4Simarom      __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1285aec3c8f4Simarom      __Pyx_GOTREF(__pyx_t_6);
1286aec3c8f4Simarom      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = NULL;
1287aec3c8f4Simarom      PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4);
1288aec3c8f4Simarom      __Pyx_GIVEREF(__pyx_t_4);
1289aec3c8f4Simarom      __pyx_t_4 = 0;
1290aec3c8f4Simarom      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1291aec3c8f4Simarom      __Pyx_GOTREF(__pyx_t_2);
1292aec3c8f4Simarom      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1293aec3c8f4Simarom    }
1294aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1295aec3c8f4Simarom    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
1296aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1297aec3c8f4Simarom    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1298aec3c8f4Simarom  }
1299aec3c8f4Simarom
1300aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":90
1301aec3c8f4Simarom * # true methods frequently cannot be inlined, acc. Cython docs
1302aec3c8f4Simarom *
1303aec3c8f4Simarom * cdef inline _check_closed(Socket s):             # <<<<<<<<<<<<<<
1304aec3c8f4Simarom *     """raise ENOTSUP if socket is closed
1305aec3c8f4Simarom *
1306aec3c8f4Simarom */
1307aec3c8f4Simarom
1308aec3c8f4Simarom  /* function exit code */
1309aec3c8f4Simarom  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
1310aec3c8f4Simarom  goto __pyx_L0;
1311aec3c8f4Simarom  __pyx_L1_error:;
1312aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_2);
1313aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_3);
1314aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_4);
1315aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_5);
1316aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_6);
1317aec3c8f4Simarom  __Pyx_AddTraceback("zmq.backend.cython.socket._check_closed", __pyx_clineno, __pyx_lineno, __pyx_filename);
1318aec3c8f4Simarom  __pyx_r = 0;
1319aec3c8f4Simarom  __pyx_L0:;
1320aec3c8f4Simarom  __Pyx_XGIVEREF(__pyx_r);
1321aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1322aec3c8f4Simarom  return __pyx_r;
1323aec3c8f4Simarom}
1324aec3c8f4Simarom
1325aec3c8f4Simarom/* "zmq/backend/cython/socket.pyx":98
1326aec3c8f4Simarom *         raise ZMQError(ENOTSOCK)
1327aec3c8f4Simarom *
1328aec3c8f4Simarom * cdef inline _check_closed_deep(Socket s):             # <<<<<<<<<<<<<<
1329aec3c8f4Simarom *     """thorough check of whether the socket has been closed,
1330aec3c8f4Simarom *     even if by another entity (e.g. ctx.destroy).
1331aec3c8f4Simarom */
1332aec3c8f4Simarom
1333aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_6socket__check_closed_deep(struct __pyx_obj_3zmq_7backend_6cython_6socket_Socket *__pyx_v_s) {
1334aec3c8f4Simarom  int __pyx_v_rc;
1335aec3c8f4Simarom  int __pyx_v_stype;
1336aec3c8f4Simarom  size_t __pyx_v_sz;
1337aec3c8f4Simarom  PyObject *__pyx_r = NULL;
1338aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1339aec3c8f4Simarom  int __pyx_t_1;
1340aec3c8f4Simarom  int __pyx_t_2;
1341aec3c8f4Simarom  PyObject *__pyx_t_3 = NULL;
1342aec3c8f4Simarom  PyObject *__pyx_t_4 = NULL;
1343aec3c8f4Simarom  PyObject *__pyx_t_5 = NULL;
1344aec3c8f4Simarom  int __pyx_t_6;
1345aec3c8f4Simarom  int __pyx_lineno = 0;
1346aec3c8f4Simarom  const char *__pyx_filename = NULL;
1347aec3c8f4Simarom  int __pyx_clineno = 0;
1348aec3c8f4Simarom  __Pyx_RefNannySetupContext("_check_closed_deep", 0);
1349aec3c8f4Simarom
1350aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":109
1351aec3c8f4Simarom *     cdef int errno
1352aec3c8f4Simarom *     cdef int stype
1353aec3c8f4Simarom *     cdef size_t sz=sizeof(int)             # <<<<<<<<<<<<<<
1354aec3c8f4Simarom *     if s._closed:
1355aec3c8f4Simarom *         return True
1356aec3c8f4Simarom */
1357aec3c8f4Simarom  __pyx_v_sz = (sizeof(int));
1358aec3c8f4Simarom
1359aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":110
1360aec3c8f4Simarom *     cdef int stype
1361aec3c8f4Simarom *     cdef size_t sz=sizeof(int)
1362aec3c8f4Simarom *     if s._closed:             # <<<<<<<<<<<<<<
1363aec3c8f4Simarom *         return True
1364aec3c8f4Simarom *     else:
1365aec3c8f4Simarom */
1366aec3c8f4Simarom  __pyx_t_1 = (__pyx_v_s->_closed != 0);
1367aec3c8f4Simarom  if (__pyx_t_1) {
1368aec3c8f4Simarom
1369aec3c8f4Simarom    /* "zmq/backend/cython/socket.pyx":111
1370aec3c8f4Simarom *     cdef size_t sz=sizeof(int)
1371aec3c8f4Simarom *     if s._closed:
1372aec3c8f4Simarom *         return True             # <<<<<<<<<<<<<<
1373aec3c8f4Simarom *     else:
1374aec3c8f4Simarom *         rc = zmq_getsockopt(s.handle, ZMQ_TYPE, <void *>&stype, &sz)
1375aec3c8f4Simarom */
1376aec3c8f4Simarom    __Pyx_XDECREF(__pyx_r);
1377aec3c8f4Simarom    __Pyx_INCREF(Py_True);
1378aec3c8f4Simarom    __pyx_r = Py_True;
1379aec3c8f4Simarom    goto __pyx_L0;
1380aec3c8f4Simarom  }
1381aec3c8f4Simarom  /*else*/ {
1382aec3c8f4Simarom
1383aec3c8f4Simarom    /* "zmq/backend/cython/socket.pyx":113
1384aec3c8f4Simarom *         return True
1385aec3c8f4Simarom *     else:
1386aec3c8f4Simarom *         rc = zmq_getsockopt(s.handle, ZMQ_TYPE, <void *>&stype, &sz)             # <<<<<<<<<<<<<<
1387aec3c8f4Simarom *         if rc < 0 and zmq_errno() == ENOTSOCK:
1388aec3c8f4Simarom *             s._closed = True
1389aec3c8f4Simarom */
1390aec3c8f4Simarom    __pyx_v_rc = zmq_getsockopt(__pyx_v_s->handle, ZMQ_TYPE, ((void *)(&__pyx_v_stype)), (&__pyx_v_sz));
1391aec3c8f4Simarom
1392aec3c8f4Simarom    /* "zmq/backend/cython/socket.pyx":114
1393aec3c8f4Simarom *     else:
1394aec3c8f4Simarom *         rc = zmq_getsockopt(s.handle, ZMQ_TYPE, <void *>&stype, &sz)
1395aec3c8f4Simarom *         if rc < 0 and zmq_errno() == ENOTSOCK:             # <<<<<<<<<<<<<<
1396aec3c8f4Simarom *             s._closed = True
1397aec3c8f4Simarom *             return True
1398aec3c8f4Simarom */
1399aec3c8f4Simarom    __pyx_t_2 = ((__pyx_v_rc < 0) != 0);
1400aec3c8f4Simarom    if (__pyx_t_2) {
1401aec3c8f4Simarom    } else {
1402aec3c8f4Simarom      __pyx_t_1 = __pyx_t_2;
1403aec3c8f4Simarom      goto __pyx_L5_bool_binop_done;
1404aec3c8f4Simarom    }
1405aec3c8f4Simarom    __pyx_t_3 = __Pyx_PyInt_From_int(zmq_errno()); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1406aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_3);
1407aec3c8f4Simarom    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ENOTSOCK); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1408aec3c8f4Simarom    __Pyx_GOTREF(__pyx_t_4);
1409aec3c8f4Simarom    __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1410aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1411aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1412aec3c8f4Simarom    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1413aec3c8f4Simarom    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
1414aec3c8f4Simarom    __pyx_t_1 = __pyx_t_2;
1415aec3c8f4Simarom    __pyx_L5_bool_binop_done:;
1416aec3c8f4Simarom    if (__pyx_t_1) {
1417aec3c8f4Simarom
1418aec3c8f4Simarom      /* "zmq/backend/cython/socket.pyx":115
1419aec3c8f4Simarom *         rc = zmq_getsockopt(s.handle, ZMQ_TYPE, <void *>&stype, &sz)
1420aec3c8f4Simarom *         if rc < 0 and zmq_errno() == ENOTSOCK:
1421aec3c8f4Simarom *             s._closed = True             # <<<<<<<<<<<<<<
1422aec3c8f4Simarom *             return True
1423aec3c8f4Simarom *         else:
1424aec3c8f4Simarom */
1425aec3c8f4Simarom      __pyx_v_s->_closed = 1;
1426aec3c8f4Simarom
1427aec3c8f4Simarom      /* "zmq/backend/cython/socket.pyx":116
1428aec3c8f4Simarom *         if rc < 0 and zmq_errno() == ENOTSOCK:
1429aec3c8f4Simarom *             s._closed = True
1430aec3c8f4Simarom *             return True             # <<<<<<<<<<<<<<
1431aec3c8f4Simarom *         else:
1432aec3c8f4Simarom *             _check_rc(rc)
1433aec3c8f4Simarom */
1434aec3c8f4Simarom      __Pyx_XDECREF(__pyx_r);
1435aec3c8f4Simarom      __Pyx_INCREF(Py_True);
1436aec3c8f4Simarom      __pyx_r = Py_True;
1437aec3c8f4Simarom      goto __pyx_L0;
1438aec3c8f4Simarom    }
1439aec3c8f4Simarom    /*else*/ {
1440aec3c8f4Simarom
1441aec3c8f4Simarom      /* "zmq/backend/cython/socket.pyx":118
1442aec3c8f4Simarom *             return True
1443aec3c8f4Simarom *         else:
1444aec3c8f4Simarom *             _check_rc(rc)             # <<<<<<<<<<<<<<
1445aec3c8f4Simarom *     return False
1446aec3c8f4Simarom *
1447aec3c8f4Simarom */
1448aec3c8f4Simarom      __pyx_t_6 = __pyx_f_3zmq_7backend_6cython_7checkrc__check_rc(__pyx_v_rc); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1449aec3c8f4Simarom    }
1450aec3c8f4Simarom  }
1451aec3c8f4Simarom
1452aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":119
1453aec3c8f4Simarom *         else:
1454aec3c8f4Simarom *             _check_rc(rc)
1455aec3c8f4Simarom *     return False             # <<<<<<<<<<<<<<
1456aec3c8f4Simarom *
1457aec3c8f4Simarom * cdef inline Frame _recv_frame(void *handle, int flags=0, track=False):
1458aec3c8f4Simarom */
1459aec3c8f4Simarom  __Pyx_XDECREF(__pyx_r);
1460aec3c8f4Simarom  __Pyx_INCREF(Py_False);
1461aec3c8f4Simarom  __pyx_r = Py_False;
1462aec3c8f4Simarom  goto __pyx_L0;
1463aec3c8f4Simarom
1464aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":98
1465aec3c8f4Simarom *         raise ZMQError(ENOTSOCK)
1466aec3c8f4Simarom *
1467aec3c8f4Simarom * cdef inline _check_closed_deep(Socket s):             # <<<<<<<<<<<<<<
1468aec3c8f4Simarom *     """thorough check of whether the socket has been closed,
1469aec3c8f4Simarom *     even if by another entity (e.g. ctx.destroy).
1470aec3c8f4Simarom */
1471aec3c8f4Simarom
1472aec3c8f4Simarom  /* function exit code */
1473aec3c8f4Simarom  __pyx_L1_error:;
1474aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_3);
1475aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_4);
1476aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_5);
1477aec3c8f4Simarom  __Pyx_AddTraceback("zmq.backend.cython.socket._check_closed_deep", __pyx_clineno, __pyx_lineno, __pyx_filename);
1478aec3c8f4Simarom  __pyx_r = 0;
1479aec3c8f4Simarom  __pyx_L0:;
1480aec3c8f4Simarom  __Pyx_XGIVEREF(__pyx_r);
1481aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1482aec3c8f4Simarom  return __pyx_r;
1483aec3c8f4Simarom}
1484aec3c8f4Simarom
1485aec3c8f4Simarom/* "zmq/backend/cython/socket.pyx":121
1486aec3c8f4Simarom *     return False
1487aec3c8f4Simarom *
1488aec3c8f4Simarom * cdef inline Frame _recv_frame(void *handle, int flags=0, track=False):             # <<<<<<<<<<<<<<
1489aec3c8f4Simarom *     """Receive a message in a non-copying manner and return a Frame."""
1490aec3c8f4Simarom *     cdef int rc
1491aec3c8f4Simarom */
1492aec3c8f4Simarom
1493aec3c8f4Simaromstatic CYTHON_INLINE struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_f_3zmq_7backend_6cython_6socket__recv_frame(void *__pyx_v_handle, struct __pyx_opt_args_3zmq_7backend_6cython_6socket__recv_frame *__pyx_optional_args) {
1494aec3c8f4Simarom  int __pyx_v_flags = ((int)0);
1495aec3c8f4Simarom  PyObject *__pyx_v_track = ((PyObject *)Py_False);
1496aec3c8f4Simarom  int __pyx_v_rc;
1497aec3c8f4Simarom  PyObject *__pyx_v_msg = NULL;
1498aec3c8f4Simarom  struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_cmsg = 0;
1499aec3c8f4Simarom  struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_r = NULL;
1500aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1501aec3c8f4Simarom  PyObject *__pyx_t_1 = NULL;
1502aec3c8f4Simarom  PyObject *__pyx_t_2 = NULL;
1503aec3c8f4Simarom  PyObject *__pyx_t_3 = NULL;
1504aec3c8f4Simarom  int __pyx_t_4;
1505aec3c8f4Simarom  int __pyx_lineno = 0;
1506aec3c8f4Simarom  const char *__pyx_filename = NULL;
1507aec3c8f4Simarom  int __pyx_clineno = 0;
1508aec3c8f4Simarom  __Pyx_RefNannySetupContext("_recv_frame", 0);
1509aec3c8f4Simarom  if (__pyx_optional_args) {
1510aec3c8f4Simarom    if (__pyx_optional_args->__pyx_n > 0) {
1511aec3c8f4Simarom      __pyx_v_flags = __pyx_optional_args->flags;
1512aec3c8f4Simarom      if (__pyx_optional_args->__pyx_n > 1) {
1513aec3c8f4Simarom        __pyx_v_track = __pyx_optional_args->track;
1514aec3c8f4Simarom      }
1515aec3c8f4Simarom    }
1516aec3c8f4Simarom  }
1517aec3c8f4Simarom
1518aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":124
1519aec3c8f4Simarom *     """Receive a message in a non-copying manner and return a Frame."""
1520aec3c8f4Simarom *     cdef int rc
1521aec3c8f4Simarom *     msg = zmq.Frame(track=track)             # <<<<<<<<<<<<<<
1522aec3c8f4Simarom *     cdef Frame cmsg = msg
1523aec3c8f4Simarom *
1524aec3c8f4Simarom */
1525aec3c8f4Simarom  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_zmq); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1526aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_1);
1527aec3c8f4Simarom  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Frame); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1528aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_2);
1529aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1530aec3c8f4Simarom  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1531aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_1);
1532aec3c8f4Simarom  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_track, __pyx_v_track) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1533aec3c8f4Simarom  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1534aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_3);
1535aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1536aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1537aec3c8f4Simarom  __pyx_v_msg = __pyx_t_3;
1538aec3c8f4Simarom  __pyx_t_3 = 0;
1539aec3c8f4Simarom
1540aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":125
1541aec3c8f4Simarom *     cdef int rc
1542aec3c8f4Simarom *     msg = zmq.Frame(track=track)
1543aec3c8f4Simarom *     cdef Frame cmsg = msg             # <<<<<<<<<<<<<<
1544aec3c8f4Simarom *
1545aec3c8f4Simarom *     with nogil:
1546aec3c8f4Simarom */
1547aec3c8f4Simarom  if (!(likely(((__pyx_v_msg) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_msg, __pyx_ptype_3zmq_7backend_6cython_7message_Frame))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1548aec3c8f4Simarom  __pyx_t_3 = __pyx_v_msg;
1549aec3c8f4Simarom  __Pyx_INCREF(__pyx_t_3);
1550aec3c8f4Simarom  __pyx_v_cmsg = ((struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *)__pyx_t_3);
1551aec3c8f4Simarom  __pyx_t_3 = 0;
1552aec3c8f4Simarom
1553aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":127
1554aec3c8f4Simarom *     cdef Frame cmsg = msg
1555aec3c8f4Simarom *
1556aec3c8f4Simarom *     with nogil:             # <<<<<<<<<<<<<<
1557aec3c8f4Simarom *         rc = zmq_msg_recv(&cmsg.zmq_msg, handle, flags)
1558aec3c8f4Simarom *
1559aec3c8f4Simarom */
1560aec3c8f4Simarom  {
1561aec3c8f4Simarom      #ifdef WITH_THREAD
1562aec3c8f4Simarom      PyThreadState *_save;
1563aec3c8f4Simarom      Py_UNBLOCK_THREADS
1564aec3c8f4Simarom      #endif
1565aec3c8f4Simarom      /*try:*/ {
1566aec3c8f4Simarom
1567aec3c8f4Simarom        /* "zmq/backend/cython/socket.pyx":128
1568aec3c8f4Simarom *
1569aec3c8f4Simarom *     with nogil:
1570aec3c8f4Simarom *         rc = zmq_msg_recv(&cmsg.zmq_msg, handle, flags)             # <<<<<<<<<<<<<<
1571aec3c8f4Simarom *
1572aec3c8f4Simarom *     _check_rc(rc)
1573aec3c8f4Simarom */
1574aec3c8f4Simarom        __pyx_v_rc = zmq_msg_recv((&__pyx_v_cmsg->zmq_msg), __pyx_v_handle, __pyx_v_flags);
1575aec3c8f4Simarom      }
1576aec3c8f4Simarom
1577aec3c8f4Simarom      /* "zmq/backend/cython/socket.pyx":127
1578aec3c8f4Simarom *     cdef Frame cmsg = msg
1579aec3c8f4Simarom *
1580aec3c8f4Simarom *     with nogil:             # <<<<<<<<<<<<<<
1581aec3c8f4Simarom *         rc = zmq_msg_recv(&cmsg.zmq_msg, handle, flags)
1582aec3c8f4Simarom *
1583aec3c8f4Simarom */
1584aec3c8f4Simarom      /*finally:*/ {
1585aec3c8f4Simarom        /*normal exit:*/{
1586aec3c8f4Simarom          #ifdef WITH_THREAD
1587aec3c8f4Simarom          Py_BLOCK_THREADS
1588aec3c8f4Simarom          #endif
1589aec3c8f4Simarom          goto __pyx_L5;
1590aec3c8f4Simarom        }
1591aec3c8f4Simarom        __pyx_L5:;
1592aec3c8f4Simarom      }
1593aec3c8f4Simarom  }
1594aec3c8f4Simarom
1595aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":130
1596aec3c8f4Simarom *         rc = zmq_msg_recv(&cmsg.zmq_msg, handle, flags)
1597aec3c8f4Simarom *
1598aec3c8f4Simarom *     _check_rc(rc)             # <<<<<<<<<<<<<<
1599aec3c8f4Simarom *     return msg
1600aec3c8f4Simarom *
1601aec3c8f4Simarom */
1602aec3c8f4Simarom  __pyx_t_4 = __pyx_f_3zmq_7backend_6cython_7checkrc__check_rc(__pyx_v_rc); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1603aec3c8f4Simarom
1604aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":131
1605aec3c8f4Simarom *
1606aec3c8f4Simarom *     _check_rc(rc)
1607aec3c8f4Simarom *     return msg             # <<<<<<<<<<<<<<
1608aec3c8f4Simarom *
1609aec3c8f4Simarom * cdef inline object _recv_copy(void *handle, int flags=0):
1610aec3c8f4Simarom */
1611aec3c8f4Simarom  __Pyx_XDECREF(((PyObject *)__pyx_r));
1612aec3c8f4Simarom  if (!(likely(((__pyx_v_msg) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_msg, __pyx_ptype_3zmq_7backend_6cython_7message_Frame))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1613aec3c8f4Simarom  __Pyx_INCREF(__pyx_v_msg);
1614aec3c8f4Simarom  __pyx_r = ((struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *)__pyx_v_msg);
1615aec3c8f4Simarom  goto __pyx_L0;
1616aec3c8f4Simarom
1617aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":121
1618aec3c8f4Simarom *     return False
1619aec3c8f4Simarom *
1620aec3c8f4Simarom * cdef inline Frame _recv_frame(void *handle, int flags=0, track=False):             # <<<<<<<<<<<<<<
1621aec3c8f4Simarom *     """Receive a message in a non-copying manner and return a Frame."""
1622aec3c8f4Simarom *     cdef int rc
1623aec3c8f4Simarom */
1624aec3c8f4Simarom
1625aec3c8f4Simarom  /* function exit code */
1626aec3c8f4Simarom  __pyx_L1_error:;
1627aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_1);
1628aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_2);
1629aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_3);
1630aec3c8f4Simarom  __Pyx_AddTraceback("zmq.backend.cython.socket._recv_frame", __pyx_clineno, __pyx_lineno, __pyx_filename);
1631aec3c8f4Simarom  __pyx_r = 0;
1632aec3c8f4Simarom  __pyx_L0:;
1633aec3c8f4Simarom  __Pyx_XDECREF(__pyx_v_msg);
1634aec3c8f4Simarom  __Pyx_XDECREF((PyObject *)__pyx_v_cmsg);
1635aec3c8f4Simarom  __Pyx_XGIVEREF((PyObject *)__pyx_r);
1636aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1637aec3c8f4Simarom  return __pyx_r;
1638aec3c8f4Simarom}
1639aec3c8f4Simarom
1640aec3c8f4Simarom/* "zmq/backend/cython/socket.pyx":133
1641aec3c8f4Simarom *     return msg
1642aec3c8f4Simarom *
1643aec3c8f4Simarom * cdef inline object _recv_copy(void *handle, int flags=0):             # <<<<<<<<<<<<<<
1644aec3c8f4Simarom *     """Receive a message and return a copy"""
1645aec3c8f4Simarom *     cdef zmq_msg_t zmq_msg
1646aec3c8f4Simarom */
1647aec3c8f4Simarom
1648aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_6socket__recv_copy(void *__pyx_v_handle, struct __pyx_opt_args_3zmq_7backend_6cython_6socket__recv_copy *__pyx_optional_args) {
1649aec3c8f4Simarom  int __pyx_v_flags = ((int)0);
1650aec3c8f4Simarom  zmq_msg_t __pyx_v_zmq_msg;
1651aec3c8f4Simarom  int __pyx_v_rc;
1652aec3c8f4Simarom  PyObject *__pyx_v_msg_bytes = NULL;
1653aec3c8f4Simarom  PyObject *__pyx_r = NULL;
1654aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1655aec3c8f4Simarom  int __pyx_t_1;
1656aec3c8f4Simarom  PyObject *__pyx_t_2 = NULL;
1657aec3c8f4Simarom  int __pyx_lineno = 0;
1658aec3c8f4Simarom  const char *__pyx_filename = NULL;
1659aec3c8f4Simarom  int __pyx_clineno = 0;
1660aec3c8f4Simarom  __Pyx_RefNannySetupContext("_recv_copy", 0);
1661aec3c8f4Simarom  if (__pyx_optional_args) {
1662aec3c8f4Simarom    if (__pyx_optional_args->__pyx_n > 0) {
1663aec3c8f4Simarom      __pyx_v_flags = __pyx_optional_args->flags;
1664aec3c8f4Simarom    }
1665aec3c8f4Simarom  }
1666aec3c8f4Simarom
1667aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":136
1668aec3c8f4Simarom *     """Receive a message and return a copy"""
1669aec3c8f4Simarom *     cdef zmq_msg_t zmq_msg
1670aec3c8f4Simarom *     with nogil:             # <<<<<<<<<<<<<<
1671aec3c8f4Simarom *         zmq_msg_init (&zmq_msg)
1672aec3c8f4Simarom *         rc = zmq_msg_recv(&zmq_msg, handle, flags)
1673aec3c8f4Simarom */
1674aec3c8f4Simarom  {
1675aec3c8f4Simarom      #ifdef WITH_THREAD
1676aec3c8f4Simarom      PyThreadState *_save;
1677aec3c8f4Simarom      Py_UNBLOCK_THREADS
1678aec3c8f4Simarom      #endif
1679aec3c8f4Simarom      /*try:*/ {
1680aec3c8f4Simarom
1681aec3c8f4Simarom        /* "zmq/backend/cython/socket.pyx":137
1682aec3c8f4Simarom *     cdef zmq_msg_t zmq_msg
1683aec3c8f4Simarom *     with nogil:
1684aec3c8f4Simarom *         zmq_msg_init (&zmq_msg)             # <<<<<<<<<<<<<<
1685aec3c8f4Simarom *         rc = zmq_msg_recv(&zmq_msg, handle, flags)
1686aec3c8f4Simarom *     _check_rc(rc)
1687aec3c8f4Simarom */
1688aec3c8f4Simarom        zmq_msg_init((&__pyx_v_zmq_msg));
1689aec3c8f4Simarom
1690aec3c8f4Simarom        /* "zmq/backend/cython/socket.pyx":138
1691aec3c8f4Simarom *     with nogil:
1692aec3c8f4Simarom *         zmq_msg_init (&zmq_msg)
1693aec3c8f4Simarom *         rc = zmq_msg_recv(&zmq_msg, handle, flags)             # <<<<<<<<<<<<<<
1694aec3c8f4Simarom *     _check_rc(rc)
1695aec3c8f4Simarom *     msg_bytes = copy_zmq_msg_bytes(&zmq_msg)
1696aec3c8f4Simarom */
1697aec3c8f4Simarom        __pyx_v_rc = zmq_msg_recv((&__pyx_v_zmq_msg), __pyx_v_handle, __pyx_v_flags);
1698aec3c8f4Simarom      }
1699aec3c8f4Simarom
1700aec3c8f4Simarom      /* "zmq/backend/cython/socket.pyx":136
1701aec3c8f4Simarom *     """Receive a message and return a copy"""
1702aec3c8f4Simarom *     cdef zmq_msg_t zmq_msg
1703aec3c8f4Simarom *     with nogil:             # <<<<<<<<<<<<<<
1704aec3c8f4Simarom *         zmq_msg_init (&zmq_msg)
1705aec3c8f4Simarom *         rc = zmq_msg_recv(&zmq_msg, handle, flags)
1706aec3c8f4Simarom */
1707aec3c8f4Simarom      /*finally:*/ {
1708aec3c8f4Simarom        /*normal exit:*/{
1709aec3c8f4Simarom          #ifdef WITH_THREAD
1710aec3c8f4Simarom          Py_BLOCK_THREADS
1711aec3c8f4Simarom          #endif
1712aec3c8f4Simarom          goto __pyx_L5;
1713aec3c8f4Simarom        }
1714aec3c8f4Simarom        __pyx_L5:;
1715aec3c8f4Simarom      }
1716aec3c8f4Simarom  }
1717aec3c8f4Simarom
1718aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":139
1719aec3c8f4Simarom *         zmq_msg_init (&zmq_msg)
1720aec3c8f4Simarom *         rc = zmq_msg_recv(&zmq_msg, handle, flags)
1721aec3c8f4Simarom *     _check_rc(rc)             # <<<<<<<<<<<<<<
1722aec3c8f4Simarom *     msg_bytes = copy_zmq_msg_bytes(&zmq_msg)
1723aec3c8f4Simarom *     zmq_msg_close(&zmq_msg)
1724aec3c8f4Simarom */
1725aec3c8f4Simarom  __pyx_t_1 = __pyx_f_3zmq_7backend_6cython_7checkrc__check_rc(__pyx_v_rc); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1726aec3c8f4Simarom
1727aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":140
1728aec3c8f4Simarom *         rc = zmq_msg_recv(&zmq_msg, handle, flags)
1729aec3c8f4Simarom *     _check_rc(rc)
1730aec3c8f4Simarom *     msg_bytes = copy_zmq_msg_bytes(&zmq_msg)             # <<<<<<<<<<<<<<
1731aec3c8f4Simarom *     zmq_msg_close(&zmq_msg)
1732aec3c8f4Simarom *     return msg_bytes
1733aec3c8f4Simarom */
1734aec3c8f4Simarom  __pyx_t_2 = __pyx_f_3zmq_7backend_6cython_7message_copy_zmq_msg_bytes((&__pyx_v_zmq_msg)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1735aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_2);
1736aec3c8f4Simarom  __pyx_v_msg_bytes = __pyx_t_2;
1737aec3c8f4Simarom  __pyx_t_2 = 0;
1738aec3c8f4Simarom
1739aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":141
1740aec3c8f4Simarom *     _check_rc(rc)
1741aec3c8f4Simarom *     msg_bytes = copy_zmq_msg_bytes(&zmq_msg)
1742aec3c8f4Simarom *     zmq_msg_close(&zmq_msg)             # <<<<<<<<<<<<<<
1743aec3c8f4Simarom *     return msg_bytes
1744aec3c8f4Simarom *
1745aec3c8f4Simarom */
1746aec3c8f4Simarom  zmq_msg_close((&__pyx_v_zmq_msg));
1747aec3c8f4Simarom
1748aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":142
1749aec3c8f4Simarom *     msg_bytes = copy_zmq_msg_bytes(&zmq_msg)
1750aec3c8f4Simarom *     zmq_msg_close(&zmq_msg)
1751aec3c8f4Simarom *     return msg_bytes             # <<<<<<<<<<<<<<
1752aec3c8f4Simarom *
1753aec3c8f4Simarom * cdef inline object _send_frame(void *handle, Frame msg, int flags=0):
1754aec3c8f4Simarom */
1755aec3c8f4Simarom  __Pyx_XDECREF(__pyx_r);
1756aec3c8f4Simarom  __Pyx_INCREF(__pyx_v_msg_bytes);
1757aec3c8f4Simarom  __pyx_r = __pyx_v_msg_bytes;
1758aec3c8f4Simarom  goto __pyx_L0;
1759aec3c8f4Simarom
1760aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":133
1761aec3c8f4Simarom *     return msg
1762aec3c8f4Simarom *
1763aec3c8f4Simarom * cdef inline object _recv_copy(void *handle, int flags=0):             # <<<<<<<<<<<<<<
1764aec3c8f4Simarom *     """Receive a message and return a copy"""
1765aec3c8f4Simarom *     cdef zmq_msg_t zmq_msg
1766aec3c8f4Simarom */
1767aec3c8f4Simarom
1768aec3c8f4Simarom  /* function exit code */
1769aec3c8f4Simarom  __pyx_L1_error:;
1770aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_2);
1771aec3c8f4Simarom  __Pyx_AddTraceback("zmq.backend.cython.socket._recv_copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
1772aec3c8f4Simarom  __pyx_r = 0;
1773aec3c8f4Simarom  __pyx_L0:;
1774aec3c8f4Simarom  __Pyx_XDECREF(__pyx_v_msg_bytes);
1775aec3c8f4Simarom  __Pyx_XGIVEREF(__pyx_r);
1776aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1777aec3c8f4Simarom  return __pyx_r;
1778aec3c8f4Simarom}
1779aec3c8f4Simarom
1780aec3c8f4Simarom/* "zmq/backend/cython/socket.pyx":144
1781aec3c8f4Simarom *     return msg_bytes
1782aec3c8f4Simarom *
1783aec3c8f4Simarom * cdef inline object _send_frame(void *handle, Frame msg, int flags=0):             # <<<<<<<<<<<<<<
1784aec3c8f4Simarom *     """Send a Frame on this socket in a non-copy manner."""
1785aec3c8f4Simarom *     cdef int rc
1786aec3c8f4Simarom */
1787aec3c8f4Simarom
1788aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_6socket__send_frame(void *__pyx_v_handle, struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_msg, struct __pyx_opt_args_3zmq_7backend_6cython_6socket__send_frame *__pyx_optional_args) {
1789aec3c8f4Simarom  int __pyx_v_flags = ((int)0);
1790aec3c8f4Simarom  int __pyx_v_rc;
1791aec3c8f4Simarom  struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *__pyx_v_msg_copy = 0;
1792aec3c8f4Simarom  PyObject *__pyx_r = NULL;
1793aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1794aec3c8f4Simarom  PyObject *__pyx_t_1 = NULL;
1795aec3c8f4Simarom  int __pyx_t_2;
1796aec3c8f4Simarom  int __pyx_lineno = 0;
1797aec3c8f4Simarom  const char *__pyx_filename = NULL;
1798aec3c8f4Simarom  int __pyx_clineno = 0;
1799aec3c8f4Simarom  __Pyx_RefNannySetupContext("_send_frame", 0);
1800aec3c8f4Simarom  if (__pyx_optional_args) {
1801aec3c8f4Simarom    if (__pyx_optional_args->__pyx_n > 0) {
1802aec3c8f4Simarom      __pyx_v_flags = __pyx_optional_args->flags;
1803aec3c8f4Simarom    }
1804aec3c8f4Simarom  }
1805aec3c8f4Simarom
1806aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":151
1807aec3c8f4Simarom *     # Always copy so the original message isn't garbage collected.
1808aec3c8f4Simarom *     # This doesn't do a real copy, just a reference.
1809aec3c8f4Simarom *     msg_copy = msg.fast_copy()             # <<<<<<<<<<<<<<
1810aec3c8f4Simarom *
1811aec3c8f4Simarom *     with nogil:
1812aec3c8f4Simarom */
1813aec3c8f4Simarom  __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_3zmq_7backend_6cython_7message_Frame *)__pyx_v_msg->__pyx_vtab)->fast_copy(__pyx_v_msg)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1814aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_1);
1815aec3c8f4Simarom  __pyx_v_msg_copy = ((struct __pyx_obj_3zmq_7backend_6cython_7message_Frame *)__pyx_t_1);
1816aec3c8f4Simarom  __pyx_t_1 = 0;
1817aec3c8f4Simarom
1818aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":153
1819aec3c8f4Simarom *     msg_copy = msg.fast_copy()
1820aec3c8f4Simarom *
1821aec3c8f4Simarom *     with nogil:             # <<<<<<<<<<<<<<
1822aec3c8f4Simarom *         rc = zmq_msg_send(&msg_copy.zmq_msg, handle, flags)
1823aec3c8f4Simarom *
1824aec3c8f4Simarom */
1825aec3c8f4Simarom  {
1826aec3c8f4Simarom      #ifdef WITH_THREAD
1827aec3c8f4Simarom      PyThreadState *_save;
1828aec3c8f4Simarom      Py_UNBLOCK_THREADS
1829aec3c8f4Simarom      #endif
1830aec3c8f4Simarom      /*try:*/ {
1831aec3c8f4Simarom
1832aec3c8f4Simarom        /* "zmq/backend/cython/socket.pyx":154
1833aec3c8f4Simarom *
1834aec3c8f4Simarom *     with nogil:
1835aec3c8f4Simarom *         rc = zmq_msg_send(&msg_copy.zmq_msg, handle, flags)             # <<<<<<<<<<<<<<
1836aec3c8f4Simarom *
1837aec3c8f4Simarom *     _check_rc(rc)
1838aec3c8f4Simarom */
1839aec3c8f4Simarom        __pyx_v_rc = zmq_msg_send((&__pyx_v_msg_copy->zmq_msg), __pyx_v_handle, __pyx_v_flags);
1840aec3c8f4Simarom      }
1841aec3c8f4Simarom
1842aec3c8f4Simarom      /* "zmq/backend/cython/socket.pyx":153
1843aec3c8f4Simarom *     msg_copy = msg.fast_copy()
1844aec3c8f4Simarom *
1845aec3c8f4Simarom *     with nogil:             # <<<<<<<<<<<<<<
1846aec3c8f4Simarom *         rc = zmq_msg_send(&msg_copy.zmq_msg, handle, flags)
1847aec3c8f4Simarom *
1848aec3c8f4Simarom */
1849aec3c8f4Simarom      /*finally:*/ {
1850aec3c8f4Simarom        /*normal exit:*/{
1851aec3c8f4Simarom          #ifdef WITH_THREAD
1852aec3c8f4Simarom          Py_BLOCK_THREADS
1853aec3c8f4Simarom          #endif
1854aec3c8f4Simarom          goto __pyx_L5;
1855aec3c8f4Simarom        }
1856aec3c8f4Simarom        __pyx_L5:;
1857aec3c8f4Simarom      }
1858aec3c8f4Simarom  }
1859aec3c8f4Simarom
1860aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":156
1861aec3c8f4Simarom *         rc = zmq_msg_send(&msg_copy.zmq_msg, handle, flags)
1862aec3c8f4Simarom *
1863aec3c8f4Simarom *     _check_rc(rc)             # <<<<<<<<<<<<<<
1864aec3c8f4Simarom *     return msg.tracker
1865aec3c8f4Simarom *
1866aec3c8f4Simarom */
1867aec3c8f4Simarom  __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 = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1868aec3c8f4Simarom
1869aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":157
1870aec3c8f4Simarom *
1871aec3c8f4Simarom *     _check_rc(rc)
1872aec3c8f4Simarom *     return msg.tracker             # <<<<<<<<<<<<<<
1873aec3c8f4Simarom *
1874aec3c8f4Simarom *
1875aec3c8f4Simarom */
1876aec3c8f4Simarom  __Pyx_XDECREF(__pyx_r);
1877aec3c8f4Simarom  __Pyx_INCREF(__pyx_v_msg->tracker);
1878aec3c8f4Simarom  __pyx_r = __pyx_v_msg->tracker;
1879aec3c8f4Simarom  goto __pyx_L0;
1880aec3c8f4Simarom
1881aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":144
1882aec3c8f4Simarom *     return msg_bytes
1883aec3c8f4Simarom *
1884aec3c8f4Simarom * cdef inline object _send_frame(void *handle, Frame msg, int flags=0):             # <<<<<<<<<<<<<<
1885aec3c8f4Simarom *     """Send a Frame on this socket in a non-copy manner."""
1886aec3c8f4Simarom *     cdef int rc
1887aec3c8f4Simarom */
1888aec3c8f4Simarom
1889aec3c8f4Simarom  /* function exit code */
1890aec3c8f4Simarom  __pyx_L1_error:;
1891aec3c8f4Simarom  __Pyx_XDECREF(__pyx_t_1);
1892aec3c8f4Simarom  __Pyx_AddTraceback("zmq.backend.cython.socket._send_frame", __pyx_clineno, __pyx_lineno, __pyx_filename);
1893aec3c8f4Simarom  __pyx_r = 0;
1894aec3c8f4Simarom  __pyx_L0:;
1895aec3c8f4Simarom  __Pyx_XDECREF((PyObject *)__pyx_v_msg_copy);
1896aec3c8f4Simarom  __Pyx_XGIVEREF(__pyx_r);
1897aec3c8f4Simarom  __Pyx_RefNannyFinishContext();
1898aec3c8f4Simarom  return __pyx_r;
1899aec3c8f4Simarom}
1900aec3c8f4Simarom
1901aec3c8f4Simarom/* "zmq/backend/cython/socket.pyx":160
1902aec3c8f4Simarom *
1903aec3c8f4Simarom *
1904aec3c8f4Simarom * cdef inline object _send_copy(void *handle, object msg, int flags=0):             # <<<<<<<<<<<<<<
1905aec3c8f4Simarom *     """Send a message on this socket by copying its content."""
1906aec3c8f4Simarom *     cdef int rc, rc2
1907aec3c8f4Simarom */
1908aec3c8f4Simarom
1909aec3c8f4Simaromstatic CYTHON_INLINE PyObject *__pyx_f_3zmq_7backend_6cython_6socket__send_copy(void *__pyx_v_handle, PyObject *__pyx_v_msg, struct __pyx_opt_args_3zmq_7backend_6cython_6socket__send_copy *__pyx_optional_args) {
1910aec3c8f4Simarom  int __pyx_v_flags = ((int)0);
1911aec3c8f4Simarom  int __pyx_v_rc;
1912aec3c8f4Simarom  int __pyx_v_rc2;
1913aec3c8f4Simarom  zmq_msg_t __pyx_v_data;
1914aec3c8f4Simarom  char *__pyx_v_msg_c;
1915aec3c8f4Simarom  Py_ssize_t __pyx_v_msg_c_len;
1916aec3c8f4Simarom  PyObject *__pyx_r = NULL;
1917aec3c8f4Simarom  __Pyx_RefNannyDeclarations
1918aec3c8f4Simarom  PyObject *__pyx_t_1 = NULL;
1919aec3c8f4Simarom  int __pyx_t_2;
1920aec3c8f4Simarom  int __pyx_lineno = 0;
1921aec3c8f4Simarom  const char *__pyx_filename = NULL;
1922aec3c8f4Simarom  int __pyx_clineno = 0;
1923aec3c8f4Simarom  __Pyx_RefNannySetupContext("_send_copy", 0);
1924aec3c8f4Simarom  if (__pyx_optional_args) {
1925aec3c8f4Simarom    if (__pyx_optional_args->__pyx_n > 0) {
1926aec3c8f4Simarom      __pyx_v_flags = __pyx_optional_args->flags;
1927aec3c8f4Simarom    }
1928aec3c8f4Simarom  }
1929aec3c8f4Simarom
1930aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":165
1931aec3c8f4Simarom *     cdef zmq_msg_t data
1932aec3c8f4Simarom *     cdef char *msg_c
1933aec3c8f4Simarom *     cdef Py_ssize_t msg_c_len=0             # <<<<<<<<<<<<<<
1934aec3c8f4Simarom *
1935aec3c8f4Simarom *     # copy to c array:
1936aec3c8f4Simarom */
1937aec3c8f4Simarom  __pyx_v_msg_c_len = 0;
1938aec3c8f4Simarom
1939aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":168
1940aec3c8f4Simarom *
1941aec3c8f4Simarom *     # copy to c array:
1942aec3c8f4Simarom *     asbuffer_r(msg, <void **>&msg_c, &msg_c_len)             # <<<<<<<<<<<<<<
1943aec3c8f4Simarom *
1944aec3c8f4Simarom *     # Copy the msg before sending. This avoids any complications with
1945aec3c8f4Simarom */
1946aec3c8f4Simarom  __pyx_t_1 = __pyx_f_7buffers_asbuffer_r(__pyx_v_msg, ((void **)(&__pyx_v_msg_c)), (&__pyx_v_msg_c_len)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1947aec3c8f4Simarom  __Pyx_GOTREF(__pyx_t_1);
1948aec3c8f4Simarom  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1949aec3c8f4Simarom
1950aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":173
1951aec3c8f4Simarom *     # the GIL, etc.
1952aec3c8f4Simarom *     # If zmq_msg_init_* fails we must not call zmq_msg_close (Bus Error)
1953aec3c8f4Simarom *     rc = zmq_msg_init_size(&data, msg_c_len)             # <<<<<<<<<<<<<<
1954aec3c8f4Simarom *
1955aec3c8f4Simarom *     _check_rc(rc)
1956aec3c8f4Simarom */
1957aec3c8f4Simarom  __pyx_v_rc = zmq_msg_init_size((&__pyx_v_data), __pyx_v_msg_c_len);
1958aec3c8f4Simarom
1959aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":175
1960aec3c8f4Simarom *     rc = zmq_msg_init_size(&data, msg_c_len)
1961aec3c8f4Simarom *
1962aec3c8f4Simarom *     _check_rc(rc)             # <<<<<<<<<<<<<<
1963aec3c8f4Simarom *
1964aec3c8f4Simarom *     with nogil:
1965aec3c8f4Simarom */
1966aec3c8f4Simarom  __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 = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
1967aec3c8f4Simarom
1968aec3c8f4Simarom  /* "zmq/backend/cython/socket.pyx":177
1969aec3c8f4Simarom *     _check_rc(rc)
1970aec3c8f4Simarom *
1971aec3c8f4Simarom *     with nogil:             # <<<<<<<<<<<<<<
1972aec3c8f4Simarom *         memcpy(zmq_msg_data(&data), msg_c, zmq_msg_size(&data))
1973aec3c8f4Simarom *         rc = zmq_msg_send(&data, handle, flags)
1974aec3c8f4Simarom */
1975aec3c8f4Simarom  {
1976aec3c8f4Simarom      #ifdef WITH_THREAD
1977aec3c8f4Simarom      PyThreadState *_save;
1978aec3c8f4Simarom      Py_UNBLOCK_THREADS
1979aec3c8f4Simarom      #endif
1980aec3c8f4Simarom      /*try:*/ {
1981aec3c8f4Simarom
1982aec3c8f4Simarom        /* "zmq/backend/cython/socket.pyx":178
1983aec3c8f4Simarom *
1984aec3c8f4Simarom *     with nogil:
1985aec3c8f4Simarom *         memcpy(zmq_msg_data(&data), msg_c, zmq_msg_size(&data))             # <<<<<<<<<<<<<<
1986aec3c8f4Simarom *         rc = zmq_msg_send(&data, handle, flags)
1987aec3c8f4Simarom *         rc2 = zmq_msg_close(&data)
1988aec3c8f4Simarom */
1989aec3c8f4Simarom        memcpy(zmq_msg_data((&__pyx_v_data)), __pyx_v_msg_c, zmq_msg_size((&__pyx_v_data)));
1990aec3c8f4Simarom
1991aec3c8f4Simarom        /* "zmq/backend/cython/socket.pyx":179
1992aec3c8f4Simarom *     with nogil:
1993aec3c8f4Simarom *         memcpy(zmq_msg_data(&data), msg_c, zmq_msg_size(&data))
1994aec3c8f4Simarom *         rc = zmq_msg_send(&data, handle, flags)             # <<<<<<<<<<<<<<
1995aec3c8f4Simarom *         rc2 = zmq_msg_close(&data)
1996aec3c8f4Simarom *     _check_rc(rc)
1997aec3c8f4Simarom */
1998aec3c8f4Simarom        __pyx_v_rc = zmq_msg_send((&__pyx_v_data), __pyx_v_handle, __pyx_v_flags);
1999aec3c8f4Simarom
2000aec3c8f4Simarom        /* "zmq/backend/cython/socket.pyx":180
2001aec3c8f4Simarom *         memcpy(zmq_msg_data(&data), msg_c, zmq_msg_size(&data))
2002aec3c8f4Simarom *         rc = zmq_msg_send(&data, handle, flags)
2003aec3c8f4Simarom *         rc2 = zmq_msg_close(&data)             # <<<<<<<<<<<<<<
2004aec3c8f4Simarom *     _check_rc(rc)
2005aec3c8f4Simarom *     _check_rc(rc2)
2006aec3c8f4Simarom */
2007aec3c8f4Simarom        __pyx_v_rc2 = zmq_msg_close((&__pyx_v_data));
2008aec3c8f4Simarom      }
2009aec3c8f4Simarom
2010aec3c8f4Simarom      /* "zmq/backend/cython/socket.pyx":177