/* Send a message part on a socket. For a description of flags, see: http://api.zeromq.org/3-2:zmq-send#toc2 */ func (soc *Socket) SendBytes(data []byte, flags Flag) (int, error) { d := data if len(data) == 0 { d = []byte{0} } size, err := C.zmq_send(soc.soc, unsafe.Pointer(&d[0]), C.size_t(len(data)), C.int(flags)) if size < 0 { return int(size), errget(err) } return int(size), nil }
/* Send a message part on a socket. For a description of flags, see: http://api.zeromq.org/2-2:zmq-send#toc2 */ func (soc *Socket) SendBytes(data []byte, flags Flag) (int, error) { datac := C.CString(string(data)) var msg C.zmq_msg_t if i, err := C.my_msg_init_data(&msg, unsafe.Pointer(datac), C.size_t(len(data))); i != 0 { return -1, errget(err) } defer C.zmq_msg_close(&msg) n, err := C.zmq_send(soc.soc, &msg, C.int(flags)) if n != 0 { return -1, errget(err) } return int(n), nil }
func (p lzmqSocket) Send(msg Message, flags int) os.Error { if msg == nil { return os.EINVAL } lzmqMsgHolder, err := msg.(lzmqMessageHolder) if err == false { return os.EINVAL } lzmqMsg := lzmqMsgHolder.getLzmqMessage() ret := p.Provider().OkIf(C.zmq_send(unsafe.Pointer(p), lzmqMsg.ptr(), C.int(flags)) == 0) // fmt.Println("sent", msg) return ret }
// Send a message to the socket. // int zmq_send (void *s, zmq_msg_t *msg, int flags); func (s *zmqSocket) Send(data []byte, flags SendRecvOption) error { var m C.zmq_msg_t // Copy data array into C-allocated buffer. size := C.size_t(len(data)) if C.zmq_msg_init_size(&m, size) != 0 { return errno() } if size > 0 { // FIXME Ideally this wouldn't require a copy. C.memcpy(unsafe.Pointer(C.zmq_msg_data(&m)), unsafe.Pointer(&data[0]), size) // XXX I hope this works...(seems to) } if C.zmq_send(s.s, &m, C.int(flags)) != 0 { // zmq_send did not take ownership, free message C.zmq_msg_close(&m) return errno() } return nil }
func Send(socket ZSocket, message ZMessage, flags int) os.Error { return handle(C.zmq_send(socket.Ptr, message.Ptr, C.int(flags))) }