~ubuntu-branches/ubuntu/wily/pyzmq/wily

« back to all changes in this revision

Viewing changes to zmq/core/message.pxd

  • Committer: Package Import Robot
  • Author(s): Julian Taylor
  • Date: 2013-02-24 19:23:15 UTC
  • mfrom: (1.2.1) (9 sid)
  • mto: This revision was merged to the branch mainline in revision 10.
  • Revision ID: package-import@ubuntu.com-20130224192315-qhmwp3m3ymk8r60d
Tags: 2.2.0.1-1
* New upstream release
* relicense debian packaging to LGPL-3
* update watch file to use github directly
  thanks to Bart Martens for the file
* add autopkgtests
* drop obsolete DM-Upload-Allowed
* bump standard to 3.9.4, no changes required

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
"""0MQ Message related class declarations."""
2
2
 
3
3
#
4
 
#    Copyright (c) 2010 Brian E. Granger
 
4
#    Copyright (c) 2010-2011 Brian E. Granger & Min Ragan-Kelley
5
5
#
6
6
#    This file is part of pyzmq.
7
7
#
23
23
# Imports
24
24
#-----------------------------------------------------------------------------
25
25
 
26
 
from czmq cimport zmq_msg_t
 
26
from cpython cimport PyBytes_FromStringAndSize
 
27
 
 
28
from libzmq cimport zmq_msg_t, zmq_msg_data, zmq_msg_size
27
29
 
28
30
#-----------------------------------------------------------------------------
29
31
# Code
32
34
cdef class MessageTracker(object):
33
35
    """A class for tracking if 0MQ is done using one or more messages."""
34
36
 
35
 
    cdef set queues  # Message Queue objects to track.
 
37
    cdef set events  # Message Event objects to track.
36
38
    cdef set peers   # Other Message or MessageTracker objects.
37
 
    
38
 
 
39
 
cdef class Message:
40
 
    """A Message class for non-copy send/recvs."""
 
39
 
 
40
 
 
41
cdef class Frame:
 
42
    """A Message Frame class for non-copy send/recvs."""
41
43
 
42
44
    cdef zmq_msg_t zmq_msg
43
45
    cdef object _data      # The actual message data as a Python object.
44
46
    cdef object _buffer    # A Python Buffer/View of the message contents
45
47
    cdef object _bytes     # A bytes/str copy of the message.
46
48
    cdef bint _failed_init # Flag to handle failed zmq_msg_init
47
 
    cdef public object tracker_queue  # Queue for use with zmq_free_fn.
 
49
    cdef public object tracker_event  # Event for use with zmq_free_fn.
48
50
    cdef public object tracker        # MessageTracker object.
 
51
    cdef public bint more             # whether RCVMORE was set
49
52
 
50
 
    cdef Message fast_copy(self) # Create shallow copy of Message object.
 
53
    cdef Frame fast_copy(self) # Create shallow copy of Message object.
51
54
    cdef object _getbuffer(self) # Construct self._buffer.
52
55
 
53
 
cdef inline object copy_zmq_msg_bytes(zmq_msg_t *zmq_msg)
 
56
 
 
57
cdef inline object copy_zmq_msg_bytes(zmq_msg_t *zmq_msg):
 
58
    """ Copy the data from a zmq_msg_t """
 
59
    cdef char *data_c = NULL
 
60
    cdef Py_ssize_t data_len_c
 
61
    with nogil:
 
62
        data_c = <char *>zmq_msg_data(zmq_msg)
 
63
        data_len_c = zmq_msg_size(zmq_msg)
 
64
    return PyBytes_FromStringAndSize(data_c, data_len_c)
 
65
 
 
66