| java.lang.Object org.apache.jk.core.JkHandler org.apache.jk.common.JniHandler org.apache.jk.common.ChannelJni
ChannelJni | public class ChannelJni extends JniHandler implements JkChannel(Code) | | Pass messages using jni
author: Costin Manolache |
receivedNote | int receivedNote(Code) | | |
ChannelJni | public ChannelJni()(Code) | | |
invoke | public int invoke(Msg msg, MsgContext ep) throws IOException(Code) | | Receive a packet from the C side. This is called from the C
code using invocation, but only for the first packet - to avoid
recursivity and thread problems.
This may look strange, but seems the best solution for the
problem ( the problem is that we don't have 'continuation' ).
sendPacket will move the thread execution on the C side, and
return when another packet is available. For packets that
are one way it'll return after it is processed too ( having
2 threads is far more expensive ).
Again, the goal is to be efficient and behave like all other
Channels ( so the rest of the code can be shared ). Playing with
java objects on C is extremely difficult to optimize and do
right ( IMHO ), so we'll try to keep it simple - byte[] passing,
the conversion done in java ( after we know the encoding and
if anyone asks for it - same lazy behavior as in 3.3 ).
|
send | public int send(Msg msg, MsgContext ep) throws IOException(Code) | | Send the packet. XXX This will modify msg !!!
We could use 2 packets, or sendAndReceive().
|
|
|