[
https://issues.apache.org/jira/browse/DIRMINA-218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mike Heath reassigned DIRMINA-218:
----------------------------------
Assignee: Mike Heath
> Ability to transfer channels to socket channels owned by Mina
> -------------------------------------------------------------
>
> Key: DIRMINA-218
> URL: https://issues.apache.org/jira/browse/DIRMINA-218
> Project: MINA
> Issue Type: New Feature
> Affects Versions: 0.9.5
> Reporter: dave irving
> Assignee: Mike Heath
> Priority: Minor
>
> Id like to be able to transfer file contents to a socket as effeciently as
> possible.
> In some cases, making use of FileChannel#transferTo(long, long,
> WritableByteChannel) is a good choice, as it (in theory) allows the OS to do
> the transfer without bringing the file content in to user space (e.g. could
> make use of sendfile behind the scenes or whatever).
> There is no direct way to obtain the channel from an IOSession - but even if
> there was - allowing a user to do this directly is dangerous as Mina could
> have queued writes pending for the channel.
> This JIRA issue can hopefully kick off some discussion.
> I see two basic ways to do this:
> 1) Add "sendFile(FileChannel)" or similar to IoSession. Mina then queues this
> request along with other pending writes. Of course, mina must take care of
> potentially several invocations to FileChannel#transferTo - as all bytes
> might not be transfered in one go.
> 2) Allow the user to schedule their own channel commands. For example, a
> "write command" scheduled by the user would be invoked by mina when the write
> queue was free.
> Im not sure that option 2 is really needed - and could be quite complex, so
> my preference is (1).
> If we can get agreement on approach, I'll start on a patch.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.