Safe Haskell | None |
---|---|
Language | Haskell2010 |
Functions for receiving files.
Each chunk is acknowledged by sending the total sum of bytes received for a file. See the CTCP specification.
- acceptFile :: DccSend -> (PortNumber -> IO ()) -> (FileOffset -> IO ()) -> ReaderT (Maybe PortNumber) IO ()
- resumeFile :: DccSend -> DccAccept -> (PortNumber -> IO ()) -> (FileOffset -> IO ()) -> ReaderT (Maybe PortNumber) IO ()
- data FileTransfer m = Download {
- _fileName :: !(Path Rel File)
- _connectionType :: !(ConnectionType m)
- _transferType :: !TransferType
- _onChunk :: FileOffset -> m ()
- data ConnectionType m
- = Active !IPv4 !PortNumber (m ())
- | Passive !IPv4 !(Maybe PortNumber) (PortNumber -> m ())
- data TransferType
- transfer :: (MonadMask m, MonadIO m) => FileTransfer m -> m ()
Start/resume DCC file transfer
:: DccSend | |
-> (PortNumber -> IO ()) | Callback when socket is ready |
-> (FileOffset -> IO ()) | Callback when a chunk of data was transfered |
-> ReaderT (Maybe PortNumber) IO () |
Accept a DCC file offer
:: DccSend | |
-> DccAccept | |
-> (PortNumber -> IO ()) | Callback when socket is ready |
-> (FileOffset -> IO ()) | Callback when a chunk of data was transferred |
-> ReaderT (Maybe PortNumber) IO () |
Accept a DCC file offer for a partially downloaded file
Custom DCC file transfer
data FileTransfer m Source #
A description of a file transfer. You can specify a callback that will be called with the number of bytes transfered for each chunk.
Download | |
|
data ConnectionType m Source #
Active !IPv4 !PortNumber (m ()) | Connects to other party on specified port. With callback when socket is ready. |
Passive !IPv4 !(Maybe PortNumber) (PortNumber -> m ()) | Binds to local port and waits for connection by other party. If no port number is provided, one will be provided by the OS. With callback when socket is ready. |