From 83abbda0cdf2c64ee002ff0e0f54d2a512594ae9 Mon Sep 17 00:00:00 2001 From: Vitaly Mayatskikh Date: Tue, 13 Apr 2010 16:11:26 +0200 Subject: [PATCH] New function: zmq:getsockopt. --- package.lisp | 1 + zeromq-api.lisp | 8 ++++++++ zeromq.lisp | 6 ++++++ 3 files changed, 15 insertions(+) diff --git a/package.lisp b/package.lisp index 73e8160..f1d72a1 100644 --- a/package.lisp +++ b/package.lisp @@ -69,6 +69,7 @@ #:connect #:device #:errno + #:getsockopt #:init #:msg-close #:msg-copy diff --git a/zeromq-api.lisp b/zeromq-api.lisp index d099318..78718e3 100644 --- a/zeromq-api.lisp +++ b/zeromq-api.lisp @@ -163,6 +163,14 @@ The string must be freed with FOREIGN-STRING-FREE." (setf (mem-aref int :long 0) value) (%setsockopt socket option int (foreign-type-size :long)))))) +(defun getsockopt (socket option) + (with-foreign-objects ((opt :int64) + (len :long)) + (setf (mem-aref opt :int64) 0 + (mem-aref len :long) (foreign-type-size :int64)) + (%getsockopt socket option opt len) + (mem-aref opt :int64))) + (defun poll (items &optional (timeout -1)) (let ((len (length items))) (with-foreign-object (%items 'pollitem len) diff --git a/zeromq.lisp b/zeromq.lisp index 0ad8d00..f03e52f 100644 --- a/zeromq.lisp +++ b/zeromq.lisp @@ -146,6 +146,12 @@ (optval :pointer) (optvallen :long)) +(defcfun* ("zmq_getsockopt" %getsockopt) :int + (s :pointer) + (option :int) + (optval :pointer) + (optvallen :pointer)) + (defcfun* ("zmq_bind" %bind) :int (s :pointer) (addr :pointer :char)) -- 2.11.4.GIT