forked from netty/netty
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move generic unix classes/interfaces out of epoll package
Motivation: As we plan to have other native transports soon (like a kqueue transport) we should move unix classes/interfaces out of the epoll package so we introduce other implementations without breaking stuff before the next stable release. Modifications: Create a new io.netty.channel.unix package and move stuff over there. Result: Possible to introduce other native impls beside epoll.
- Loading branch information
1 parent
4b83eee
commit 6e508e6
Showing
23 changed files
with
282 additions
and
75 deletions.
There are no files selected for viewing
26 changes: 26 additions & 0 deletions
26
transport-native-epoll/src/main/c/io_netty_channel_unix_FileDescriptor.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
/* | ||
* Copyright 2015 The Netty Project | ||
* | ||
* The Netty Project licenses this file to you under the Apache License, | ||
* version 2.0 (the "License"); you may not use this file except in compliance | ||
* with the License. You may obtain a copy of the License at: | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
* License for the specific language governing permissions and limitations | ||
* under the License. | ||
*/ | ||
#include <jni.h> | ||
#include <unistd.h> | ||
#include <errno.h> | ||
#include "io_netty_channel_unix_FileDescriptor.h" | ||
|
||
JNIEXPORT int JNICALL Java_io_netty_channel_unix_FileDescriptor_close(JNIEnv* env, jclass clazz, jint fd) { | ||
if (close(fd) < 0) { | ||
return -errno; | ||
} | ||
return 0; | ||
} |
18 changes: 18 additions & 0 deletions
18
transport-native-epoll/src/main/c/io_netty_channel_unix_FileDescriptor.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
/* | ||
* Copyright 2014 The Netty Project | ||
* | ||
* The Netty Project licenses this file to you under the Apache License, | ||
* version 2.0 (the "License"); you may not use this file except in compliance | ||
* with the License. You may obtain a copy of the License at: | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
* License for the specific language governing permissions and limitations | ||
* under the License. | ||
*/ | ||
#include <jni.h> | ||
|
||
int Java_io_netty_channel_unix_FileDescriptor_close(JNIEnv* env, jclass clazz, jint fd); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
31 changes: 31 additions & 0 deletions
31
transport-native-epoll/src/main/java/io/netty/channel/unix/DomainSocketChannel.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
/* | ||
* Copyright 2015 The Netty Project | ||
* | ||
* The Netty Project licenses this file to you under the Apache License, | ||
* version 2.0 (the "License"); you may not use this file except in compliance | ||
* with the License. You may obtain a copy of the License at: | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
* License for the specific language governing permissions and limitations | ||
* under the License. | ||
*/ | ||
package io.netty.channel.unix; | ||
|
||
/** | ||
* A {@link UnixChannel} that supports communication via | ||
* <a href="http://en.wikipedia.org/wiki/Unix_domain_socket">Unix Domain Socket</a>. | ||
*/ | ||
public interface DomainSocketChannel extends UnixChannel { | ||
@Override | ||
DomainSocketAddress remoteAddress(); | ||
|
||
@Override | ||
DomainSocketAddress localAddress(); | ||
|
||
@Override | ||
DomainSocketChannelConfig config(); | ||
} |
73 changes: 73 additions & 0 deletions
73
transport-native-epoll/src/main/java/io/netty/channel/unix/DomainSocketChannelConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
/* | ||
* Copyright 2015 The Netty Project | ||
* | ||
* The Netty Project licenses this file to you under the Apache License, | ||
* version 2.0 (the "License"); you may not use this file except in compliance | ||
* with the License. You may obtain a copy of the License at: | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
* License for the specific language governing permissions and limitations | ||
* under the License. | ||
*/ | ||
package io.netty.channel.unix; | ||
|
||
import io.netty.buffer.ByteBufAllocator; | ||
import io.netty.channel.ChannelConfig; | ||
import io.netty.channel.MessageSizeEstimator; | ||
import io.netty.channel.RecvByteBufAllocator; | ||
|
||
/** | ||
* Special {@link ChannelConfig} for {@link DomainSocketChannel}s. | ||
*/ | ||
public interface DomainSocketChannelConfig extends ChannelConfig { | ||
|
||
@Override | ||
DomainSocketChannelConfig setMaxMessagesPerRead(int maxMessagesPerRead); | ||
|
||
@Override | ||
DomainSocketChannelConfig setConnectTimeoutMillis(int connectTimeoutMillis); | ||
|
||
@Override | ||
DomainSocketChannelConfig setWriteSpinCount(int writeSpinCount); | ||
|
||
@Override | ||
DomainSocketChannelConfig setAllocator(ByteBufAllocator allocator); | ||
|
||
@Override | ||
DomainSocketChannelConfig setRecvByteBufAllocator(RecvByteBufAllocator allocator); | ||
|
||
@Override | ||
DomainSocketChannelConfig setAutoRead(boolean autoRead); | ||
|
||
@Override | ||
DomainSocketChannelConfig setAutoClose(boolean autoClose); | ||
|
||
@Override | ||
DomainSocketChannelConfig setWriteBufferHighWaterMark(int writeBufferHighWaterMark); | ||
|
||
@Override | ||
DomainSocketChannelConfig setWriteBufferLowWaterMark(int writeBufferLowWaterMark); | ||
|
||
@Override | ||
DomainSocketChannelConfig setMessageSizeEstimator(MessageSizeEstimator estimator); | ||
|
||
/** | ||
* Change the {@link DomainSocketReadMode} for the channel. The default is | ||
* {@link DomainSocketReadMode#BYTES} which means bytes will be read from the | ||
* {@link io.netty.channel.Channel} and passed through the pipeline. If | ||
* {@link DomainSocketReadMode#FILE_DESCRIPTORS} is used | ||
* {@link FileDescriptor}s will be passed through the {@link io.netty.channel.ChannelPipeline}. | ||
* | ||
* This setting can be modified on the fly if needed. | ||
*/ | ||
DomainSocketChannelConfig setReadMode(DomainSocketReadMode mode); | ||
|
||
/** | ||
* Return the {@link DomainSocketReadMode} for the channel. | ||
*/ | ||
DomainSocketReadMode getReadMode(); | ||
} |
Oops, something went wrong.