1. 18 Oct, 2015 1 commit
  2. 13 Sep, 2015 1 commit
  3. 16 Aug, 2015 1 commit
  4. 13 Aug, 2015 1 commit
  5. 11 Aug, 2015 2 commits
  6. 20 Jul, 2015 2 commits
  7. 05 Jul, 2015 1 commit
    • Jens Auer's avatar
      "zero-copy" raw_decoder · 36797936
      Jens Auer authored
      A memcpy is eliminated when receiving data on a ZMQ_STREAM socket. Instead
      of receiving into a static buffer and then copying the data into the
      buffer malloced in msg_t::init_size, the raw_decoder allocates the memory
      for together with the reference-counter and creates a msg_t object
      on top of that memory. This saves the memcpy operation.
      
      For small messages, data is still copied and the receive buffer is reused.
      36797936
  8. 29 Jun, 2015 1 commit
  9. 24 Jun, 2015 1 commit
  10. 14 Jun, 2015 1 commit
    • Jens Auer's avatar
      Fixed wrong handling of shared messages · 51cb57e2
      Jens Auer authored
      The shared reference count was not shared but copied. msg_t cannot
      store the refcnt itsef but has to store a pointer to an externally
      allocated (shared) refcnter. The changes to lmsg are reverted to
      use content_t again. Howver, this introduces an allocation in v2_decoder
      when creating the message which can be avoided. When allocating the reception
      buffer, space is allocated for the maximum number of reference counts
      (8192 / max_vsm_size = 8192/64 = 128 zmq:atomic_counter objects). This
      increases the buffer by 128*sizeof(atomic_counter) = 128*4 = 512 bytes only.
      When creating a message, the refcnt member is set to the address of one of the
      pre-allocated atomic_counter_t objects. To do so, a new msg_t type zcmsg
      is introduced because msg::copy must discriminate between the message types
      when releasing memory.
      51cb57e2
  11. 08 Jun, 2015 1 commit
  12. 07 Jun, 2015 1 commit
  13. 05 Jun, 2015 1 commit
  14. 04 Jun, 2015 1 commit
  15. 03 Jun, 2015 1 commit
  16. 01 May, 2015 2 commits
  17. 18 Feb, 2015 1 commit
  18. 12 Feb, 2015 1 commit
  19. 07 Feb, 2015 2 commits
  20. 02 Feb, 2015 3 commits
  21. 01 Feb, 2015 1 commit
  22. 21 Jan, 2015 1 commit
  23. 09 Jan, 2015 1 commit
  24. 29 Dec, 2014 1 commit
  25. 23 Dec, 2014 1 commit
  26. 26 Nov, 2014 2 commits
  27. 03 Nov, 2014 1 commit
  28. 17 Oct, 2014 1 commit
  29. 16 Oct, 2014 1 commit
  30. 14 Oct, 2014 1 commit
  31. 10 Oct, 2014 1 commit
  32. 23 Oct, 2013 1 commit
  33. 28 Jun, 2013 1 commit
    • Pieter Hintjens's avatar
      Added Z85 support · 70417701
      Pieter Hintjens authored
      The use of binary for CURVE keys is painful; you cannot easily copy
      these in e.g. email, or use them directly in source code. There are
      various encoding possibilities. Base16 and Base64 are not optimal.
      Ascii85 is not safe for source (it generates quotes and escapes).
      
      So, I've designed a new Base85 encoding, Z85, which is safe to use
      in code and elsewhere, and I've modified libzmq to use this where
      it also uses binary keys (in get/setsockopt).
      
      Very simply, if you use a 32-byte value, it's Base256 (binary),
      and if you use a 40-byte value, it's Base85 (Z85).
      
      I've put the Z85 codec into z85_codec.hpp, it's not elegant C++
      but it is minimal and it works. Feel free to rewrap as a real class
      if this annoys you.
      70417701