send
Send data to the socket. The socket must be connected to a remote
socket. Returns the number of bytes sent. Applications are responsible
for ensuring that all data has been sent.
Execute an action of an effect.
This is primarily used to create methods for actions of effects:
data FooBar m a where
Foo :: String -> m a -> FooBar m a
Bar :: FooBar m Int
foo :: Member FooBar r => String -> Sem r a -> Sem r a
foo s m = send (Foo s m)
bar :: Member FooBar r => Sem r Int
bar = send Bar
makeSem allows you to eliminate this boilerplate.
@since TODO
This function is used by the producer threads to queue output for the
consumer thread to consume. Returns whether the queue has more space.
Send a single message, with a generated
Serial. The second
parameter exists to prevent race conditions when registering a reply
handler; it receives the serial the message
will be sent with,
before it's actually sent.
Sockets are thread-safe. Only one message may be sent at a time; if
multiple threads attempt to send messages concurrently, one will block
until after the other has finished.
Throws
SocketError on failure.
Send a message on this connection.
send provides vectored I/O, and allows multiple data segments
to be sent using a single call (cf.
sendMany). Note that this
segment structure is entirely unrelated to the segment structure
returned by a
Received event.
Send an operation of the given effect to its handler for execution.
Construct a request for an effect to be interpreted by some handler
later on.
Send the given
ByteString over the socket (cf.
zmq_sendmsg).
Note: This function always calls
zmq_sendmsg in a
non-blocking way, i.e. there is no need to provide the
ZMQ_DONTWAIT flag as this is used by default. Still
send is blocking the thread as long as the message can not be
queued on the socket using GHC's
threadWaitWrite.
Send an encoded
DNSMessage datagram over UDP. The message
length is implicit in the size of the UDP datagram. With TCP you must
use
sendVC, because TCP does not have message boundaries, and
each message needs to be prepended with an explicit length. The socket
must be explicitly connected to the destination nameserver.
Send a request and wait for a reply (resulting in an effectful
computation).
“Sends” an effect, which should be a value defined as part of an
effect algebra (see the module documentation for
Control.Monad.Freer), to an effectful computation. This is used
to connect the definition of an effect to the
Eff monad so that
it can be used and handled.
Execute an action of an effect.
This is primarily used to create methods for actions of effects:
data FooBar m a where
Foo :: String -> m a -> FooBar m a
Bar :: FooBar m Int
foo :: Member FooBar r => String -> Sem r a -> Sem r a
foo s m = send (Foo s m)
bar :: Member FooBar r => Sem r Int
bar = send Bar
makeSem allows you to eliminate this boilerplate.
@since TODO
send data with connection
Send a string to the server and return its response.
Sends message to a websocket server