purescript-amqp/src/Node/AMQP/FFI.purs

122 lines
4.1 KiB
Plaintext

module Node.AMQP.FFI where
import Node.AMQP.Types
import Node.AMQP.Types.Internal
import Prelude
import Control.Monad.Aff (Aff)
import Control.Monad.Eff (Eff, kind Effect)
import Control.Monad.Eff.Exception (Error)
import Data.Foreign (Foreign)
import Data.Function.Uncurried (Fn2, Fn3, Fn4, Fn5, Fn6, Fn7, Fn1)
import Data.Nullable (Nullable)
import Node.Buffer (Buffer)
type EffAMQP e a = Eff (amqp :: AMQP | e) a
type AffAMQP e a = Aff (amqp :: AMQP | e) a
type ECb e a = Error -> EffAMQP e a
type SCb r e a = r -> EffAMQP e a
foreign import _connect :: forall e a.
Fn3 String (ECb e a) (SCb Connection e a) (EffAMQP e a)
foreign import _close :: forall e a.
Fn3 Connection (ECb e a) (SCb Unit e a) (EffAMQP e a)
foreign import _createChannel :: forall e a.
Fn3 Connection (ECb e a) (SCb Channel e a) (EffAMQP e a)
foreign import _closeChannel :: forall e a.
Fn3 Channel (ECb e a) (SCb Unit e a) (EffAMQP e a)
foreign import _assertQueue :: forall e a.
Fn5 Channel QueueName Foreign (ECb e a) (SCb AssertQueueOK e a) (EffAMQP e a)
foreign import _checkQueue :: forall e a.
Fn4 Channel QueueName (ECb e a) (SCb AssertQueueOK e a) (EffAMQP e a)
foreign import _deleteQueue :: forall e a.
Fn5 Channel QueueName Foreign (ECb e a) (SCb DeleteQueueOK e a) (EffAMQP e a)
foreign import _purgeQueue :: forall e a.
Fn4 Channel QueueName (ECb e a) (SCb PurgeQueueOK e a) (EffAMQP e a)
foreign import _bindQueue :: forall e a.
Fn7 Channel QueueName ExchangeName RoutingKey Foreign (ECb e a) (SCb Unit e a) (EffAMQP e a)
foreign import _unbindQueue :: forall e a.
Fn7 Channel QueueName ExchangeName RoutingKey Foreign (ECb e a) (SCb Unit e a) (EffAMQP e a)
foreign import _assertExchange :: forall e a.
Fn6 Channel ExchangeName String Foreign (ECb e a) (SCb Unit e a) (EffAMQP e a)
foreign import _checkExchange :: forall e a.
Fn4 Channel ExchangeName (ECb e a) (SCb Unit e a) (EffAMQP e a)
foreign import _deleteExchange :: forall e a.
Fn5 Channel ExchangeName Foreign (ECb e a) (SCb Unit e a) (EffAMQP e a)
foreign import _bindExchange :: forall e a.
Fn7 Channel QueueName QueueName RoutingKey Foreign (ECb e a) (SCb Unit e a) (EffAMQP e a)
foreign import _unbindExchange :: forall e a.
Fn7 Channel QueueName QueueName RoutingKey Foreign (ECb e a) (SCb Unit e a) (EffAMQP e a)
foreign import _publish :: forall e a.
Fn6 Channel ExchangeName RoutingKey Buffer Foreign (SCb Unit e a) (EffAMQP e a)
foreign import _sendToQueue :: forall e a.
Fn5 Channel QueueName Buffer Foreign (SCb Unit e a) (EffAMQP e a)
foreign import _consume :: forall e a.
Fn6 Channel QueueName (SCb (Nullable Message') e Unit) Foreign (ECb e a) (SCb ConsumeOK e a) (EffAMQP e a)
foreign import _cancel :: forall e a.
Fn4 Channel String (ECb e a) (SCb Unit e a) (EffAMQP e a)
foreign import _get :: forall e a.
Fn5 Channel QueueName Foreign (ECb e a) (SCb (Nullable Message') e a) (EffAMQP e a)
foreign import _ack :: forall e a.
Fn3 Channel String Boolean (EffAMQP e a)
foreign import _nack :: forall e a.
Fn4 Channel String Boolean Boolean (EffAMQP e a)
foreign import _ackAll :: forall e a.
Fn1 Channel (EffAMQP e a)
foreign import _nackAll :: forall e a.
Fn2 Channel Boolean (EffAMQP e a)
foreign import _prefetch :: forall e a.
Fn2 Channel Int (EffAMQP e a)
foreign import _recover :: forall e a.
Fn3 Channel (ECb e a) (SCb Unit e a) (EffAMQP e a)
foreign import _onConnectionClose :: forall e a.
Fn2 Connection (SCb (Nullable Error) e Unit) (EffAMQP e a)
foreign import _onConnectionError :: forall e a.
Fn2 Connection (SCb Error e Unit) (EffAMQP e a)
foreign import _onConnectionBlocked :: forall e a.
Fn2 Connection (SCb String e Unit) (EffAMQP e a)
foreign import _onConnectionUnblocked :: forall e a.
Fn2 Connection (EffAMQP e Unit) (EffAMQP e a)
foreign import _onChannelClose :: forall e a.
Fn2 Channel (EffAMQP e Unit) (EffAMQP e a)
foreign import _onChannelError :: forall e a.
Fn2 Channel (SCb Error e Unit) (EffAMQP e a)
foreign import _onChannelReturn :: forall e a.
Fn2 Channel (SCb Message' e Unit) (EffAMQP e a)
foreign import _onChannelDrain :: forall e a.
Fn2 Channel (EffAMQP e Unit) (EffAMQP e a)