public abstract class Sncp
extends java.lang.Object
详情见: http://www.redkale.org
| 限定符和类型 | 方法和说明 |
|---|---|
static <T extends Service> |
createLocalService(java.lang.String name,
java.util.function.Consumer<java.lang.Runnable> executor,
ResourceFactory resourceFactory,
java.lang.Class<T> serviceClass,
java.net.InetSocketAddress clientAddress,
Transport sameGroupTransport,
java.util.Collection<Transport> diffGroupTransports)
创建本地模式Service实例
|
protected static <T extends Service> |
createLocalServiceClass(java.lang.String name,
java.lang.Class<T> serviceClass)
public class TestService implements Service{
public String findSomeThing(){
return "hello";
}
@MultiRun(selfrun = false)
public void createSomeThing(TestBean bean){
//do something
}
@MultiRun
public String updateSomeThing(String id){
return "hello" + id;
}
}
@Resource(name = "")
@SncpDyn(remote = false)
@ResourceType({TestService.class})
public final class _DynLocalTestService extends TestService{
@Resource
private BsonConvert _convert;
private Transport _sameGroupTransport;
private Transport[] _diffGroupTransports;
private SncpClient _client;
private String _selfstring;
@Override
public String toString() {
return _selfstring == null ?
|
static <T extends Service> |
createRemoteService(java.lang.String name,
java.util.function.Consumer<java.lang.Runnable> executor,
java.lang.Class<T> serviceClass,
java.net.InetSocketAddress clientAddress,
Transport transport)
@Resource(name = "")
@SncpDyn(remote = true)
@ResourceType({TestService.class})
public final class _DynRemoteTestService extends TestService{
@Resource
private BsonConvert _convert;
private Transport _transport;
private SncpClient _client;
private String _selfstring;
@Override
public String toString() {
return _selfstring == null ?
|
static DLong |
hash(java.lang.Class clazz) |
static DLong |
hash(java.lang.reflect.Method method) |
static DLong |
hash(java.lang.String name)
对类名或者name字符串进行hash。
|
static DLong |
hashClass(java.lang.String clazzName) |
static boolean |
isRemote(Service service) |
static long |
nodeid(java.net.InetSocketAddress ip) |
public static long nodeid(java.net.InetSocketAddress ip)
public static DLong hash(java.lang.Class clazz)
public static DLong hashClass(java.lang.String clazzName)
public static DLong hash(java.lang.reflect.Method method)
public static DLong hash(java.lang.String name)
name - Stringpublic static boolean isRemote(Service service)
protected static <T extends Service> java.lang.Class<? extends T> createLocalServiceClass(java.lang.String name, java.lang.Class<T> serviceClass)
public class TestService implements Service{
public String findSomeThing(){
return "hello";
}
@MultiRun(selfrun = false)
public void createSomeThing(TestBean bean){
//do something
}
@MultiRun
public String updateSomeThing(String id){
return "hello" + id;
}
}
@Resource(name = "")
@SncpDyn(remote = false)
@ResourceType({TestService.class})
public final class _DynLocalTestService extends TestService{
@Resource
private BsonConvert _convert;
private Transport _sameGroupTransport;
private Transport[] _diffGroupTransports;
private SncpClient _client;
private String _selfstring;
@Override
public String toString() {
return _selfstring == null ? super.toString() : _selfstring;
}
@Override
public void createSomeThing(TestBean bean){
this._createSomeThing(false, true, true, bean);
}
@SncpDyn(remote = false, index = 0)
public void _createSomeThing(boolean selfrunnable, boolean samerunnable, boolean diffrunnable, TestBean bean){
if(selfrunnable) super.createSomeThing(bean);
if (_client== null) return;
if (samerunnable) _client.remoteSameGroup(_convert, _sameGroupTransport, 0, true, false, false, bean);
if (diffrunnable) _client.remoteDiffGroup(_convert, _diffGroupTransports, 0, true, true, false, bean);
}
@Override
public String updateSomeThing(String id){
return this._updateSomeThing(true, true, true, id);
}
@SncpDyn(remote = false, index = 1)
public String _updateSomeThing(boolean selfrunnable, boolean samerunnable, boolean diffrunnable, String id){
String rs = super.updateSomeThing(id);
if (_client== null) return;
if (samerunnable) _client.remoteSameGroup(_convert, _sameGroupTransport, 1, true, false, false, id);
if (diffrunnable) _client.remoteDiffGroup(_convert, _diffGroupTransports, 1, true, true, false, id);
return rs;
}
}
创建Service的本地模式ClassT - Service子类name - 资源名serviceClass - Service类public static <T extends Service> T createLocalService(java.lang.String name, java.util.function.Consumer<java.lang.Runnable> executor, ResourceFactory resourceFactory, java.lang.Class<T> serviceClass, java.net.InetSocketAddress clientAddress, Transport sameGroupTransport, java.util.Collection<Transport> diffGroupTransports)
T - Service泛型name - 资源名executor - 线程池serviceClass - Service类clientAddress - 本地IP地址sameGroupTransport - 同组的通信组件diffGroupTransports - 异组的通信组件列表public static <T extends Service> T createRemoteService(java.lang.String name, java.util.function.Consumer<java.lang.Runnable> executor, java.lang.Class<T> serviceClass, java.net.InetSocketAddress clientAddress, Transport transport)
@Resource(name = "")
@SncpDyn(remote = true)
@ResourceType({TestService.class})
public final class _DynRemoteTestService extends TestService{
@Resource
private BsonConvert _convert;
private Transport _transport;
private SncpClient _client;
private String _selfstring;
@Override
public String toString() {
return _selfstring == null ? super.toString() : _selfstring;
}
@SncpDyn(remote = false, index = 0)
public void _createSomeThing(boolean selfrunnable, boolean samerunnable, boolean diffrunnable, TestBean bean){
_client.remote(_convert, _transport, 0, selfrunnable, samerunnable, diffrunnable, bean);
}
@SncpDyn(remote = false, index = 1)
public String _updateSomeThing(boolean selfrunnable, boolean samerunnable, boolean diffrunnable, String id){
return _client.remote(_convert, _transport, 1, selfrunnable, samerunnable, diffrunnable, id);
}
@Override
public void createSomeThing(TestBean bean){
_client.remote(_convert, _transport, 2, bean);
}
@Override
public String findSomeThing(){
return _client.remote(_convert, _transport, 3);
}
@Override
public String updateSomeThing(String id){
return _client.remote(_convert, _transport, 4, id);
}
}
创建远程模式的Service实例T - Service泛型name - 资源名executor - 线程池serviceClass - Service类clientAddress - 本地IP地址transport - 通信组件