module Haskakafka.InternalTypes where
import Control.Exception
import Data.Int
import Data.Typeable
import Haskakafka.InternalRdKafka
import Haskakafka.InternalRdKafkaEnum
import qualified Data.ByteString as BS
data KafkaConf = KafkaConf RdKafkaConfTPtr
data KafkaTopicConf = KafkaTopicConf RdKafkaTopicConfTPtr
data Kafka = Kafka { kafkaPtr :: RdKafkaTPtr, _kafkaConf :: KafkaConf}
data KafkaTopic = KafkaTopic
RdKafkaTopicTPtr
Kafka
KafkaTopicConf
data KafkaOffset =
KafkaOffsetBeginning
| KafkaOffsetEnd
| KafkaOffset Int64
| KafkaOffsetStored
data KafkaMessage =
KafkaMessage {
messagePartition :: !Int
, messageOffset :: !Int64
, messagePayload :: !BS.ByteString
, messageKey :: Maybe BS.ByteString
}
deriving (Eq, Show, Read, Typeable)
data KafkaProduceMessage =
KafkaProduceMessage
!BS.ByteString
| KafkaProduceKeyedMessage
!BS.ByteString
!BS.ByteString
deriving (Eq, Show, Typeable)
data KafkaProducePartition =
KafkaSpecifiedPartition !Int
| KafkaUnassignedPartition
data KafkaMetadata = KafkaMetadata
{
brokers :: [KafkaBrokerMetadata]
, topics :: [Either KafkaError KafkaTopicMetadata]
}
deriving (Eq, Show, Typeable)
data KafkaBrokerMetadata = KafkaBrokerMetadata
{
brokerId :: Int
, brokerHost :: String
, brokerPort :: Int
}
deriving (Eq, Show, Typeable)
data KafkaTopicMetadata = KafkaTopicMetadata
{
topicName :: String
, topicPartitions :: [Either KafkaError KafkaPartitionMetadata]
} deriving (Eq, Show, Typeable)
data KafkaPartitionMetadata = KafkaPartitionMetadata
{
partitionId :: Int
, partitionLeader :: Int
, partitionReplicas :: [Int]
, partitionIsrs :: [Int]
}
deriving (Eq, Show, Typeable)
data KafkaLogLevel =
KafkaLogEmerg | KafkaLogAlert | KafkaLogCrit | KafkaLogErr | KafkaLogWarning |
KafkaLogNotice | KafkaLogInfo | KafkaLogDebug
instance Enum KafkaLogLevel where
toEnum 0 = KafkaLogEmerg
toEnum 1 = KafkaLogAlert
toEnum 2 = KafkaLogCrit
toEnum 3 = KafkaLogErr
toEnum 4 = KafkaLogWarning
toEnum 5 = KafkaLogNotice
toEnum 6 = KafkaLogInfo
toEnum 7 = KafkaLogDebug
toEnum _ = undefined
fromEnum KafkaLogEmerg = 0
fromEnum KafkaLogAlert = 1
fromEnum KafkaLogCrit = 2
fromEnum KafkaLogErr = 3
fromEnum KafkaLogWarning = 4
fromEnum KafkaLogNotice = 5
fromEnum KafkaLogInfo = 6
fromEnum KafkaLogDebug = 7
data KafkaError =
KafkaError String
| KafkaInvalidReturnValue
| KafkaBadSpecification String
| KafkaResponseError RdKafkaRespErrT
| KafkaInvalidConfigurationValue String
| KafkaUnknownConfigurationKey String
| KakfaBadConfiguration
deriving (Eq, Show, Typeable)
instance Exception KafkaError