Safe Haskell | None |
---|---|
Language | Haskell2010 |
DCC command parsing and encoding module.
Example of parsing an offer file command:
runParser parseOfferFile ctcpMessage
Example of encoding an offer file command:
encodeCtcp offerFile
- class CtcpCommand a where
- encodeCtcp :: a -> CTCPByteString
- data Service
- data OpenChat
- data CloseChat = CloseChat
- data OfferFile = OfferFile TransferType FileMetadata
- data TryResumeFile = TryResumeFile TransferType FileMetadata FileOffset
- data AcceptResumeFile = AcceptResumeFile TransferType FileMetadata FileOffset
- data OfferFileSink = OfferFileSink Token FileMetadata IPv4 PortNumber
- data TransferType
- data FileMetadata = FileMetadata {}
- newtype Token = Token ByteString
- data FileOffset
- runParser :: Parser a -> CTCPByteString -> Either String a
- parseService :: Parser Service
- parseOpenChat :: Parser OpenChat
- parseCloseChat :: Parser CloseChat
- parseOfferFile :: Parser OfferFile
- parseTryResumeFile :: OfferFile -> Parser TryResumeFile
- parseAcceptResumeFile :: TryResumeFile -> Parser AcceptResumeFile
- parseOfferFileSink :: AcceptResumeFile -> Parser (Maybe OfferFileSink)
Types
DCC service
class CtcpCommand a where Source
Class for types that can be sent as CTCP commands
encodeCtcp :: a -> CTCPByteString Source
Type of DCC service offered
Messaging OpenChat | Offer chat session |
FileTransfer OfferFile | Offer file transfer |
Messaging commands (DCC CHAT)
Type of DCC chat to open
Chat IPv4 PortNumber | Text messages exchange DCC CHAT chat <ip> <port> |
Whiteboard IPv4 PortNumber | Drawing commands exchange DCC CHAT wboard <ip> <port> |
Signal intent to close DCC chat connection
CloseChat | DCC CLOSE |
File Transfer commands (DCC SEND)
DCC file transfer instructions
OfferFile TransferType FileMetadata | DCC: DCC SEND <fileName> <ip> <port> (<fileSize>) Reverse DCC: DCC SEND <fileName> <ip> 0 <fileSize> <token> |
data TryResumeFile Source
Signal intent to resume DCC file transfer at specific position
TryResumeFile TransferType FileMetadata FileOffset | DCC: DCC RESUME <fileName> <port> <position> Reverse DCC: DCC RESUME <fileName> 0 <position> <token> |
data AcceptResumeFile Source
Signal acceptance to resume DCC file transfer at specific position
AcceptResumeFile TransferType FileMetadata FileOffset | DCC: DCC ACCEPT <fileName> <port> <position> Reverse DCC: DCC ACCEPT <fileName> 0 <position> <token> |
data OfferFileSink Source
Signal readiness to accept a connection (only Reverse DCC)
OfferFileSink Token FileMetadata IPv4 PortNumber | Reverse DCC: DCC SEND <fileName> <ip> <port> <fileSize> <token> |
Helper Types
data TransferType Source
Type of a DCC file transfer connection
data FileMetadata Source
Properties of a file
An identifier for knowing which negotiation a request belongs to
data FileOffset Source