Copyright | (c) Pavel Krajcevski 2020 |
---|---|
License | BSD-3 |
Maintainer | krajcevski@gmail.com |
Stability | experimental |
Portability | Portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
This module contains the low-level bindings that represent the direct interface between Haskell and the C library reliable.io.
The bindings here are meant for advanced usage, as they are not particularly idiomatic Haskell, and largely represent the types that we get from the bindings-DSL library. For high level bindings (recommended), please refer to the Reliable.IO module.
Synopsis
- c'RELIABLE_ENDPOINT_COUNTER_NUM_PACKETS_SENT :: Num a => a
- c'RELIABLE_ENDPOINT_COUNTER_NUM_PACKETS_RECEIVED :: Num a => a
- c'RELIABLE_ENDPOINT_COUNTER_NUM_PACKETS_ACKED :: Num a => a
- c'RELIABLE_ENDPOINT_COUNTER_NUM_PACKETS_STALE :: Num a => a
- c'RELIABLE_ENDPOINT_COUNTER_NUM_PACKETS_INVALID :: Num a => a
- c'RELIABLE_ENDPOINT_COUNTER_NUM_PACKETS_TOO_LARGE_TO_SEND :: Num a => a
- c'RELIABLE_ENDPOINT_COUNTER_NUM_PACKETS_TOO_LARGE_TO_RECEIVE :: Num a => a
- c'RELIABLE_ENDPOINT_COUNTER_NUM_FRAGMENTS_SENT :: Num a => a
- c'RELIABLE_ENDPOINT_COUNTER_NUM_FRAGMENTS_RECEIVED :: Num a => a
- c'RELIABLE_ENDPOINT_COUNTER_NUM_FRAGMENTS_INVALID :: Num a => a
- c'RELIABLE_ENDPOINT_NUM_COUNTERS :: Num a => a
- c'RELIABLE_LOG_LEVEL_NONE :: Num a => a
- c'RELIABLE_LOG_LEVEL_ERROR :: Num a => a
- c'RELIABLE_LOG_LEVEL_INFO :: Num a => a
- c'RELIABLE_LOG_LEVEL_DEBUG :: Num a => a
- c'RELIABLE_OK :: Num a => a
- c'RELIABLE_ERROR :: Num a => a
- c'reliable_init :: IO CInt
- c'reliable_term :: IO ()
- p'reliable_init :: FunPtr (IO CInt)
- type C'allocate_function_t = FunPtr (Ptr () -> Word64 -> IO (Ptr ()))
- p'reliable_term :: FunPtr (IO ())
- type C'free_function_t = FunPtr (Ptr () -> Ptr () -> IO ())
- mk'allocate_function_t :: (Ptr () -> Word64 -> IO (Ptr ())) -> IO C'allocate_function_t
- type C'transmit_packet_function_t = FunPtr (Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO ())
- mk'free_function_t :: (Ptr () -> Ptr () -> IO ()) -> IO C'free_function_t
- type C'process_packet_function_t = FunPtr (Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO CInt)
- mK'allocate_function_t :: C'allocate_function_t -> Ptr () -> Word64 -> IO (Ptr ())
- mk'transmit_packet_function_t :: (Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO ()) -> IO C'transmit_packet_function_t
- mK'free_function_t :: C'free_function_t -> Ptr () -> Ptr () -> IO ()
- mk'process_packet_function_t :: (Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO CInt) -> IO C'process_packet_function_t
- mK'transmit_packet_function_t :: C'transmit_packet_function_t -> Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO ()
- mK'process_packet_function_t :: C'process_packet_function_t -> Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO CInt
- data C'reliable_config_t = C'reliable_config_t {
- c'reliable_config_t'name :: [CChar]
- c'reliable_config_t'context :: Ptr ()
- c'reliable_config_t'index :: CInt
- c'reliable_config_t'max_packet_size :: CInt
- c'reliable_config_t'fragment_above :: CInt
- c'reliable_config_t'max_fragments :: CInt
- c'reliable_config_t'fragment_size :: CInt
- c'reliable_config_t'ack_buffer_size :: CInt
- c'reliable_config_t'sent_packets_buffer_size :: CInt
- c'reliable_config_t'received_packets_buffer_size :: CInt
- c'reliable_config_t'fragment_reassembly_buffer_size :: CInt
- c'reliable_config_t'rtt_smoothing_factor :: CFloat
- c'reliable_config_t'packet_loss_smoothing_factor :: CFloat
- c'reliable_config_t'bandwidth_smoothing_factor :: CFloat
- c'reliable_config_t'packet_header_size :: CInt
- c'reliable_config_t'transmit_packet_function :: C'transmit_packet_function_t
- c'reliable_config_t'process_packet_function :: C'process_packet_function_t
- c'reliable_config_t'allocator_context :: Ptr ()
- c'reliable_config_t'allocate_function :: C'allocate_function_t
- c'reliable_config_t'free_function :: C'free_function_t
- data C'reliable_endpoint_t = C'reliable_endpoint_t
- c'reliable_default_config :: Ptr C'reliable_config_t -> IO ()
- c'reliable_endpoint_create :: Ptr C'reliable_config_t -> CDouble -> IO (Ptr C'reliable_endpoint_t)
- c'reliable_endpoint_next_packet_sequence :: Ptr C'reliable_endpoint_t -> IO Word16
- p'reliable_default_config :: FunPtr (Ptr C'reliable_config_t -> IO ())
- c'reliable_endpoint_send_packet :: Ptr C'reliable_endpoint_t -> Ptr Word8 -> CInt -> IO ()
- p'reliable_endpoint_create :: FunPtr (Ptr C'reliable_config_t -> CDouble -> IO (Ptr C'reliable_endpoint_t))
- p'reliable_endpoint_next_packet_sequence :: FunPtr (Ptr C'reliable_endpoint_t -> IO Word16)
- c'reliable_endpoint_receive_packet :: Ptr C'reliable_endpoint_t -> Ptr Word8 -> CInt -> IO ()
- c'reliable_endpoint_get_acks :: Ptr C'reliable_endpoint_t -> Ptr CInt -> IO (Ptr Word16)
- p'reliable_endpoint_send_packet :: FunPtr (Ptr C'reliable_endpoint_t -> Ptr Word8 -> CInt -> IO ())
- c'reliable_endpoint_clear_acks :: Ptr C'reliable_endpoint_t -> IO ()
- p'reliable_endpoint_receive_packet :: FunPtr (Ptr C'reliable_endpoint_t -> Ptr Word8 -> CInt -> IO ())
- c'reliable_endpoint_reset :: Ptr C'reliable_endpoint_t -> IO ()
- p'reliable_endpoint_get_acks :: FunPtr (Ptr C'reliable_endpoint_t -> Ptr CInt -> IO (Ptr Word16))
- p'reliable_endpoint_clear_acks :: FunPtr (Ptr C'reliable_endpoint_t -> IO ())
- c'reliable_endpoint_update :: Ptr C'reliable_endpoint_t -> CDouble -> IO ()
- c'reliable_endpoint_rtt :: Ptr C'reliable_endpoint_t -> IO CFloat
- p'reliable_endpoint_reset :: FunPtr (Ptr C'reliable_endpoint_t -> IO ())
- c'reliable_endpoint_packet_loss :: Ptr C'reliable_endpoint_t -> IO CFloat
- p'reliable_endpoint_update :: FunPtr (Ptr C'reliable_endpoint_t -> CDouble -> IO ())
- p'reliable_endpoint_rtt :: FunPtr (Ptr C'reliable_endpoint_t -> IO CFloat)
- c'reliable_endpoint_bandwidth :: Ptr C'reliable_endpoint_t -> Ptr CFloat -> Ptr CFloat -> Ptr CFloat -> IO ()
- c'reliable_endpoint_counters :: Ptr C'reliable_endpoint_t -> IO (Ptr Word64)
- p'reliable_endpoint_packet_loss :: FunPtr (Ptr C'reliable_endpoint_t -> IO CFloat)
- c'reliable_endpoint_destroy :: Ptr C'reliable_endpoint_t -> IO ()
- p'reliable_endpoint_bandwidth :: FunPtr (Ptr C'reliable_endpoint_t -> Ptr CFloat -> Ptr CFloat -> Ptr CFloat -> IO ())
- c'reliable_log_level :: CInt -> IO ()
- p'reliable_endpoint_counters :: FunPtr (Ptr C'reliable_endpoint_t -> IO (Ptr Word64))
- p'reliable_endpoint_destroy :: FunPtr (Ptr C'reliable_endpoint_t -> IO ())
- p'reliable_log_level :: FunPtr (CInt -> IO ())
- c'reliable_endpoint_free_packet :: Ptr C'reliable_endpoint_t -> Ptr () -> IO ()
- p'reliable_config_t'name :: Ptr C'reliable_config_t -> Ptr CChar
- p'reliable_endpoint_free_packet :: FunPtr (Ptr C'reliable_endpoint_t -> Ptr () -> IO ())
- p'reliable_config_t'context :: Ptr C'reliable_config_t -> Ptr (Ptr ())
- type C'assert_function_t = FunPtr (CString -> CString -> CString -> CInt -> IO ())
- c'reliable_set_assert_function :: C'assert_function_t -> IO ()
- mk'assert_function_t :: (CString -> CString -> CString -> CInt -> IO ()) -> IO C'assert_function_t
- p'reliable_config_t'index :: Ptr C'reliable_config_t -> Ptr CInt
- p'reliable_set_assert_function :: FunPtr (C'assert_function_t -> IO ())
- mK'assert_function_t :: C'assert_function_t -> CString -> CString -> CString -> CInt -> IO ()
- p'reliable_config_t'max_packet_size :: Ptr C'reliable_config_t -> Ptr CInt
- c'reliable_test :: IO ()
- p'reliable_config_t'fragment_above :: Ptr C'reliable_config_t -> Ptr CInt
- p'reliable_test :: FunPtr (IO ())
- p'reliable_config_t'max_fragments :: Ptr C'reliable_config_t -> Ptr CInt
- p'reliable_config_t'fragment_size :: Ptr C'reliable_config_t -> Ptr CInt
- p'reliable_config_t'ack_buffer_size :: Ptr C'reliable_config_t -> Ptr CInt
- p'reliable_config_t'sent_packets_buffer_size :: Ptr C'reliable_config_t -> Ptr CInt
- p'reliable_config_t'received_packets_buffer_size :: Ptr C'reliable_config_t -> Ptr CInt
- p'reliable_config_t'fragment_reassembly_buffer_size :: Ptr C'reliable_config_t -> Ptr CInt
- p'reliable_config_t'rtt_smoothing_factor :: Ptr C'reliable_config_t -> Ptr CFloat
- p'reliable_config_t'packet_loss_smoothing_factor :: Ptr C'reliable_config_t -> Ptr CFloat
- p'reliable_config_t'bandwidth_smoothing_factor :: Ptr C'reliable_config_t -> Ptr CFloat
- p'reliable_config_t'packet_header_size :: Ptr C'reliable_config_t -> Ptr CInt
- p'reliable_config_t'transmit_packet_function :: Ptr C'reliable_config_t -> Ptr C'transmit_packet_function_t
- p'reliable_config_t'process_packet_function :: Ptr C'reliable_config_t -> Ptr C'process_packet_function_t
- p'reliable_config_t'allocator_context :: Ptr C'reliable_config_t -> Ptr (Ptr ())
- p'reliable_config_t'allocate_function :: Ptr C'reliable_config_t -> Ptr C'allocate_function_t
- p'reliable_config_t'free_function :: Ptr C'reliable_config_t -> Ptr C'free_function_t
Documentation
c'RELIABLE_ENDPOINT_NUM_COUNTERS :: Num a => a Source #
c'RELIABLE_LOG_LEVEL_NONE :: Num a => a Source #
c'RELIABLE_LOG_LEVEL_ERROR :: Num a => a Source #
c'RELIABLE_LOG_LEVEL_INFO :: Num a => a Source #
c'RELIABLE_LOG_LEVEL_DEBUG :: Num a => a Source #
c'RELIABLE_OK :: Num a => a Source #
c'RELIABLE_ERROR :: Num a => a Source #
c'reliable_init :: IO CInt Source #
c'reliable_term :: IO () Source #
p'reliable_term :: FunPtr (IO ()) Source #
mk'allocate_function_t :: (Ptr () -> Word64 -> IO (Ptr ())) -> IO C'allocate_function_t Source #
type C'transmit_packet_function_t = FunPtr (Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO ()) Source #
mk'free_function_t :: (Ptr () -> Ptr () -> IO ()) -> IO C'free_function_t Source #
type C'process_packet_function_t = FunPtr (Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO CInt) Source #
mK'allocate_function_t :: C'allocate_function_t -> Ptr () -> Word64 -> IO (Ptr ()) Source #
mk'transmit_packet_function_t :: (Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO ()) -> IO C'transmit_packet_function_t Source #
mK'free_function_t :: C'free_function_t -> Ptr () -> Ptr () -> IO () Source #
mk'process_packet_function_t :: (Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO CInt) -> IO C'process_packet_function_t Source #
mK'transmit_packet_function_t :: C'transmit_packet_function_t -> Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO () Source #
mK'process_packet_function_t :: C'process_packet_function_t -> Ptr () -> CInt -> Word16 -> Ptr Word8 -> CInt -> IO CInt Source #
data C'reliable_config_t Source #
Instances
Eq C'reliable_config_t Source # | |
Defined in Bindings.Reliable.IO (==) :: C'reliable_config_t -> C'reliable_config_t -> Bool # (/=) :: C'reliable_config_t -> C'reliable_config_t -> Bool # | |
Show C'reliable_config_t Source # | |
Defined in Bindings.Reliable.IO showsPrec :: Int -> C'reliable_config_t -> ShowS # show :: C'reliable_config_t -> String # showList :: [C'reliable_config_t] -> ShowS # | |
Storable C'reliable_config_t Source # | |
Defined in Bindings.Reliable.IO sizeOf :: C'reliable_config_t -> Int # alignment :: C'reliable_config_t -> Int # peekElemOff :: Ptr C'reliable_config_t -> Int -> IO C'reliable_config_t # pokeElemOff :: Ptr C'reliable_config_t -> Int -> C'reliable_config_t -> IO () # peekByteOff :: Ptr b -> Int -> IO C'reliable_config_t # pokeByteOff :: Ptr b -> Int -> C'reliable_config_t -> IO () # peek :: Ptr C'reliable_config_t -> IO C'reliable_config_t # poke :: Ptr C'reliable_config_t -> C'reliable_config_t -> IO () # |
c'reliable_default_config :: Ptr C'reliable_config_t -> IO () Source #
c'reliable_endpoint_create :: Ptr C'reliable_config_t -> CDouble -> IO (Ptr C'reliable_endpoint_t) Source #
p'reliable_default_config :: FunPtr (Ptr C'reliable_config_t -> IO ()) Source #
c'reliable_endpoint_send_packet :: Ptr C'reliable_endpoint_t -> Ptr Word8 -> CInt -> IO () Source #
p'reliable_endpoint_create :: FunPtr (Ptr C'reliable_config_t -> CDouble -> IO (Ptr C'reliable_endpoint_t)) Source #
p'reliable_endpoint_next_packet_sequence :: FunPtr (Ptr C'reliable_endpoint_t -> IO Word16) Source #
c'reliable_endpoint_receive_packet :: Ptr C'reliable_endpoint_t -> Ptr Word8 -> CInt -> IO () Source #
c'reliable_endpoint_get_acks :: Ptr C'reliable_endpoint_t -> Ptr CInt -> IO (Ptr Word16) Source #
p'reliable_endpoint_send_packet :: FunPtr (Ptr C'reliable_endpoint_t -> Ptr Word8 -> CInt -> IO ()) Source #
p'reliable_endpoint_receive_packet :: FunPtr (Ptr C'reliable_endpoint_t -> Ptr Word8 -> CInt -> IO ()) Source #
p'reliable_endpoint_get_acks :: FunPtr (Ptr C'reliable_endpoint_t -> Ptr CInt -> IO (Ptr Word16)) Source #
c'reliable_endpoint_update :: Ptr C'reliable_endpoint_t -> CDouble -> IO () Source #
p'reliable_endpoint_reset :: FunPtr (Ptr C'reliable_endpoint_t -> IO ()) Source #
p'reliable_endpoint_update :: FunPtr (Ptr C'reliable_endpoint_t -> CDouble -> IO ()) Source #
c'reliable_endpoint_bandwidth :: Ptr C'reliable_endpoint_t -> Ptr CFloat -> Ptr CFloat -> Ptr CFloat -> IO () Source #
p'reliable_endpoint_bandwidth :: FunPtr (Ptr C'reliable_endpoint_t -> Ptr CFloat -> Ptr CFloat -> Ptr CFloat -> IO ()) Source #
c'reliable_log_level :: CInt -> IO () Source #
p'reliable_endpoint_destroy :: FunPtr (Ptr C'reliable_endpoint_t -> IO ()) Source #
p'reliable_log_level :: FunPtr (CInt -> IO ()) Source #
Generally not useful -- just calls free_function
as used in the config.
c'reliable_endpoint_free_packet :: Ptr C'reliable_endpoint_t -> Ptr () -> IO () Source #
p'reliable_endpoint_free_packet :: FunPtr (Ptr C'reliable_endpoint_t -> Ptr () -> IO ()) Source #
p'reliable_config_t'context :: Ptr C'reliable_config_t -> Ptr (Ptr ()) Source #
mk'assert_function_t :: (CString -> CString -> CString -> CInt -> IO ()) -> IO C'assert_function_t Source #
p'reliable_set_assert_function :: FunPtr (C'assert_function_t -> IO ()) Source #
mK'assert_function_t :: C'assert_function_t -> CString -> CString -> CString -> CInt -> IO () Source #
p'reliable_config_t'max_packet_size :: Ptr C'reliable_config_t -> Ptr CInt Source #
For testing only.
c'reliable_test :: IO () Source #
p'reliable_test :: FunPtr (IO ()) Source #
p'reliable_config_t'transmit_packet_function :: Ptr C'reliable_config_t -> Ptr C'transmit_packet_function_t Source #
p'reliable_config_t'process_packet_function :: Ptr C'reliable_config_t -> Ptr C'process_packet_function_t Source #