
net.gdface.facelog.client.IFaceLogClientAsync Maven / Gradle / Ivy
The newest version!
package net.gdface.facelog.client;
import java.net.URI;
import java.net.URL;
import java.util.List;
import java.util.Map;
import com.gitee.l0km.xthrift.thrift.ClientFactory;
import com.google.common.base.Function;
import com.google.common.base.Supplier;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import gu.dtalk.MenuItem;
import gu.dtalk.cmd.CmdManager;
import gu.dtalk.cmd.TaskManager;
import gu.dtalk.engine.BaseDispatcher;
import gu.dtalk.engine.TaskDispatcher;
import gu.simplemq.IMessageAdapter;
import gu.simplemq.IMessageQueueFactory;
import net.gdface.facelog.MQParam;
import net.gdface.facelog.Token;
import net.gdface.facelog.client.ClientExtendTools.ParameterSupplier;
import net.gdface.facelog.client.dtalk.DtalkEngineForFacelog;
import net.gdface.facelog.hb.DynamicChannelListener;
import net.gdface.facelog.hb.DeviceHeartbeat;
import net.gdface.facelog.thrift.IFaceLogThriftClientAsync;
public class IFaceLogClientAsync extends IFaceLogThriftClientAsync {
private final ClientExtendTools clientTools;
public IFaceLogClientAsync(ClientFactory factory) {
super(factory);
clientTools = new ClientExtendTools(this);
}
/**
* @param host RPC service host
* @param port RPC service port
*/
public IFaceLogClientAsync(String host,int port) {
this(ClientFactory.builder().setHostAndPort(host,port));
}
/**
* test if connectable for RPC service
* @return return {@code true} if connectable ,otherwise {@code false}
*/
public boolean testConnect(){
return getFactory().testConnect();
}
/**
* 如果{@code host}是本机地址则用facelog服务主机名替换
* @param host
* @return {@code host} or host in {@link #factory}
*/
public String insteadHostIfLocalhost(String host) {
return clientTools.insteadHostIfLocalhost(host);
}
/**
* 如果{@code uri}的主机名是本机地址则用facelog服务主机名替换
* @param uri
* @return {@code uri} or new URI instead with host of facelog
*/
public URI insteadHostIfLocalhost(URI uri) {
return clientTools.insteadHostIfLocalhost(uri);
}
/**
* 如果{@code url}的主机名是本机地址则用facelog服务主机名替换
* @param url
* @return {@code url} or new URI instead with host of facelog
*/
public URL insteadHostIfLocalhost(URL url) {
return clientTools.insteadHostIfLocalhost(url);
}
/**
* @param deviceId
* @return Supplier instance
* @see net.gdface.facelog.client.ClientExtendTools#getDeviceGroupIdSupplier(int)
*/
public Supplier getDeviceGroupIdSupplier(int deviceId) {
return clientTools.getDeviceGroupIdSupplier(deviceId);
}
/**
* @param personId
* @return Supplier instance
* @see net.gdface.facelog.client.ClientExtendTools#getPersonGroupBelonsSupplier(int)
*/
public Supplier> getPersonGroupBelonsSupplier(int personId) {
return clientTools.getPersonGroupBelonsSupplier(personId);
}
/**
* @param token
* @return CmdManager instance
* @see net.gdface.facelog.client.ClientExtendTools#makeCmdManager(net.gdface.facelog.Token)
*/
public CmdManager makeCmdManager(Token token) {
return clientTools.makeCmdManager(token);
}
/**
* @param token
* @param cmdpath 设备(菜单)命令路径
* @param taskQueueSupplier
* @return TaskManager instance
* @see net.gdface.facelog.client.ClientExtendTools#makeTaskManager(Token, String, Supplier)
*/
public TaskManager makeTaskManager(Token token, String cmdpath, Supplier taskQueueSupplier) {
return clientTools.makeTaskManager(token, null, taskQueueSupplier);
}
/**
* @param token
* @return BaseDispatcher instance
* @see net.gdface.facelog.client.ClientExtendTools#makeCmdDispatcher(net.gdface.facelog.Token)
*/
public BaseDispatcher makeCmdDispatcher(Token token) {
return clientTools.makeCmdDispatcher(token);
}
/**
* @param token
* @param taskQueueSupplier
* @return TaskDispatcher instance
* @see net.gdface.facelog.client.ClientExtendTools#makeTaskDispatcher(Token, Supplier)
*/
protected TaskDispatcher makeTaskDispatcher(Token token, Supplier taskQueueSupplier) {
return clientTools.makeTaskDispatcher(token, taskQueueSupplier);
}
/**
* @param duration
* @param token
* @return Supplier instance
* @see net.gdface.facelog.client.ClientExtendTools#getAckChannelSupplier(int, net.gdface.facelog.Token)
*/
public Supplier getAckChannelSupplier(int duration, Token token) {
return clientTools.getAckChannelSupplier(duration,token);
}
/**
* @param token
* @return Supplier instance
* @see net.gdface.facelog.client.ClientExtendTools#getAckChannelSupplier(net.gdface.facelog.Token)
*/
public Supplier getAckChannelSupplier(Token token) {
return clientTools.getAckChannelSupplier(token);
}
/**
* @param token
* @return Supplier instance
* @see net.gdface.facelog.client.ClientExtendTools#getCmdSnSupplier(net.gdface.facelog.Token)
*/
public Supplier getCmdSnSupplier(Token token) {
return clientTools.getCmdSnSupplier(token);
}
/**
* @param deviceToken
* @param rootMenu
* @return DtalkEngineForFacelog instance
* @see net.gdface.facelog.client.ClientExtendTools#initDtalkEngine(net.gdface.facelog.Token, gu.dtalk.MenuItem)
*/
public DtalkEngineForFacelog initDtalkEngine(Token deviceToken, MenuItem rootMenu) {
return clientTools.initDtalkEngine(deviceToken, rootMenu);
}
/**
* @param token
* @see net.gdface.facelog.client.ClientExtendTools#initMQDefaultFactory(net.gdface.facelog.Token)
*/
public void initMQDefaultFactory(Token token) {
clientTools.initMQDefaultFactory(token);
}
/**
* 转换参数中的主机名
* @see net.gdface.facelog.thrift.IFaceLogThriftClientAsync#getRedisParameters(net.gdface.facelog.Token)
* @see ClientExtendTools#insteadHostOfMQParamIfLocalhost(Map)
*/
@Override
public ListenableFuture
© 2015 - 2025 Weber Informatics LLC | Privacy Policy