[ 
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.

Reply via email to