Esempio n. 1
0
        public int GetSocketOption(int option, out ulong value)
        {
            using (var optionLength = new DisposableIntPtr(IntPtr.Size))
                using (var optionValue = new DisposableIntPtr(Marshal.SizeOf(typeof(ulong))))
                {
                    Marshal.WriteInt32(optionLength, sizeof(ulong));

                    int rc = RetryIfInterrupted(() => LibZmq.zmq_getsockopt(SocketHandle, option, optionValue, optionLength));
                    value = unchecked (Convert.ToUInt64(Marshal.ReadInt64(optionValue)));

                    return(rc);
                }
        }
Esempio n. 2
0
        public int GetSocketOption(int option, out byte[] value)
        {
            using (var optionLength = new DisposableIntPtr(IntPtr.Size))
                using (var optionValue = new DisposableIntPtr(MaxBinaryOptionSize))
                {
                    Marshal.WriteInt32(optionLength, MaxBinaryOptionSize);

                    int rc = RetryIfInterrupted(() => LibZmq.zmq_getsockopt(SocketHandle, option, optionValue, optionLength));

                    value = new byte[Marshal.ReadInt32(optionLength)];
                    Marshal.Copy(optionValue, value, 0, value.Length);

                    return(rc);
                }
        }