001// ______________________________________________________
002// Generated by codegen - https://gitee.com/l0km/codegen 
003// template: thrift/client_thrifty/perservice/client.async.decorator.class.vm
004// ______________________________________________________
005package net.gdface.facelog.thrift;
006import java.util.List;
007import java.util.Map;
008import net.gdface.facelog.IFaceLog;
009import net.gdface.facelog.LockWakeupResponse;
010import net.gdface.facelog.MQParam;
011import net.gdface.facelog.TmpPwdTargetType;
012import net.gdface.facelog.TmpwdTargetInfo;
013import net.gdface.facelog.Token;
014import net.gdface.facelog.TopGroupInfo;
015import net.gdface.facelog.db.DeviceBean;
016import net.gdface.facelog.db.DeviceGroupBean;
017import net.gdface.facelog.db.ErrorLogBean;
018import net.gdface.facelog.db.FaceBean;
019import net.gdface.facelog.db.FeatureBean;
020import net.gdface.facelog.db.ImageBean;
021import net.gdface.facelog.db.LogBean;
022import net.gdface.facelog.db.LogLightBean;
023import net.gdface.facelog.db.PermitBean;
024import net.gdface.facelog.db.PersonBean;
025import net.gdface.facelog.db.PersonGroupBean;
026import net.gdface.thrift.TypeTransformer;
027
028import java.io.IOException;
029import com.google.common.base.Function;
030import com.google.common.net.HostAndPort;
031import com.google.common.util.concurrent.FutureCallback;
032import com.google.common.util.concurrent.ListenableFuture;
033import com.google.common.util.concurrent.SettableFuture;
034import com.microsoft.thrifty.ThriftException;
035import com.microsoft.thrifty.service.AsyncClientBase;
036import com.microsoft.thrifty.service.ServiceMethodCallback;
037
038import net.gdface.thrift.ClientFactory;
039import static com.google.common.base.Preconditions.*;
040
041/**
042 * 基于thrift/swift框架生成的client端代码提供{@link IFaceLog}接口的异步RPC实现(线程安全)<br>
043 * 转发所有{@link IFaceLog}接口方法到{@link net.gdface.facelog.client.thrift.IFaceLogClient}实例<br>
044 * 所有服务端抛出的{@link RuntimeException}异常被封装到{@link ServiceRuntimeException}中抛出<br>
045 * Example:<br>
046 * <pre>
047 *        IFaceLogThriftClientAsync thriftInstance = ClientFactory
048 *            .builder()
049 *            .setHostAndPort("127.0.0.1",26413)
050 *            .build(IFaceLogThriftClientAsync.class);
051 * </pre>
052 * 计算机生成代码(generated by automated tools ThriftServiceDecoratorGenerator @author guyadong)<br>
053 * @author guyadong
054 *
055 */
056public class IFaceLogThriftClientAsync {
057    private final ClientFactory factory;
058
059    public ClientFactory getFactory() {
060        return factory;
061    }
062    public IFaceLogThriftClientAsync(ClientFactory factory) {
063        super();
064        this.factory = checkNotNull(factory,"factory is null");
065    }
066    /**
067     * @param host RPC service host
068     * @param port RPC service port 
069     */
070    public IFaceLogThriftClientAsync(String host,int port) {
071        this(ClientFactory.builder().setHostAndPort(host,port));
072    }
073    /**
074     * @param hostAndPort RPC service host and port 
075     */
076    public IFaceLogThriftClientAsync(HostAndPort hostAndPort) {
077        this(ClientFactory.builder().setHostAndPort(hostAndPort));
078    }
079    /**
080     * test if connectable for RPC service
081     * @return return {@code true} if connectable ,otherwise {@code false}
082     */
083    public boolean testConnect(){
084        return factory.testConnect();
085    }
086    private class MethodCallback<L,R> implements ServiceMethodCallback<R>{
087            private final AsyncClientBase.Listener closeListener = new AsyncClientBase.Listener(){
088                @Override
089                public void onTransportClosed() {
090                }
091        
092                @Override
093                public void onError(Throwable error) {
094                    MethodCallback.this.onError(error);
095                }
096            };
097        final net.gdface.facelog.client.thrift.IFaceLogClient service = factory.applyInstance(net.gdface.facelog.client.thrift.IFaceLogClient.class,closeListener);
098        final SettableFuture<L> feature = SettableFuture.create();
099        final Function<R,L> transformer;
100
101        MethodCallback(Function<R, L> transformer) {
102            this.transformer = transformer;
103        }
104
105        @Override
106        public void onSuccess(R result) {
107            feature.set(transformer.apply(result));            
108            try {
109                service.close();
110            } catch (IOException e) {
111            }
112        }
113
114        @Override 
115        public void onError(Throwable error) {            
116            if(error instanceof ThriftException ){
117                if(((ThriftException)error).kind == ThriftException.Kind.MISSING_RESULT  ){
118                    this.onSuccess(null);
119                }
120            }
121            feature.setException(error);
122            try {
123                service.close();
124            } catch (IOException e) {
125            }
126        }
127    }
128    @Override
129    public String toString() {
130        StringBuilder builder = new StringBuilder();
131        builder.append("IFaceLogThriftClientAsync [factory=");
132        builder.append(factory);
133        builder.append(",interface=");
134        builder.append(IFaceLog.class.getName());
135        builder.append("]");
136        return builder.toString();
137    }
138    /**
139     * 默认的{@link FutureCallback}实现
140     * @author guyadong
141     *
142     * @param <V>
143     */
144    public static class DefaultCallback<V> implements FutureCallback<V>{
145        @Override
146        public void onSuccess(V result) {
147            // DO NOTHING
148        }
149        @Override
150        public void onFailure(Throwable t) {
151            try{
152                throw t;
153            }
154            catch(net.gdface.facelog.client.thrift.DuplicateRecordException e){
155                onDuplicateRecordException(e);
156            }
157            catch(net.gdface.facelog.client.thrift.ServiceSecurityException e){
158                onServiceSecurityException(e);
159            }
160            catch(net.gdface.facelog.client.thrift.ServiceRuntimeException e){
161                onServiceRuntimeException(e);
162            }
163            catch(Throwable e){
164                onThrowable(e);
165            }
166        }
167        protected void onDuplicateRecordException(net.gdface.facelog.client.thrift.DuplicateRecordException e){
168            System.out.println(e.serviceStackTraceMessage);
169        }
170        protected void onServiceSecurityException(net.gdface.facelog.client.thrift.ServiceSecurityException e){
171            System.out.println(e.serviceStackTraceMessage);
172        }
173        protected void onServiceRuntimeException(net.gdface.facelog.client.thrift.ServiceRuntimeException e){
174            System.out.println(e.serviceStackTraceMessage);
175        }
176        protected void onThrowable(Throwable e){
177            e.printStackTrace();
178        }
179    }
180    /**
181     * see also {@link net.gdface.facelog.IFaceLog#addErrorLog(net.gdface.facelog.db.ErrorLogBean,net.gdface.facelog.Token)}
182     */
183    public ListenableFuture<Void> addErrorLog(ErrorLogBean errorLogBean,
184        Token token){
185        MethodCallback<Void,Void> nativeCallback = 
186            new MethodCallback<Void,Void>(
187                new Function<Void,Void>() {
188                        @Override
189                        public Void apply(Void input) {
190                            return TypeTransformer.getInstance().to(
191                    input,
192                    Void.class,
193                    Void.class);
194                }});
195        nativeCallback.service.addErrorLog(
196                TypeTransformer.getInstance().to(
197                    errorLogBean,
198                    ErrorLogBean.class,
199                    net.gdface.facelog.client.thrift.ErrorLogBean.class),
200            TypeTransformer.getInstance().to(
201                    token,
202                    Token.class,
203                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
204        return nativeCallback.feature;
205    }
206    public void addErrorLog(ErrorLogBean errorLogBean,
207        Token token,
208        FutureCallback<Void>callback){
209        factory.addCallback(addErrorLog(errorLogBean,token), callback);
210    }
211    /**
212     * see also {@link net.gdface.facelog.IFaceLog#addFeature(byte[],java.lang.String,java.lang.Integer,boolean,byte[],net.gdface.facelog.db.FaceBean,java.lang.String,net.gdface.facelog.Token)}
213     */
214    public ListenableFuture<FeatureBean> addFeature(byte[] feature,
215        String featureVersion,
216        Integer personId,
217        boolean asIdPhotoIfAbsent,
218        byte[] featurePhoto,
219        FaceBean faceBean,
220        String removed,
221        Token token){
222        MethodCallback<FeatureBean,net.gdface.facelog.client.thrift.FeatureBean> nativeCallback = 
223            new MethodCallback<FeatureBean,net.gdface.facelog.client.thrift.FeatureBean>(
224                new Function<net.gdface.facelog.client.thrift.FeatureBean,FeatureBean>() {
225                        @Override
226                        public FeatureBean apply(net.gdface.facelog.client.thrift.FeatureBean input) {
227                            return TypeTransformer.getInstance().to(
228                    input,
229                    net.gdface.facelog.client.thrift.FeatureBean.class,
230                    FeatureBean.class);
231                }});
232        nativeCallback.service.addFeatureWithImage(
233                TypeTransformer.getInstance().to(
234                    feature,
235                    byte[].class,
236                    okio.ByteString.class),
237            featureVersion,
238            personId,
239            asIdPhotoIfAbsent,
240            TypeTransformer.getInstance().to(
241                    featurePhoto,
242                    byte[].class,
243                    okio.ByteString.class),
244            TypeTransformer.getInstance().to(
245                    faceBean,
246                    FaceBean.class,
247                    net.gdface.facelog.client.thrift.FaceBean.class),
248            removed,
249            TypeTransformer.getInstance().to(
250                    token,
251                    Token.class,
252                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
253        return nativeCallback.feature;
254    }
255    public void addFeature(byte[] feature,
256        String featureVersion,
257        Integer personId,
258        boolean asIdPhotoIfAbsent,
259        byte[] featurePhoto,
260        FaceBean faceBean,
261        String removed,
262        Token token,
263        FutureCallback<FeatureBean>callback){
264        factory.addCallback(addFeature(feature,featureVersion,personId,asIdPhotoIfAbsent,featurePhoto,faceBean,removed,token), callback);
265    }
266    /**
267     * see also {@link net.gdface.facelog.IFaceLog#addFeature(byte[],java.lang.String,java.lang.Integer,java.util.List,java.lang.String,net.gdface.facelog.Token)}
268     */
269    public ListenableFuture<FeatureBean> addFeature(byte[] feature,
270        String featureVersion,
271        Integer personId,
272        List<FaceBean> faecBeans,
273        String removed,
274        Token token){
275        MethodCallback<FeatureBean,net.gdface.facelog.client.thrift.FeatureBean> nativeCallback = 
276            new MethodCallback<FeatureBean,net.gdface.facelog.client.thrift.FeatureBean>(
277                new Function<net.gdface.facelog.client.thrift.FeatureBean,FeatureBean>() {
278                        @Override
279                        public FeatureBean apply(net.gdface.facelog.client.thrift.FeatureBean input) {
280                            return TypeTransformer.getInstance().to(
281                    input,
282                    net.gdface.facelog.client.thrift.FeatureBean.class,
283                    FeatureBean.class);
284                }});
285        nativeCallback.service.addFeature(
286                TypeTransformer.getInstance().to(
287                    feature,
288                    byte[].class,
289                    okio.ByteString.class),
290            featureVersion,
291            personId,
292            TypeTransformer.getInstance().to(
293                    faecBeans,
294                    FaceBean.class,
295                    net.gdface.facelog.client.thrift.FaceBean.class),
296            removed,
297            TypeTransformer.getInstance().to(
298                    token,
299                    Token.class,
300                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
301        return nativeCallback.feature;
302    }
303    public void addFeature(byte[] feature,
304        String featureVersion,
305        Integer personId,
306        List<FaceBean> faecBeans,
307        String removed,
308        Token token,
309        FutureCallback<FeatureBean>callback){
310        factory.addCallback(addFeature(feature,featureVersion,personId,faecBeans,removed,token), callback);
311    }
312    /**
313     * see also {@link net.gdface.facelog.IFaceLog#addFeature(byte[],java.lang.String,java.lang.Integer,java.util.List,java.util.List,java.lang.String,net.gdface.facelog.Token)}
314     */
315    public ListenableFuture<FeatureBean> addFeature(byte[] feature,
316        String featureVersion,
317        Integer personId,
318        List<byte[]> photos,
319        List<FaceBean> faces,
320        String removed,
321        Token token){
322        MethodCallback<FeatureBean,net.gdface.facelog.client.thrift.FeatureBean> nativeCallback = 
323            new MethodCallback<FeatureBean,net.gdface.facelog.client.thrift.FeatureBean>(
324                new Function<net.gdface.facelog.client.thrift.FeatureBean,FeatureBean>() {
325                        @Override
326                        public FeatureBean apply(net.gdface.facelog.client.thrift.FeatureBean input) {
327                            return TypeTransformer.getInstance().to(
328                    input,
329                    net.gdface.facelog.client.thrift.FeatureBean.class,
330                    FeatureBean.class);
331                }});
332        nativeCallback.service.addFeatureMulti(
333                TypeTransformer.getInstance().to(
334                    feature,
335                    byte[].class,
336                    okio.ByteString.class),
337            featureVersion,
338            personId,
339            TypeTransformer.getInstance().to(
340                    photos,
341                    byte[].class,
342                    okio.ByteString.class),
343            TypeTransformer.getInstance().to(
344                    faces,
345                    FaceBean.class,
346                    net.gdface.facelog.client.thrift.FaceBean.class),
347            removed,
348            TypeTransformer.getInstance().to(
349                    token,
350                    Token.class,
351                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
352        return nativeCallback.feature;
353    }
354    public void addFeature(byte[] feature,
355        String featureVersion,
356        Integer personId,
357        List<byte[]> photos,
358        List<FaceBean> faces,
359        String removed,
360        Token token,
361        FutureCallback<FeatureBean>callback){
362        factory.addCallback(addFeature(feature,featureVersion,personId,photos,faces,removed,token), callback);
363    }
364    /**
365     * see also {@link net.gdface.facelog.IFaceLog#addImage(byte[],java.lang.Integer,net.gdface.facelog.db.FaceBean,java.lang.Integer,net.gdface.facelog.Token)}
366     */
367    public ListenableFuture<ImageBean> addImage(byte[] imageData,
368        Integer deviceId,
369        FaceBean faceBean,
370        Integer personId,
371        Token token){
372        MethodCallback<ImageBean,net.gdface.facelog.client.thrift.ImageBean> nativeCallback = 
373            new MethodCallback<ImageBean,net.gdface.facelog.client.thrift.ImageBean>(
374                new Function<net.gdface.facelog.client.thrift.ImageBean,ImageBean>() {
375                        @Override
376                        public ImageBean apply(net.gdface.facelog.client.thrift.ImageBean input) {
377                            return TypeTransformer.getInstance().to(
378                    input,
379                    net.gdface.facelog.client.thrift.ImageBean.class,
380                    ImageBean.class);
381                }});
382        nativeCallback.service.addImage(
383                TypeTransformer.getInstance().to(
384                    imageData,
385                    byte[].class,
386                    okio.ByteString.class),
387            deviceId,
388            TypeTransformer.getInstance().to(
389                    faceBean,
390                    FaceBean.class,
391                    net.gdface.facelog.client.thrift.FaceBean.class),
392            personId,
393            TypeTransformer.getInstance().to(
394                    token,
395                    Token.class,
396                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
397        return nativeCallback.feature;
398    }
399    public void addImage(byte[] imageData,
400        Integer deviceId,
401        FaceBean faceBean,
402        Integer personId,
403        Token token,
404        FutureCallback<ImageBean>callback){
405        factory.addCallback(addImage(imageData,deviceId,faceBean,personId,token), callback);
406    }
407    /**
408     * see also {@link net.gdface.facelog.IFaceLog#addLog(net.gdface.facelog.db.LogBean,byte[],net.gdface.facelog.Token)}
409     */
410    public ListenableFuture<Void> addLog(LogBean logBean,
411        byte[] faceImage,
412        Token token){
413        MethodCallback<Void,Void> nativeCallback = 
414            new MethodCallback<Void,Void>(
415                new Function<Void,Void>() {
416                        @Override
417                        public Void apply(Void input) {
418                            return TypeTransformer.getInstance().to(
419                    input,
420                    Void.class,
421                    Void.class);
422                }});
423        nativeCallback.service.addLogWithFaceImage(
424                TypeTransformer.getInstance().to(
425                    logBean,
426                    LogBean.class,
427                    net.gdface.facelog.client.thrift.LogBean.class),
428            TypeTransformer.getInstance().to(
429                    faceImage,
430                    byte[].class,
431                    okio.ByteString.class),
432            TypeTransformer.getInstance().to(
433                    token,
434                    Token.class,
435                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
436        return nativeCallback.feature;
437    }
438    public void addLog(LogBean logBean,
439        byte[] faceImage,
440        Token token,
441        FutureCallback<Void>callback){
442        factory.addCallback(addLog(logBean,faceImage,token), callback);
443    }
444    /**
445     * see also {@link net.gdface.facelog.IFaceLog#addLog(net.gdface.facelog.db.LogBean,net.gdface.facelog.Token)}
446     */
447    public ListenableFuture<Void> addLog(LogBean logBean,
448        Token token){
449        MethodCallback<Void,Void> nativeCallback = 
450            new MethodCallback<Void,Void>(
451                new Function<Void,Void>() {
452                        @Override
453                        public Void apply(Void input) {
454                            return TypeTransformer.getInstance().to(
455                    input,
456                    Void.class,
457                    Void.class);
458                }});
459        nativeCallback.service.addLog(
460                TypeTransformer.getInstance().to(
461                    logBean,
462                    LogBean.class,
463                    net.gdface.facelog.client.thrift.LogBean.class),
464            TypeTransformer.getInstance().to(
465                    token,
466                    Token.class,
467                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
468        return nativeCallback.feature;
469    }
470    public void addLog(LogBean logBean,
471        Token token,
472        FutureCallback<Void>callback){
473        factory.addCallback(addLog(logBean,token), callback);
474    }
475    /**
476     * see also {@link net.gdface.facelog.IFaceLog#addLog(net.gdface.facelog.db.LogBean,net.gdface.facelog.db.FaceBean,byte[],net.gdface.facelog.Token)}
477     */
478    public ListenableFuture<Void> addLog(LogBean logBean,
479        FaceBean faceBean,
480        byte[] featureImage,
481        Token token){
482        MethodCallback<Void,Void> nativeCallback = 
483            new MethodCallback<Void,Void>(
484                new Function<Void,Void>() {
485                        @Override
486                        public Void apply(Void input) {
487                            return TypeTransformer.getInstance().to(
488                    input,
489                    Void.class,
490                    Void.class);
491                }});
492        nativeCallback.service.addLogFull(
493                TypeTransformer.getInstance().to(
494                    logBean,
495                    LogBean.class,
496                    net.gdface.facelog.client.thrift.LogBean.class),
497            TypeTransformer.getInstance().to(
498                    faceBean,
499                    FaceBean.class,
500                    net.gdface.facelog.client.thrift.FaceBean.class),
501            TypeTransformer.getInstance().to(
502                    featureImage,
503                    byte[].class,
504                    okio.ByteString.class),
505            TypeTransformer.getInstance().to(
506                    token,
507                    Token.class,
508                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
509        return nativeCallback.feature;
510    }
511    public void addLog(LogBean logBean,
512        FaceBean faceBean,
513        byte[] featureImage,
514        Token token,
515        FutureCallback<Void>callback){
516        factory.addCallback(addLog(logBean,faceBean,featureImage,token), callback);
517    }
518    /**
519     * see also {@link net.gdface.facelog.IFaceLog#addLogs(java.util.List,java.util.List,java.util.List,net.gdface.facelog.Token)}
520     */
521    public ListenableFuture<Void> addLogs(List<LogBean> logBeans,
522        List<FaceBean> faceBeans,
523        List<byte[]> featureImages,
524        Token token){
525        MethodCallback<Void,Void> nativeCallback = 
526            new MethodCallback<Void,Void>(
527                new Function<Void,Void>() {
528                        @Override
529                        public Void apply(Void input) {
530                            return TypeTransformer.getInstance().to(
531                    input,
532                    Void.class,
533                    Void.class);
534                }});
535        nativeCallback.service.addLogsFull(
536                TypeTransformer.getInstance().to(
537                    logBeans,
538                    LogBean.class,
539                    net.gdface.facelog.client.thrift.LogBean.class),
540            TypeTransformer.getInstance().to(
541                    faceBeans,
542                    FaceBean.class,
543                    net.gdface.facelog.client.thrift.FaceBean.class),
544            TypeTransformer.getInstance().to(
545                    featureImages,
546                    byte[].class,
547                    okio.ByteString.class),
548            TypeTransformer.getInstance().to(
549                    token,
550                    Token.class,
551                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
552        return nativeCallback.feature;
553    }
554    public void addLogs(List<LogBean> logBeans,
555        List<FaceBean> faceBeans,
556        List<byte[]> featureImages,
557        Token token,
558        FutureCallback<Void>callback){
559        factory.addCallback(addLogs(logBeans,faceBeans,featureImages,token), callback);
560    }
561    /**
562     * see also {@link net.gdface.facelog.IFaceLog#addLogs(java.util.List,java.util.List,net.gdface.facelog.Token)}
563     */
564    public ListenableFuture<Void> addLogs(List<LogBean> logBeans,
565        List<byte[]> faceImages,
566        Token token){
567        MethodCallback<Void,Void> nativeCallback = 
568            new MethodCallback<Void,Void>(
569                new Function<Void,Void>() {
570                        @Override
571                        public Void apply(Void input) {
572                            return TypeTransformer.getInstance().to(
573                    input,
574                    Void.class,
575                    Void.class);
576                }});
577        nativeCallback.service.addLogsWithFaceImage(
578                TypeTransformer.getInstance().to(
579                    logBeans,
580                    LogBean.class,
581                    net.gdface.facelog.client.thrift.LogBean.class),
582            TypeTransformer.getInstance().to(
583                    faceImages,
584                    byte[].class,
585                    okio.ByteString.class),
586            TypeTransformer.getInstance().to(
587                    token,
588                    Token.class,
589                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
590        return nativeCallback.feature;
591    }
592    public void addLogs(List<LogBean> logBeans,
593        List<byte[]> faceImages,
594        Token token,
595        FutureCallback<Void>callback){
596        factory.addCallback(addLogs(logBeans,faceImages,token), callback);
597    }
598    /**
599     * see also {@link net.gdface.facelog.IFaceLog#addLogs(java.util.List,net.gdface.facelog.Token)}
600     */
601    public ListenableFuture<Void> addLogs(List<LogBean> beans,
602        Token token){
603        MethodCallback<Void,Void> nativeCallback = 
604            new MethodCallback<Void,Void>(
605                new Function<Void,Void>() {
606                        @Override
607                        public Void apply(Void input) {
608                            return TypeTransformer.getInstance().to(
609                    input,
610                    Void.class,
611                    Void.class);
612                }});
613        nativeCallback.service.addLogs(
614                TypeTransformer.getInstance().to(
615                    beans,
616                    LogBean.class,
617                    net.gdface.facelog.client.thrift.LogBean.class),
618            TypeTransformer.getInstance().to(
619                    token,
620                    Token.class,
621                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
622        return nativeCallback.feature;
623    }
624    public void addLogs(List<LogBean> beans,
625        Token token,
626        FutureCallback<Void>callback){
627        factory.addCallback(addLogs(beans,token), callback);
628    }
629    /**
630     * see also {@link net.gdface.facelog.IFaceLog#applyAckChannel(int,net.gdface.facelog.Token)}
631     */
632    public ListenableFuture<String> applyAckChannel(int duration,
633        Token token){
634        MethodCallback<String,String> nativeCallback = 
635            new MethodCallback<String,String>(
636                new Function<String,String>() {
637                        @Override
638                        public String apply(String input) {
639                            return input;
640                }});
641        nativeCallback.service.applyAckChannelWithDuration(
642                duration,
643            TypeTransformer.getInstance().to(
644                    token,
645                    Token.class,
646                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
647        return nativeCallback.feature;
648    }
649    public void applyAckChannel(int duration,
650        Token token,
651        FutureCallback<String>callback){
652        factory.addCallback(applyAckChannel(duration,token), callback);
653    }
654    /**
655     * see also {@link net.gdface.facelog.IFaceLog#applyAckChannel(net.gdface.facelog.Token)}
656     */
657    public ListenableFuture<String> applyAckChannel(Token token){
658        MethodCallback<String,String> nativeCallback = 
659            new MethodCallback<String,String>(
660                new Function<String,String>() {
661                        @Override
662                        public String apply(String input) {
663                            return input;
664                }});
665        nativeCallback.service.applyAckChannel(
666                TypeTransformer.getInstance().to(
667                    token,
668                    Token.class,
669                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
670        return nativeCallback.feature;
671    }
672    public void applyAckChannel(Token token,
673        FutureCallback<String>callback){
674        factory.addCallback(applyAckChannel(token), callback);
675    }
676    /**
677     * see also {@link net.gdface.facelog.IFaceLog#applyCmdSn(net.gdface.facelog.Token)}
678     */
679    public ListenableFuture<Integer> applyCmdSn(Token token){
680        MethodCallback<Integer,Integer> nativeCallback = 
681            new MethodCallback<Integer,Integer>(
682                new Function<Integer,Integer>() {
683                        @Override
684                        public Integer apply(Integer input) {
685                            return input;
686                }});
687        nativeCallback.service.applyCmdSn(
688                TypeTransformer.getInstance().to(
689                    token,
690                    Token.class,
691                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
692        return nativeCallback.feature;
693    }
694    public void applyCmdSn(Token token,
695        FutureCallback<Integer>callback){
696        factory.addCallback(applyCmdSn(token), callback);
697    }
698    /**
699     * see also {@link net.gdface.facelog.IFaceLog#applyPersonToken(int,java.lang.String,boolean)}
700     */
701    public ListenableFuture<Token> applyPersonToken(int personId,
702        String password,
703        boolean isMd5){
704        MethodCallback<Token,net.gdface.facelog.client.thrift.Token> nativeCallback = 
705            new MethodCallback<Token,net.gdface.facelog.client.thrift.Token>(
706                new Function<net.gdface.facelog.client.thrift.Token,Token>() {
707                        @Override
708                        public Token apply(net.gdface.facelog.client.thrift.Token input) {
709                            return TypeTransformer.getInstance().to(
710                    input,
711                    net.gdface.facelog.client.thrift.Token.class,
712                    Token.class);
713                }});
714        nativeCallback.service.applyPersonToken(
715                personId,
716            password,
717            isMd5,nativeCallback);
718        return nativeCallback.feature;
719    }
720    public void applyPersonToken(int personId,
721        String password,
722        boolean isMd5,
723        FutureCallback<Token>callback){
724        factory.addCallback(applyPersonToken(personId,password,isMd5), callback);
725    }
726    /**
727     * see also {@link net.gdface.facelog.IFaceLog#applyRootToken(java.lang.String,boolean)}
728     */
729    public ListenableFuture<Token> applyRootToken(String password,
730        boolean isMd5){
731        MethodCallback<Token,net.gdface.facelog.client.thrift.Token> nativeCallback = 
732            new MethodCallback<Token,net.gdface.facelog.client.thrift.Token>(
733                new Function<net.gdface.facelog.client.thrift.Token,Token>() {
734                        @Override
735                        public Token apply(net.gdface.facelog.client.thrift.Token input) {
736                            return TypeTransformer.getInstance().to(
737                    input,
738                    net.gdface.facelog.client.thrift.Token.class,
739                    Token.class);
740                }});
741        nativeCallback.service.applyRootToken(
742                password,
743            isMd5,nativeCallback);
744        return nativeCallback.feature;
745    }
746    public void applyRootToken(String password,
747        boolean isMd5,
748        FutureCallback<Token>callback){
749        factory.addCallback(applyRootToken(password,isMd5), callback);
750    }
751    /**
752     * see also {@link net.gdface.facelog.IFaceLog#applyUserToken(int,java.lang.String,boolean)}
753     */
754    public ListenableFuture<Token> applyUserToken(int userid,
755        String password,
756        boolean isMd5){
757        MethodCallback<Token,net.gdface.facelog.client.thrift.Token> nativeCallback = 
758            new MethodCallback<Token,net.gdface.facelog.client.thrift.Token>(
759                new Function<net.gdface.facelog.client.thrift.Token,Token>() {
760                        @Override
761                        public Token apply(net.gdface.facelog.client.thrift.Token input) {
762                            return TypeTransformer.getInstance().to(
763                    input,
764                    net.gdface.facelog.client.thrift.Token.class,
765                    Token.class);
766                }});
767        nativeCallback.service.applyUserToken(
768                userid,
769            password,
770            isMd5,nativeCallback);
771        return nativeCallback.feature;
772    }
773    public void applyUserToken(int userid,
774        String password,
775        boolean isMd5,
776        FutureCallback<Token>callback){
777        factory.addCallback(applyUserToken(userid,password,isMd5), callback);
778    }
779    /**
780     * see also {@link net.gdface.facelog.IFaceLog#bindBorder(int,int,net.gdface.facelog.Token)}
781     */
782    public ListenableFuture<Void> bindBorder(int personGroupId,
783        int deviceGroupId,
784        Token token){
785        MethodCallback<Void,Void> nativeCallback = 
786            new MethodCallback<Void,Void>(
787                new Function<Void,Void>() {
788                        @Override
789                        public Void apply(Void input) {
790                            return TypeTransformer.getInstance().to(
791                    input,
792                    Void.class,
793                    Void.class);
794                }});
795        nativeCallback.service.bindBorder(
796                personGroupId,
797            deviceGroupId,
798            TypeTransformer.getInstance().to(
799                    token,
800                    Token.class,
801                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
802        return nativeCallback.feature;
803    }
804    public void bindBorder(int personGroupId,
805        int deviceGroupId,
806        Token token,
807        FutureCallback<Void>callback){
808        factory.addCallback(bindBorder(personGroupId,deviceGroupId,token), callback);
809    }
810    /**
811     * see also {@link net.gdface.facelog.IFaceLog#childListForDeviceGroup(int)}
812     */
813    public ListenableFuture<List<Integer>> childListForDeviceGroup(int deviceGroupId){
814        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
815            new MethodCallback<List<Integer>,List<Integer>>(
816                new Function<List<Integer>,List<Integer>>() {
817                        @Override
818                        public List<Integer> apply(List<Integer> input) {
819                            return TypeTransformer.getInstance().to(
820                    input,
821                    Integer.class,
822                    Integer.class);
823                }});
824        nativeCallback.service.childListForDeviceGroup(
825                deviceGroupId,nativeCallback);
826        return nativeCallback.feature;
827    }
828    public void childListForDeviceGroup(int deviceGroupId,
829        FutureCallback<List<Integer>>callback){
830        factory.addCallback(childListForDeviceGroup(deviceGroupId), callback);
831    }
832    /**
833     * see also {@link net.gdface.facelog.IFaceLog#childListForPersonGroup(int)}
834     */
835    public ListenableFuture<List<Integer>> childListForPersonGroup(int personGroupId){
836        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
837            new MethodCallback<List<Integer>,List<Integer>>(
838                new Function<List<Integer>,List<Integer>>() {
839                        @Override
840                        public List<Integer> apply(List<Integer> input) {
841                            return TypeTransformer.getInstance().to(
842                    input,
843                    Integer.class,
844                    Integer.class);
845                }});
846        nativeCallback.service.childListForPersonGroup(
847                personGroupId,nativeCallback);
848        return nativeCallback.feature;
849    }
850    public void childListForPersonGroup(int personGroupId,
851        FutureCallback<List<Integer>>callback){
852        factory.addCallback(childListForPersonGroup(personGroupId), callback);
853    }
854    /**
855     * see also {@link net.gdface.facelog.IFaceLog#countDeviceByWhere(java.lang.String)}
856     */
857    public ListenableFuture<Integer> countDeviceByWhere(String where){
858        MethodCallback<Integer,Integer> nativeCallback = 
859            new MethodCallback<Integer,Integer>(
860                new Function<Integer,Integer>() {
861                        @Override
862                        public Integer apply(Integer input) {
863                            return input;
864                }});
865        nativeCallback.service.countDeviceByWhere(
866                where,nativeCallback);
867        return nativeCallback.feature;
868    }
869    public void countDeviceByWhere(String where,
870        FutureCallback<Integer>callback){
871        factory.addCallback(countDeviceByWhere(where), callback);
872    }
873    /**
874     * see also {@link net.gdface.facelog.IFaceLog#countDeviceGroupByWhere(java.lang.String)}
875     */
876    public ListenableFuture<Integer> countDeviceGroupByWhere(String where){
877        MethodCallback<Integer,Integer> nativeCallback = 
878            new MethodCallback<Integer,Integer>(
879                new Function<Integer,Integer>() {
880                        @Override
881                        public Integer apply(Integer input) {
882                            return input;
883                }});
884        nativeCallback.service.countDeviceGroupByWhere(
885                where,nativeCallback);
886        return nativeCallback.feature;
887    }
888    public void countDeviceGroupByWhere(String where,
889        FutureCallback<Integer>callback){
890        factory.addCallback(countDeviceGroupByWhere(where), callback);
891    }
892    /**
893     * see also {@link net.gdface.facelog.IFaceLog#countErrorLogByWhere(java.lang.String)}
894     */
895    public ListenableFuture<Integer> countErrorLogByWhere(String where){
896        MethodCallback<Integer,Integer> nativeCallback = 
897            new MethodCallback<Integer,Integer>(
898                new Function<Integer,Integer>() {
899                        @Override
900                        public Integer apply(Integer input) {
901                            return input;
902                }});
903        nativeCallback.service.countErrorLogByWhere(
904                where,nativeCallback);
905        return nativeCallback.feature;
906    }
907    public void countErrorLogByWhere(String where,
908        FutureCallback<Integer>callback){
909        factory.addCallback(countErrorLogByWhere(where), callback);
910    }
911    /**
912     * see also {@link net.gdface.facelog.IFaceLog#countLogByWhere(java.lang.String)}
913     */
914    public ListenableFuture<Integer> countLogByWhere(String where){
915        MethodCallback<Integer,Integer> nativeCallback = 
916            new MethodCallback<Integer,Integer>(
917                new Function<Integer,Integer>() {
918                        @Override
919                        public Integer apply(Integer input) {
920                            return input;
921                }});
922        nativeCallback.service.countLogByWhere(
923                where,nativeCallback);
924        return nativeCallback.feature;
925    }
926    public void countLogByWhere(String where,
927        FutureCallback<Integer>callback){
928        factory.addCallback(countLogByWhere(where), callback);
929    }
930    /**
931     * see also {@link net.gdface.facelog.IFaceLog#countLogLightByVerifyTime(java.lang.String)}
932     */
933    public ListenableFuture<Integer> countLogLightByVerifyTime(String timestamp){
934        MethodCallback<Integer,Integer> nativeCallback = 
935            new MethodCallback<Integer,Integer>(
936                new Function<Integer,Integer>() {
937                        @Override
938                        public Integer apply(Integer input) {
939                            return input;
940                }});
941        nativeCallback.service.countLogLightByVerifyTimeTimestr(
942                timestamp,nativeCallback);
943        return nativeCallback.feature;
944    }
945    public void countLogLightByVerifyTime(String timestamp,
946        FutureCallback<Integer>callback){
947        factory.addCallback(countLogLightByVerifyTime(timestamp), callback);
948    }
949    /**
950     * see also {@link net.gdface.facelog.IFaceLog#countLogLightByVerifyTime(long)}
951     */
952    public ListenableFuture<Integer> countLogLightByVerifyTime(long timestamp){
953        MethodCallback<Integer,Integer> nativeCallback = 
954            new MethodCallback<Integer,Integer>(
955                new Function<Integer,Integer>() {
956                        @Override
957                        public Integer apply(Integer input) {
958                            return input;
959                }});
960        nativeCallback.service.countLogLightByVerifyTime(
961                timestamp,nativeCallback);
962        return nativeCallback.feature;
963    }
964    public void countLogLightByVerifyTime(long timestamp,
965        FutureCallback<Integer>callback){
966        factory.addCallback(countLogLightByVerifyTime(timestamp), callback);
967    }
968    /**
969     * see also {@link net.gdface.facelog.IFaceLog#countLogLightByWhere(java.lang.String)}
970     */
971    public ListenableFuture<Integer> countLogLightByWhere(String where){
972        MethodCallback<Integer,Integer> nativeCallback = 
973            new MethodCallback<Integer,Integer>(
974                new Function<Integer,Integer>() {
975                        @Override
976                        public Integer apply(Integer input) {
977                            return input;
978                }});
979        nativeCallback.service.countLogLightByWhere(
980                where,nativeCallback);
981        return nativeCallback.feature;
982    }
983    public void countLogLightByWhere(String where,
984        FutureCallback<Integer>callback){
985        factory.addCallback(countLogLightByWhere(where), callback);
986    }
987    /**
988     * see also {@link net.gdface.facelog.IFaceLog#countPersonByWhere(java.lang.String)}
989     */
990    public ListenableFuture<Integer> countPersonByWhere(String where){
991        MethodCallback<Integer,Integer> nativeCallback = 
992            new MethodCallback<Integer,Integer>(
993                new Function<Integer,Integer>() {
994                        @Override
995                        public Integer apply(Integer input) {
996                            return input;
997                }});
998        nativeCallback.service.countPersonByWhere(
999                where,nativeCallback);
1000        return nativeCallback.feature;
1001    }
1002    public void countPersonByWhere(String where,
1003        FutureCallback<Integer>callback){
1004        factory.addCallback(countPersonByWhere(where), callback);
1005    }
1006    /**
1007     * see also {@link net.gdface.facelog.IFaceLog#countPersonGroupByWhere(java.lang.String)}
1008     */
1009    public ListenableFuture<Integer> countPersonGroupByWhere(String where){
1010        MethodCallback<Integer,Integer> nativeCallback = 
1011            new MethodCallback<Integer,Integer>(
1012                new Function<Integer,Integer>() {
1013                        @Override
1014                        public Integer apply(Integer input) {
1015                            return input;
1016                }});
1017        nativeCallback.service.countPersonGroupByWhere(
1018                where,nativeCallback);
1019        return nativeCallback.feature;
1020    }
1021    public void countPersonGroupByWhere(String where,
1022        FutureCallback<Integer>callback){
1023        factory.addCallback(countPersonGroupByWhere(where), callback);
1024    }
1025    /**
1026     * see also {@link net.gdface.facelog.IFaceLog#countPersonLog(int,java.lang.Long,java.lang.Long)}
1027     */
1028    public ListenableFuture<Map<String, Integer>> countPersonLog(int personId,
1029        Long startDate,
1030        Long endDate){
1031        MethodCallback<Map<String, Integer>,Map<String,Integer>> nativeCallback = 
1032            new MethodCallback<Map<String, Integer>,Map<String,Integer>>(
1033                new Function<Map<String,Integer>,Map<String, Integer>>() {
1034                        @Override
1035                        public Map<String, Integer> apply(Map<String,Integer> input) {
1036                            return TypeTransformer.getInstance().to(
1037                    input,
1038                    String.class,
1039                    Integer.class,
1040                    String.class,
1041                    Integer.class);
1042                }});
1043        nativeCallback.service.countPersonLog(
1044                personId,
1045            startDate,
1046            endDate,nativeCallback);
1047        return nativeCallback.feature;
1048    }
1049    public void countPersonLog(int personId,
1050        Long startDate,
1051        Long endDate,
1052        FutureCallback<Map<String, Integer>>callback){
1053        factory.addCallback(countPersonLog(personId,startDate,endDate), callback);
1054    }
1055    /**
1056     * see also {@link net.gdface.facelog.IFaceLog#countPersonLog(int,java.lang.String,java.lang.String)}
1057     */
1058    public ListenableFuture<Map<String, Integer>> countPersonLog(int personId,
1059        String startDate,
1060        String endDate){
1061        MethodCallback<Map<String, Integer>,Map<String,Integer>> nativeCallback = 
1062            new MethodCallback<Map<String, Integer>,Map<String,Integer>>(
1063                new Function<Map<String,Integer>,Map<String, Integer>>() {
1064                        @Override
1065                        public Map<String, Integer> apply(Map<String,Integer> input) {
1066                            return TypeTransformer.getInstance().to(
1067                    input,
1068                    String.class,
1069                    Integer.class,
1070                    String.class,
1071                    Integer.class);
1072                }});
1073        nativeCallback.service.countPersonLogTimeStr(
1074                personId,
1075            startDate,
1076            endDate,nativeCallback);
1077        return nativeCallback.feature;
1078    }
1079    public void countPersonLog(int personId,
1080        String startDate,
1081        String endDate,
1082        FutureCallback<Map<String, Integer>>callback){
1083        factory.addCallback(countPersonLog(personId,startDate,endDate), callback);
1084    }
1085    /**
1086     * see also {@link net.gdface.facelog.IFaceLog#createTempPwd(int,net.gdface.facelog.TmpPwdTargetType,int,net.gdface.facelog.Token)}
1087     */
1088    public ListenableFuture<String> createTempPwd(int targetId,
1089        TmpPwdTargetType targetType,
1090        int duration,
1091        Token token){
1092        MethodCallback<String,String> nativeCallback = 
1093            new MethodCallback<String,String>(
1094                new Function<String,String>() {
1095                        @Override
1096                        public String apply(String input) {
1097                            return input;
1098                }});
1099        nativeCallback.service.createTempPwdWithDuration(
1100                targetId,
1101            TypeTransformer.getInstance().to(
1102                    targetType,
1103                    TmpPwdTargetType.class,
1104                    net.gdface.facelog.client.thrift.TmpPwdTargetType.class),
1105            duration,
1106            TypeTransformer.getInstance().to(
1107                    token,
1108                    Token.class,
1109                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1110        return nativeCallback.feature;
1111    }
1112    public void createTempPwd(int targetId,
1113        TmpPwdTargetType targetType,
1114        int duration,
1115        Token token,
1116        FutureCallback<String>callback){
1117        factory.addCallback(createTempPwd(targetId,targetType,duration,token), callback);
1118    }
1119    /**
1120     * see also {@link net.gdface.facelog.IFaceLog#createTempPwd(int,net.gdface.facelog.TmpPwdTargetType,java.lang.String,net.gdface.facelog.Token)}
1121     */
1122    public ListenableFuture<String> createTempPwd(int targetId,
1123        TmpPwdTargetType targetType,
1124        String expiryDate,
1125        Token token){
1126        MethodCallback<String,String> nativeCallback = 
1127            new MethodCallback<String,String>(
1128                new Function<String,String>() {
1129                        @Override
1130                        public String apply(String input) {
1131                            return input;
1132                }});
1133        nativeCallback.service.createTempPwd(
1134                targetId,
1135            TypeTransformer.getInstance().to(
1136                    targetType,
1137                    TmpPwdTargetType.class,
1138                    net.gdface.facelog.client.thrift.TmpPwdTargetType.class),
1139            expiryDate,
1140            TypeTransformer.getInstance().to(
1141                    token,
1142                    Token.class,
1143                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1144        return nativeCallback.feature;
1145    }
1146    public void createTempPwd(int targetId,
1147        TmpPwdTargetType targetType,
1148        String expiryDate,
1149        Token token,
1150        FutureCallback<String>callback){
1151        factory.addCallback(createTempPwd(targetId,targetType,expiryDate,token), callback);
1152    }
1153    /**
1154     * see also {@link net.gdface.facelog.IFaceLog#deleteAllFeaturesByPersonId(int,boolean,net.gdface.facelog.Token)}
1155     */
1156    public ListenableFuture<Integer> deleteAllFeaturesByPersonId(int personId,
1157        boolean deleteImage,
1158        Token token){
1159        MethodCallback<Integer,Integer> nativeCallback = 
1160            new MethodCallback<Integer,Integer>(
1161                new Function<Integer,Integer>() {
1162                        @Override
1163                        public Integer apply(Integer input) {
1164                            return input;
1165                }});
1166        nativeCallback.service.deleteAllFeaturesByPersonId(
1167                personId,
1168            deleteImage,
1169            TypeTransformer.getInstance().to(
1170                    token,
1171                    Token.class,
1172                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1173        return nativeCallback.feature;
1174    }
1175    public void deleteAllFeaturesByPersonId(int personId,
1176        boolean deleteImage,
1177        Token token,
1178        FutureCallback<Integer>callback){
1179        factory.addCallback(deleteAllFeaturesByPersonId(personId,deleteImage,token), callback);
1180    }
1181    /**
1182     * see also {@link net.gdface.facelog.IFaceLog#deleteDevice(int,net.gdface.facelog.Token)}
1183     */
1184    public ListenableFuture<Boolean> deleteDevice(int id,
1185        Token token){
1186        MethodCallback<Boolean,Boolean> nativeCallback = 
1187            new MethodCallback<Boolean,Boolean>(
1188                new Function<Boolean,Boolean>() {
1189                        @Override
1190                        public Boolean apply(Boolean input) {
1191                            return input;
1192                }});
1193        nativeCallback.service.deleteDevice(
1194                id,
1195            TypeTransformer.getInstance().to(
1196                    token,
1197                    Token.class,
1198                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1199        return nativeCallback.feature;
1200    }
1201    public void deleteDevice(int id,
1202        Token token,
1203        FutureCallback<Boolean>callback){
1204        factory.addCallback(deleteDevice(id,token), callback);
1205    }
1206    /**
1207     * see also {@link net.gdface.facelog.IFaceLog#deleteDeviceByMac(java.lang.String,net.gdface.facelog.Token)}
1208     */
1209    public ListenableFuture<Boolean> deleteDeviceByMac(String mac,
1210        Token token){
1211        MethodCallback<Boolean,Boolean> nativeCallback = 
1212            new MethodCallback<Boolean,Boolean>(
1213                new Function<Boolean,Boolean>() {
1214                        @Override
1215                        public Boolean apply(Boolean input) {
1216                            return input;
1217                }});
1218        nativeCallback.service.deleteDeviceByMac(
1219                mac,
1220            TypeTransformer.getInstance().to(
1221                    token,
1222                    Token.class,
1223                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1224        return nativeCallback.feature;
1225    }
1226    public void deleteDeviceByMac(String mac,
1227        Token token,
1228        FutureCallback<Boolean>callback){
1229        factory.addCallback(deleteDeviceByMac(mac,token), callback);
1230    }
1231    /**
1232     * see also {@link net.gdface.facelog.IFaceLog#deleteDeviceGroup(int,net.gdface.facelog.Token)}
1233     */
1234    public ListenableFuture<Integer> deleteDeviceGroup(int deviceGroupId,
1235        Token token){
1236        MethodCallback<Integer,Integer> nativeCallback = 
1237            new MethodCallback<Integer,Integer>(
1238                new Function<Integer,Integer>() {
1239                        @Override
1240                        public Integer apply(Integer input) {
1241                            return input;
1242                }});
1243        nativeCallback.service.deleteDeviceGroup(
1244                deviceGroupId,
1245            TypeTransformer.getInstance().to(
1246                    token,
1247                    Token.class,
1248                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1249        return nativeCallback.feature;
1250    }
1251    public void deleteDeviceGroup(int deviceGroupId,
1252        Token token,
1253        FutureCallback<Integer>callback){
1254        factory.addCallback(deleteDeviceGroup(deviceGroupId,token), callback);
1255    }
1256    /**
1257     * see also {@link net.gdface.facelog.IFaceLog#deleteErrorLogByWhere(java.lang.String,net.gdface.facelog.Token)}
1258     */
1259    public ListenableFuture<Integer> deleteErrorLogByWhere(String where,
1260        Token token){
1261        MethodCallback<Integer,Integer> nativeCallback = 
1262            new MethodCallback<Integer,Integer>(
1263                new Function<Integer,Integer>() {
1264                        @Override
1265                        public Integer apply(Integer input) {
1266                            return input;
1267                }});
1268        nativeCallback.service.deleteErrorLogByWhere(
1269                where,
1270            TypeTransformer.getInstance().to(
1271                    token,
1272                    Token.class,
1273                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1274        return nativeCallback.feature;
1275    }
1276    public void deleteErrorLogByWhere(String where,
1277        Token token,
1278        FutureCallback<Integer>callback){
1279        factory.addCallback(deleteErrorLogByWhere(where,token), callback);
1280    }
1281    /**
1282     * see also {@link net.gdface.facelog.IFaceLog#deleteFeature(java.lang.String,boolean,net.gdface.facelog.Token)}
1283     */
1284    public ListenableFuture<List<String>> deleteFeature(String featureMd5,
1285        boolean deleteImage,
1286        Token token){
1287        MethodCallback<List<String>,List<String>> nativeCallback = 
1288            new MethodCallback<List<String>,List<String>>(
1289                new Function<List<String>,List<String>>() {
1290                        @Override
1291                        public List<String> apply(List<String> input) {
1292                            return TypeTransformer.getInstance().to(
1293                    input,
1294                    String.class,
1295                    String.class);
1296                }});
1297        nativeCallback.service.deleteFeature(
1298                featureMd5,
1299            deleteImage,
1300            TypeTransformer.getInstance().to(
1301                    token,
1302                    Token.class,
1303                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1304        return nativeCallback.feature;
1305    }
1306    public void deleteFeature(String featureMd5,
1307        boolean deleteImage,
1308        Token token,
1309        FutureCallback<List<String>>callback){
1310        factory.addCallback(deleteFeature(featureMd5,deleteImage,token), callback);
1311    }
1312    /**
1313     * see also {@link net.gdface.facelog.IFaceLog#deleteGroupPermitOnDeviceGroup(int,net.gdface.facelog.Token)}
1314     */
1315    public ListenableFuture<Integer> deleteGroupPermitOnDeviceGroup(int deviceGroupId,
1316        Token token){
1317        MethodCallback<Integer,Integer> nativeCallback = 
1318            new MethodCallback<Integer,Integer>(
1319                new Function<Integer,Integer>() {
1320                        @Override
1321                        public Integer apply(Integer input) {
1322                            return input;
1323                }});
1324        nativeCallback.service.deleteGroupPermitOnDeviceGroup(
1325                deviceGroupId,
1326            TypeTransformer.getInstance().to(
1327                    token,
1328                    Token.class,
1329                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1330        return nativeCallback.feature;
1331    }
1332    public void deleteGroupPermitOnDeviceGroup(int deviceGroupId,
1333        Token token,
1334        FutureCallback<Integer>callback){
1335        factory.addCallback(deleteGroupPermitOnDeviceGroup(deviceGroupId,token), callback);
1336    }
1337    /**
1338     * see also {@link net.gdface.facelog.IFaceLog#deleteImage(java.lang.String,net.gdface.facelog.Token)}
1339     */
1340    public ListenableFuture<Integer> deleteImage(String imageMd5,
1341        Token token){
1342        MethodCallback<Integer,Integer> nativeCallback = 
1343            new MethodCallback<Integer,Integer>(
1344                new Function<Integer,Integer>() {
1345                        @Override
1346                        public Integer apply(Integer input) {
1347                            return input;
1348                }});
1349        nativeCallback.service.deleteImage(
1350                imageMd5,
1351            TypeTransformer.getInstance().to(
1352                    token,
1353                    Token.class,
1354                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1355        return nativeCallback.feature;
1356    }
1357    public void deleteImage(String imageMd5,
1358        Token token,
1359        FutureCallback<Integer>callback){
1360        factory.addCallback(deleteImage(imageMd5,token), callback);
1361    }
1362    /**
1363     * see also {@link net.gdface.facelog.IFaceLog#deleteLogByWhere(java.lang.String,net.gdface.facelog.Token)}
1364     */
1365    public ListenableFuture<Integer> deleteLogByWhere(String where,
1366        Token token){
1367        MethodCallback<Integer,Integer> nativeCallback = 
1368            new MethodCallback<Integer,Integer>(
1369                new Function<Integer,Integer>() {
1370                        @Override
1371                        public Integer apply(Integer input) {
1372                            return input;
1373                }});
1374        nativeCallback.service.deleteLogByWhere(
1375                where,
1376            TypeTransformer.getInstance().to(
1377                    token,
1378                    Token.class,
1379                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1380        return nativeCallback.feature;
1381    }
1382    public void deleteLogByWhere(String where,
1383        Token token,
1384        FutureCallback<Integer>callback){
1385        factory.addCallback(deleteLogByWhere(where,token), callback);
1386    }
1387    /**
1388     * see also {@link net.gdface.facelog.IFaceLog#deletePermit(int,int,net.gdface.facelog.Token)}
1389     */
1390    public ListenableFuture<Integer> deletePermit(int deviceGroupId,
1391        int personGroupId,
1392        Token token){
1393        MethodCallback<Integer,Integer> nativeCallback = 
1394            new MethodCallback<Integer,Integer>(
1395                new Function<Integer,Integer>() {
1396                        @Override
1397                        public Integer apply(Integer input) {
1398                            return input;
1399                }});
1400        nativeCallback.service.deletePermitById(
1401                deviceGroupId,
1402            personGroupId,
1403            TypeTransformer.getInstance().to(
1404                    token,
1405                    Token.class,
1406                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1407        return nativeCallback.feature;
1408    }
1409    public void deletePermit(int deviceGroupId,
1410        int personGroupId,
1411        Token token,
1412        FutureCallback<Integer>callback){
1413        factory.addCallback(deletePermit(deviceGroupId,personGroupId,token), callback);
1414    }
1415    /**
1416     * see also {@link net.gdface.facelog.IFaceLog#deletePerson(int,net.gdface.facelog.Token)}
1417     */
1418    public ListenableFuture<Integer> deletePerson(int personId,
1419        Token token){
1420        MethodCallback<Integer,Integer> nativeCallback = 
1421            new MethodCallback<Integer,Integer>(
1422                new Function<Integer,Integer>() {
1423                        @Override
1424                        public Integer apply(Integer input) {
1425                            return input;
1426                }});
1427        nativeCallback.service.deletePerson(
1428                personId,
1429            TypeTransformer.getInstance().to(
1430                    token,
1431                    Token.class,
1432                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1433        return nativeCallback.feature;
1434    }
1435    public void deletePerson(int personId,
1436        Token token,
1437        FutureCallback<Integer>callback){
1438        factory.addCallback(deletePerson(personId,token), callback);
1439    }
1440    /**
1441     * see also {@link net.gdface.facelog.IFaceLog#deletePersonByPapersNum(java.lang.String,net.gdface.facelog.Token)}
1442     */
1443    public ListenableFuture<Integer> deletePersonByPapersNum(String papersNum,
1444        Token token){
1445        MethodCallback<Integer,Integer> nativeCallback = 
1446            new MethodCallback<Integer,Integer>(
1447                new Function<Integer,Integer>() {
1448                        @Override
1449                        public Integer apply(Integer input) {
1450                            return input;
1451                }});
1452        nativeCallback.service.deletePersonByPapersNum(
1453                papersNum,
1454            TypeTransformer.getInstance().to(
1455                    token,
1456                    Token.class,
1457                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1458        return nativeCallback.feature;
1459    }
1460    public void deletePersonByPapersNum(String papersNum,
1461        Token token,
1462        FutureCallback<Integer>callback){
1463        factory.addCallback(deletePersonByPapersNum(papersNum,token), callback);
1464    }
1465    /**
1466     * see also {@link net.gdface.facelog.IFaceLog#deletePersonGroup(int,net.gdface.facelog.Token)}
1467     */
1468    public ListenableFuture<Integer> deletePersonGroup(int personGroupId,
1469        Token token){
1470        MethodCallback<Integer,Integer> nativeCallback = 
1471            new MethodCallback<Integer,Integer>(
1472                new Function<Integer,Integer>() {
1473                        @Override
1474                        public Integer apply(Integer input) {
1475                            return input;
1476                }});
1477        nativeCallback.service.deletePersonGroup(
1478                personGroupId,
1479            TypeTransformer.getInstance().to(
1480                    token,
1481                    Token.class,
1482                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1483        return nativeCallback.feature;
1484    }
1485    public void deletePersonGroup(int personGroupId,
1486        Token token,
1487        FutureCallback<Integer>callback){
1488        factory.addCallback(deletePersonGroup(personGroupId,token), callback);
1489    }
1490    /**
1491     * see also {@link net.gdface.facelog.IFaceLog#deletePersonGroupPermit(int,net.gdface.facelog.Token)}
1492     */
1493    public ListenableFuture<Integer> deletePersonGroupPermit(int personGroupId,
1494        Token token){
1495        MethodCallback<Integer,Integer> nativeCallback = 
1496            new MethodCallback<Integer,Integer>(
1497                new Function<Integer,Integer>() {
1498                        @Override
1499                        public Integer apply(Integer input) {
1500                            return input;
1501                }});
1502        nativeCallback.service.deletePersonGroupPermit(
1503                personGroupId,
1504            TypeTransformer.getInstance().to(
1505                    token,
1506                    Token.class,
1507                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1508        return nativeCallback.feature;
1509    }
1510    public void deletePersonGroupPermit(int personGroupId,
1511        Token token,
1512        FutureCallback<Integer>callback){
1513        factory.addCallback(deletePersonGroupPermit(personGroupId,token), callback);
1514    }
1515    /**
1516     * see also {@link net.gdface.facelog.IFaceLog#deletePersons(java.util.List,net.gdface.facelog.Token)}
1517     */
1518    public ListenableFuture<Integer> deletePersons(List<Integer> personIdList,
1519        Token token){
1520        MethodCallback<Integer,Integer> nativeCallback = 
1521            new MethodCallback<Integer,Integer>(
1522                new Function<Integer,Integer>() {
1523                        @Override
1524                        public Integer apply(Integer input) {
1525                            return input;
1526                }});
1527        nativeCallback.service.deletePersons(
1528                TypeTransformer.getInstance().to(
1529                    personIdList,
1530                    Integer.class,
1531                    Integer.class),
1532            TypeTransformer.getInstance().to(
1533                    token,
1534                    Token.class,
1535                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1536        return nativeCallback.feature;
1537    }
1538    public void deletePersons(List<Integer> personIdList,
1539        Token token,
1540        FutureCallback<Integer>callback){
1541        factory.addCallback(deletePersons(personIdList,token), callback);
1542    }
1543    /**
1544     * see also {@link net.gdface.facelog.IFaceLog#deletePersonsByPapersNum(java.util.List,net.gdface.facelog.Token)}
1545     */
1546    public ListenableFuture<Integer> deletePersonsByPapersNum(List<String> papersNumlist,
1547        Token token){
1548        MethodCallback<Integer,Integer> nativeCallback = 
1549            new MethodCallback<Integer,Integer>(
1550                new Function<Integer,Integer>() {
1551                        @Override
1552                        public Integer apply(Integer input) {
1553                            return input;
1554                }});
1555        nativeCallback.service.deletePersonsByPapersNum(
1556                TypeTransformer.getInstance().to(
1557                    papersNumlist,
1558                    String.class,
1559                    String.class),
1560            TypeTransformer.getInstance().to(
1561                    token,
1562                    Token.class,
1563                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1564        return nativeCallback.feature;
1565    }
1566    public void deletePersonsByPapersNum(List<String> papersNumlist,
1567        Token token,
1568        FutureCallback<Integer>callback){
1569        factory.addCallback(deletePersonsByPapersNum(papersNumlist,token), callback);
1570    }
1571    /**
1572     * see also {@link net.gdface.facelog.IFaceLog#disablePerson(int,java.lang.Integer,boolean,boolean,boolean,net.gdface.facelog.Token)}
1573     */
1574    public ListenableFuture<Void> disablePerson(int personId,
1575        Integer moveToGroupId,
1576        boolean deletePhoto,
1577        boolean deleteFeature,
1578        boolean deleteLog,
1579        Token token){
1580        MethodCallback<Void,Void> nativeCallback = 
1581            new MethodCallback<Void,Void>(
1582                new Function<Void,Void>() {
1583                        @Override
1584                        public Void apply(Void input) {
1585                            return TypeTransformer.getInstance().to(
1586                    input,
1587                    Void.class,
1588                    Void.class);
1589                }});
1590        nativeCallback.service.disablePerson(
1591                personId,
1592            moveToGroupId,
1593            deletePhoto,
1594            deleteFeature,
1595            deleteLog,
1596            TypeTransformer.getInstance().to(
1597                    token,
1598                    Token.class,
1599                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1600        return nativeCallback.feature;
1601    }
1602    public void disablePerson(int personId,
1603        Integer moveToGroupId,
1604        boolean deletePhoto,
1605        boolean deleteFeature,
1606        boolean deleteLog,
1607        Token token,
1608        FutureCallback<Void>callback){
1609        factory.addCallback(disablePerson(personId,moveToGroupId,deletePhoto,deleteFeature,deleteLog,token), callback);
1610    }
1611    /**
1612     * see also {@link net.gdface.facelog.IFaceLog#disablePerson(java.util.List,net.gdface.facelog.Token)}
1613     */
1614    public ListenableFuture<Void> disablePerson(List<Integer> personIdList,
1615        Token token){
1616        MethodCallback<Void,Void> nativeCallback = 
1617            new MethodCallback<Void,Void>(
1618                new Function<Void,Void>() {
1619                        @Override
1620                        public Void apply(Void input) {
1621                            return TypeTransformer.getInstance().to(
1622                    input,
1623                    Void.class,
1624                    Void.class);
1625                }});
1626        nativeCallback.service.disablePersonList(
1627                TypeTransformer.getInstance().to(
1628                    personIdList,
1629                    Integer.class,
1630                    Integer.class),
1631            TypeTransformer.getInstance().to(
1632                    token,
1633                    Token.class,
1634                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
1635        return nativeCallback.feature;
1636    }
1637    public void disablePerson(List<Integer> personIdList,
1638        Token token,
1639        FutureCallback<Void>callback){
1640        factory.addCallback(disablePerson(personIdList,token), callback);
1641    }
1642    /**
1643     * see also {@link net.gdface.facelog.IFaceLog#existsDevice(int)}
1644     */
1645    public ListenableFuture<Boolean> existsDevice(int id){
1646        MethodCallback<Boolean,Boolean> nativeCallback = 
1647            new MethodCallback<Boolean,Boolean>(
1648                new Function<Boolean,Boolean>() {
1649                        @Override
1650                        public Boolean apply(Boolean input) {
1651                            return input;
1652                }});
1653        nativeCallback.service.existsDevice(
1654                id,nativeCallback);
1655        return nativeCallback.feature;
1656    }
1657    public void existsDevice(int id,
1658        FutureCallback<Boolean>callback){
1659        factory.addCallback(existsDevice(id), callback);
1660    }
1661    /**
1662     * see also {@link net.gdface.facelog.IFaceLog#existsFeature(java.lang.String)}
1663     */
1664    public ListenableFuture<Boolean> existsFeature(String md5){
1665        MethodCallback<Boolean,Boolean> nativeCallback = 
1666            new MethodCallback<Boolean,Boolean>(
1667                new Function<Boolean,Boolean>() {
1668                        @Override
1669                        public Boolean apply(Boolean input) {
1670                            return input;
1671                }});
1672        nativeCallback.service.existsFeature(
1673                md5,nativeCallback);
1674        return nativeCallback.feature;
1675    }
1676    public void existsFeature(String md5,
1677        FutureCallback<Boolean>callback){
1678        factory.addCallback(existsFeature(md5), callback);
1679    }
1680    /**
1681     * see also {@link net.gdface.facelog.IFaceLog#existsImage(java.lang.String)}
1682     */
1683    public ListenableFuture<Boolean> existsImage(String md5){
1684        MethodCallback<Boolean,Boolean> nativeCallback = 
1685            new MethodCallback<Boolean,Boolean>(
1686                new Function<Boolean,Boolean>() {
1687                        @Override
1688                        public Boolean apply(Boolean input) {
1689                            return input;
1690                }});
1691        nativeCallback.service.existsImage(
1692                md5,nativeCallback);
1693        return nativeCallback.feature;
1694    }
1695    public void existsImage(String md5,
1696        FutureCallback<Boolean>callback){
1697        factory.addCallback(existsImage(md5), callback);
1698    }
1699    /**
1700     * see also {@link net.gdface.facelog.IFaceLog#existsPerson(int)}
1701     */
1702    public ListenableFuture<Boolean> existsPerson(int persionId){
1703        MethodCallback<Boolean,Boolean> nativeCallback = 
1704            new MethodCallback<Boolean,Boolean>(
1705                new Function<Boolean,Boolean>() {
1706                        @Override
1707                        public Boolean apply(Boolean input) {
1708                            return input;
1709                }});
1710        nativeCallback.service.existsPerson(
1711                persionId,nativeCallback);
1712        return nativeCallback.feature;
1713    }
1714    public void existsPerson(int persionId,
1715        FutureCallback<Boolean>callback){
1716        factory.addCallback(existsPerson(persionId), callback);
1717    }
1718    /**
1719     * see also {@link net.gdface.facelog.IFaceLog#faceRecognizePersonPermitted(byte[],java.lang.Float,int)}
1720     */
1721    public ListenableFuture<Integer> faceRecognizePersonPermitted(byte[] imageData,
1722        Float threshold,
1723        int deviceId){
1724        MethodCallback<Integer,Integer> nativeCallback = 
1725            new MethodCallback<Integer,Integer>(
1726                new Function<Integer,Integer>() {
1727                        @Override
1728                        public Integer apply(Integer input) {
1729                            return input;
1730                }});
1731        nativeCallback.service.faceRecognizePersonPermitted(
1732                TypeTransformer.getInstance().to(
1733                    imageData,
1734                    byte[].class,
1735                    okio.ByteString.class),
1736            (threshold==null)?null:threshold.doubleValue(),
1737            deviceId,nativeCallback);
1738        return nativeCallback.feature;
1739    }
1740    public void faceRecognizePersonPermitted(byte[] imageData,
1741        Float threshold,
1742        int deviceId,
1743        FutureCallback<Integer>callback){
1744        factory.addCallback(faceRecognizePersonPermitted(imageData,threshold,deviceId), callback);
1745    }
1746    /**
1747     * see also {@link net.gdface.facelog.IFaceLog#getDevice(int)}
1748     */
1749    public ListenableFuture<DeviceBean> getDevice(int deviceId){
1750        MethodCallback<DeviceBean,net.gdface.facelog.client.thrift.DeviceBean> nativeCallback = 
1751            new MethodCallback<DeviceBean,net.gdface.facelog.client.thrift.DeviceBean>(
1752                new Function<net.gdface.facelog.client.thrift.DeviceBean,DeviceBean>() {
1753                        @Override
1754                        public DeviceBean apply(net.gdface.facelog.client.thrift.DeviceBean input) {
1755                            return TypeTransformer.getInstance().to(
1756                    input,
1757                    net.gdface.facelog.client.thrift.DeviceBean.class,
1758                    DeviceBean.class);
1759                }});
1760        nativeCallback.service.getDevice(
1761                deviceId,nativeCallback);
1762        return nativeCallback.feature;
1763    }
1764    public void getDevice(int deviceId,
1765        FutureCallback<DeviceBean>callback){
1766        factory.addCallback(getDevice(deviceId), callback);
1767    }
1768    /**
1769     * see also {@link net.gdface.facelog.IFaceLog#getDeviceByMac(java.lang.String)}
1770     */
1771    public ListenableFuture<DeviceBean> getDeviceByMac(String mac){
1772        MethodCallback<DeviceBean,net.gdface.facelog.client.thrift.DeviceBean> nativeCallback = 
1773            new MethodCallback<DeviceBean,net.gdface.facelog.client.thrift.DeviceBean>(
1774                new Function<net.gdface.facelog.client.thrift.DeviceBean,DeviceBean>() {
1775                        @Override
1776                        public DeviceBean apply(net.gdface.facelog.client.thrift.DeviceBean input) {
1777                            return TypeTransformer.getInstance().to(
1778                    input,
1779                    net.gdface.facelog.client.thrift.DeviceBean.class,
1780                    DeviceBean.class);
1781                }});
1782        nativeCallback.service.getDeviceByMac(
1783                mac,nativeCallback);
1784        return nativeCallback.feature;
1785    }
1786    public void getDeviceByMac(String mac,
1787        FutureCallback<DeviceBean>callback){
1788        factory.addCallback(getDeviceByMac(mac), callback);
1789    }
1790    /**
1791     * see also {@link net.gdface.facelog.IFaceLog#getDeviceGroup(int)}
1792     */
1793    public ListenableFuture<DeviceGroupBean> getDeviceGroup(int deviceGroupId){
1794        MethodCallback<DeviceGroupBean,net.gdface.facelog.client.thrift.DeviceGroupBean> nativeCallback = 
1795            new MethodCallback<DeviceGroupBean,net.gdface.facelog.client.thrift.DeviceGroupBean>(
1796                new Function<net.gdface.facelog.client.thrift.DeviceGroupBean,DeviceGroupBean>() {
1797                        @Override
1798                        public DeviceGroupBean apply(net.gdface.facelog.client.thrift.DeviceGroupBean input) {
1799                            return TypeTransformer.getInstance().to(
1800                    input,
1801                    net.gdface.facelog.client.thrift.DeviceGroupBean.class,
1802                    DeviceGroupBean.class);
1803                }});
1804        nativeCallback.service.getDeviceGroup(
1805                deviceGroupId,nativeCallback);
1806        return nativeCallback.feature;
1807    }
1808    public void getDeviceGroup(int deviceGroupId,
1809        FutureCallback<DeviceGroupBean>callback){
1810        factory.addCallback(getDeviceGroup(deviceGroupId), callback);
1811    }
1812    /**
1813     * see also {@link net.gdface.facelog.IFaceLog#getDeviceGroups(java.util.List)}
1814     */
1815    public ListenableFuture<List<DeviceGroupBean>> getDeviceGroups(List<Integer> groupIdList){
1816        MethodCallback<List<DeviceGroupBean>,List<net.gdface.facelog.client.thrift.DeviceGroupBean>> nativeCallback = 
1817            new MethodCallback<List<DeviceGroupBean>,List<net.gdface.facelog.client.thrift.DeviceGroupBean>>(
1818                new Function<List<net.gdface.facelog.client.thrift.DeviceGroupBean>,List<DeviceGroupBean>>() {
1819                        @Override
1820                        public List<DeviceGroupBean> apply(List<net.gdface.facelog.client.thrift.DeviceGroupBean> input) {
1821                            return TypeTransformer.getInstance().to(
1822                    input,
1823                    net.gdface.facelog.client.thrift.DeviceGroupBean.class,
1824                    DeviceGroupBean.class);
1825                }});
1826        nativeCallback.service.getDeviceGroups(
1827                TypeTransformer.getInstance().to(
1828                    groupIdList,
1829                    Integer.class,
1830                    Integer.class),nativeCallback);
1831        return nativeCallback.feature;
1832    }
1833    public void getDeviceGroups(List<Integer> groupIdList,
1834        FutureCallback<List<DeviceGroupBean>>callback){
1835        factory.addCallback(getDeviceGroups(groupIdList), callback);
1836    }
1837    /**
1838     * see also {@link net.gdface.facelog.IFaceLog#getDeviceGroupsBelongs(int)}
1839     */
1840    public ListenableFuture<List<Integer>> getDeviceGroupsBelongs(int deviceId){
1841        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
1842            new MethodCallback<List<Integer>,List<Integer>>(
1843                new Function<List<Integer>,List<Integer>>() {
1844                        @Override
1845                        public List<Integer> apply(List<Integer> input) {
1846                            return TypeTransformer.getInstance().to(
1847                    input,
1848                    Integer.class,
1849                    Integer.class);
1850                }});
1851        nativeCallback.service.getDeviceGroupsBelongs(
1852                deviceId,nativeCallback);
1853        return nativeCallback.feature;
1854    }
1855    public void getDeviceGroupsBelongs(int deviceId,
1856        FutureCallback<List<Integer>>callback){
1857        factory.addCallback(getDeviceGroupsBelongs(deviceId), callback);
1858    }
1859    /**
1860     * see also {@link net.gdface.facelog.IFaceLog#getDeviceGroupsPermit(int)}
1861     */
1862    public ListenableFuture<List<Integer>> getDeviceGroupsPermit(int personGroupId){
1863        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
1864            new MethodCallback<List<Integer>,List<Integer>>(
1865                new Function<List<Integer>,List<Integer>>() {
1866                        @Override
1867                        public List<Integer> apply(List<Integer> input) {
1868                            return TypeTransformer.getInstance().to(
1869                    input,
1870                    Integer.class,
1871                    Integer.class);
1872                }});
1873        nativeCallback.service.getDeviceGroupsPermit(
1874                personGroupId,nativeCallback);
1875        return nativeCallback.feature;
1876    }
1877    public void getDeviceGroupsPermit(int personGroupId,
1878        FutureCallback<List<Integer>>callback){
1879        factory.addCallback(getDeviceGroupsPermit(personGroupId), callback);
1880    }
1881    /**
1882     * see also {@link net.gdface.facelog.IFaceLog#getDeviceGroupsPermittedBy(int)}
1883     */
1884    public ListenableFuture<List<Integer>> getDeviceGroupsPermittedBy(int personGroupId){
1885        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
1886            new MethodCallback<List<Integer>,List<Integer>>(
1887                new Function<List<Integer>,List<Integer>>() {
1888                        @Override
1889                        public List<Integer> apply(List<Integer> input) {
1890                            return TypeTransformer.getInstance().to(
1891                    input,
1892                    Integer.class,
1893                    Integer.class);
1894                }});
1895        nativeCallback.service.getDeviceGroupsPermittedBy(
1896                personGroupId,nativeCallback);
1897        return nativeCallback.feature;
1898    }
1899    public void getDeviceGroupsPermittedBy(int personGroupId,
1900        FutureCallback<List<Integer>>callback){
1901        factory.addCallback(getDeviceGroupsPermittedBy(personGroupId), callback);
1902    }
1903    /**
1904     * see also {@link net.gdface.facelog.IFaceLog#getDeviceIdOfFeature(java.lang.String)}
1905     */
1906    public ListenableFuture<Integer> getDeviceIdOfFeature(String featureMd5){
1907        MethodCallback<Integer,Integer> nativeCallback = 
1908            new MethodCallback<Integer,Integer>(
1909                new Function<Integer,Integer>() {
1910                        @Override
1911                        public Integer apply(Integer input) {
1912                            return input;
1913                }});
1914        nativeCallback.service.getDeviceIdOfFeature(
1915                featureMd5,nativeCallback);
1916        return nativeCallback.feature;
1917    }
1918    public void getDeviceIdOfFeature(String featureMd5,
1919        FutureCallback<Integer>callback){
1920        factory.addCallback(getDeviceIdOfFeature(featureMd5), callback);
1921    }
1922    /**
1923     * see also {@link net.gdface.facelog.IFaceLog#getDevices(java.util.List)}
1924     */
1925    public ListenableFuture<List<DeviceBean>> getDevices(List<Integer> idList){
1926        MethodCallback<List<DeviceBean>,List<net.gdface.facelog.client.thrift.DeviceBean>> nativeCallback = 
1927            new MethodCallback<List<DeviceBean>,List<net.gdface.facelog.client.thrift.DeviceBean>>(
1928                new Function<List<net.gdface.facelog.client.thrift.DeviceBean>,List<DeviceBean>>() {
1929                        @Override
1930                        public List<DeviceBean> apply(List<net.gdface.facelog.client.thrift.DeviceBean> input) {
1931                            return TypeTransformer.getInstance().to(
1932                    input,
1933                    net.gdface.facelog.client.thrift.DeviceBean.class,
1934                    DeviceBean.class);
1935                }});
1936        nativeCallback.service.getDevices(
1937                TypeTransformer.getInstance().to(
1938                    idList,
1939                    Integer.class,
1940                    Integer.class),nativeCallback);
1941        return nativeCallback.feature;
1942    }
1943    public void getDevices(List<Integer> idList,
1944        FutureCallback<List<DeviceBean>>callback){
1945        factory.addCallback(getDevices(idList), callback);
1946    }
1947    /**
1948     * see also {@link net.gdface.facelog.IFaceLog#getDevicesOfGroup(int)}
1949     */
1950    public ListenableFuture<List<Integer>> getDevicesOfGroup(int deviceGroupId){
1951        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
1952            new MethodCallback<List<Integer>,List<Integer>>(
1953                new Function<List<Integer>,List<Integer>>() {
1954                        @Override
1955                        public List<Integer> apply(List<Integer> input) {
1956                            return TypeTransformer.getInstance().to(
1957                    input,
1958                    Integer.class,
1959                    Integer.class);
1960                }});
1961        nativeCallback.service.getDevicesOfGroup(
1962                deviceGroupId,nativeCallback);
1963        return nativeCallback.feature;
1964    }
1965    public void getDevicesOfGroup(int deviceGroupId,
1966        FutureCallback<List<Integer>>callback){
1967        factory.addCallback(getDevicesOfGroup(deviceGroupId), callback);
1968    }
1969    /**
1970     * see also {@link net.gdface.facelog.IFaceLog#getFace(int)}
1971     */
1972    public ListenableFuture<FaceBean> getFace(int faceId){
1973        MethodCallback<FaceBean,net.gdface.facelog.client.thrift.FaceBean> nativeCallback = 
1974            new MethodCallback<FaceBean,net.gdface.facelog.client.thrift.FaceBean>(
1975                new Function<net.gdface.facelog.client.thrift.FaceBean,FaceBean>() {
1976                        @Override
1977                        public FaceBean apply(net.gdface.facelog.client.thrift.FaceBean input) {
1978                            return TypeTransformer.getInstance().to(
1979                    input,
1980                    net.gdface.facelog.client.thrift.FaceBean.class,
1981                    FaceBean.class);
1982                }});
1983        nativeCallback.service.getFace(
1984                faceId,nativeCallback);
1985        return nativeCallback.feature;
1986    }
1987    public void getFace(int faceId,
1988        FutureCallback<FaceBean>callback){
1989        factory.addCallback(getFace(faceId), callback);
1990    }
1991    /**
1992     * see also {@link net.gdface.facelog.IFaceLog#getFaceApiParameters(net.gdface.facelog.Token)}
1993     */
1994    public ListenableFuture<Map<String, String>> getFaceApiParameters(Token token){
1995        MethodCallback<Map<String, String>,Map<String,String>> nativeCallback = 
1996            new MethodCallback<Map<String, String>,Map<String,String>>(
1997                new Function<Map<String,String>,Map<String, String>>() {
1998                        @Override
1999                        public Map<String, String> apply(Map<String,String> input) {
2000                            return TypeTransformer.getInstance().to(
2001                    input,
2002                    String.class,
2003                    String.class,
2004                    String.class,
2005                    String.class);
2006                }});
2007        nativeCallback.service.getFaceApiParameters(
2008                TypeTransformer.getInstance().to(
2009                    token,
2010                    Token.class,
2011                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
2012        return nativeCallback.feature;
2013    }
2014    public void getFaceApiParameters(Token token,
2015        FutureCallback<Map<String, String>>callback){
2016        factory.addCallback(getFaceApiParameters(token), callback);
2017    }
2018    /**
2019     * see also {@link net.gdface.facelog.IFaceLog#getFacesOfFeature(java.lang.String)}
2020     */
2021    public ListenableFuture<List<FaceBean>> getFacesOfFeature(String featureMd5){
2022        MethodCallback<List<FaceBean>,List<net.gdface.facelog.client.thrift.FaceBean>> nativeCallback = 
2023            new MethodCallback<List<FaceBean>,List<net.gdface.facelog.client.thrift.FaceBean>>(
2024                new Function<List<net.gdface.facelog.client.thrift.FaceBean>,List<FaceBean>>() {
2025                        @Override
2026                        public List<FaceBean> apply(List<net.gdface.facelog.client.thrift.FaceBean> input) {
2027                            return TypeTransformer.getInstance().to(
2028                    input,
2029                    net.gdface.facelog.client.thrift.FaceBean.class,
2030                    FaceBean.class);
2031                }});
2032        nativeCallback.service.getFacesOfFeature(
2033                featureMd5,nativeCallback);
2034        return nativeCallback.feature;
2035    }
2036    public void getFacesOfFeature(String featureMd5,
2037        FutureCallback<List<FaceBean>>callback){
2038        factory.addCallback(getFacesOfFeature(featureMd5), callback);
2039    }
2040    /**
2041     * see also {@link net.gdface.facelog.IFaceLog#getFacesOfImage(java.lang.String)}
2042     */
2043    public ListenableFuture<List<FaceBean>> getFacesOfImage(String imageMd5){
2044        MethodCallback<List<FaceBean>,List<net.gdface.facelog.client.thrift.FaceBean>> nativeCallback = 
2045            new MethodCallback<List<FaceBean>,List<net.gdface.facelog.client.thrift.FaceBean>>(
2046                new Function<List<net.gdface.facelog.client.thrift.FaceBean>,List<FaceBean>>() {
2047                        @Override
2048                        public List<FaceBean> apply(List<net.gdface.facelog.client.thrift.FaceBean> input) {
2049                            return TypeTransformer.getInstance().to(
2050                    input,
2051                    net.gdface.facelog.client.thrift.FaceBean.class,
2052                    FaceBean.class);
2053                }});
2054        nativeCallback.service.getFacesOfImage(
2055                imageMd5,nativeCallback);
2056        return nativeCallback.feature;
2057    }
2058    public void getFacesOfImage(String imageMd5,
2059        FutureCallback<List<FaceBean>>callback){
2060        factory.addCallback(getFacesOfImage(imageMd5), callback);
2061    }
2062    /**
2063     * see also {@link net.gdface.facelog.IFaceLog#getFeature(java.lang.String)}
2064     */
2065    public ListenableFuture<FeatureBean> getFeature(String md5){
2066        MethodCallback<FeatureBean,net.gdface.facelog.client.thrift.FeatureBean> nativeCallback = 
2067            new MethodCallback<FeatureBean,net.gdface.facelog.client.thrift.FeatureBean>(
2068                new Function<net.gdface.facelog.client.thrift.FeatureBean,FeatureBean>() {
2069                        @Override
2070                        public FeatureBean apply(net.gdface.facelog.client.thrift.FeatureBean input) {
2071                            return TypeTransformer.getInstance().to(
2072                    input,
2073                    net.gdface.facelog.client.thrift.FeatureBean.class,
2074                    FeatureBean.class);
2075                }});
2076        nativeCallback.service.getFeature(
2077                md5,nativeCallback);
2078        return nativeCallback.feature;
2079    }
2080    public void getFeature(String md5,
2081        FutureCallback<FeatureBean>callback){
2082        factory.addCallback(getFeature(md5), callback);
2083    }
2084    /**
2085     * see also {@link net.gdface.facelog.IFaceLog#getFeatureBytes(java.lang.String)}
2086     */
2087    public ListenableFuture<byte[]> getFeatureBytes(String md5){
2088        MethodCallback<byte[],okio.ByteString> nativeCallback = 
2089            new MethodCallback<byte[],okio.ByteString>(
2090                new Function<okio.ByteString,byte[]>() {
2091                        @Override
2092                        public byte[] apply(okio.ByteString input) {
2093                            return TypeTransformer.getInstance().to(
2094                    input,
2095                    okio.ByteString.class,
2096                    byte[].class);
2097                }});
2098        nativeCallback.service.getFeatureBytes(
2099                md5,nativeCallback);
2100        return nativeCallback.feature;
2101    }
2102    public void getFeatureBytes(String md5,
2103        FutureCallback<byte[]>callback){
2104        factory.addCallback(getFeatureBytes(md5), callback);
2105    }
2106    /**
2107     * see also {@link net.gdface.facelog.IFaceLog#getFeatureBytes(java.lang.String,boolean)}
2108     */
2109    public ListenableFuture<byte[]> getFeatureBytes(String md5,
2110        boolean truncation){
2111        MethodCallback<byte[],okio.ByteString> nativeCallback = 
2112            new MethodCallback<byte[],okio.ByteString>(
2113                new Function<okio.ByteString,byte[]>() {
2114                        @Override
2115                        public byte[] apply(okio.ByteString input) {
2116                            return TypeTransformer.getInstance().to(
2117                    input,
2118                    okio.ByteString.class,
2119                    byte[].class);
2120                }});
2121        nativeCallback.service.getFeatureBytesTruncation(
2122                md5,
2123            truncation,nativeCallback);
2124        return nativeCallback.feature;
2125    }
2126    public void getFeatureBytes(String md5,
2127        boolean truncation,
2128        FutureCallback<byte[]>callback){
2129        factory.addCallback(getFeatureBytes(md5,truncation), callback);
2130    }
2131    /**
2132     * see also {@link net.gdface.facelog.IFaceLog#getFeatureBytesList(java.util.List,boolean)}
2133     */
2134    public ListenableFuture<List<byte[]>> getFeatureBytesList(List<String> md5List,
2135        boolean truncation){
2136        MethodCallback<List<byte[]>,List<okio.ByteString>> nativeCallback = 
2137            new MethodCallback<List<byte[]>,List<okio.ByteString>>(
2138                new Function<List<okio.ByteString>,List<byte[]>>() {
2139                        @Override
2140                        public List<byte[]> apply(List<okio.ByteString> input) {
2141                            return TypeTransformer.getInstance().to(
2142                    input,
2143                    okio.ByteString.class,
2144                    byte[].class);
2145                }});
2146        nativeCallback.service.getFeatureBytesList(
2147                TypeTransformer.getInstance().to(
2148                    md5List,
2149                    String.class,
2150                    String.class),
2151            truncation,nativeCallback);
2152        return nativeCallback.feature;
2153    }
2154    public void getFeatureBytesList(List<String> md5List,
2155        boolean truncation,
2156        FutureCallback<List<byte[]>>callback){
2157        factory.addCallback(getFeatureBytesList(md5List,truncation), callback);
2158    }
2159    /**
2160     * see also {@link net.gdface.facelog.IFaceLog#getFeatures(java.util.List)}
2161     */
2162    public ListenableFuture<List<FeatureBean>> getFeatures(List<String> md5List){
2163        MethodCallback<List<FeatureBean>,List<net.gdface.facelog.client.thrift.FeatureBean>> nativeCallback = 
2164            new MethodCallback<List<FeatureBean>,List<net.gdface.facelog.client.thrift.FeatureBean>>(
2165                new Function<List<net.gdface.facelog.client.thrift.FeatureBean>,List<FeatureBean>>() {
2166                        @Override
2167                        public List<FeatureBean> apply(List<net.gdface.facelog.client.thrift.FeatureBean> input) {
2168                            return TypeTransformer.getInstance().to(
2169                    input,
2170                    net.gdface.facelog.client.thrift.FeatureBean.class,
2171                    FeatureBean.class);
2172                }});
2173        nativeCallback.service.getFeatures(
2174                TypeTransformer.getInstance().to(
2175                    md5List,
2176                    String.class,
2177                    String.class),nativeCallback);
2178        return nativeCallback.feature;
2179    }
2180    public void getFeatures(List<String> md5List,
2181        FutureCallback<List<FeatureBean>>callback){
2182        factory.addCallback(getFeatures(md5List), callback);
2183    }
2184    /**
2185     * see also {@link net.gdface.facelog.IFaceLog#getFeaturesByPersonIdAndSdkVersion(int,java.lang.String)}
2186     */
2187    public ListenableFuture<List<String>> getFeaturesByPersonIdAndSdkVersion(int personId,
2188        String sdkVersion){
2189        MethodCallback<List<String>,List<String>> nativeCallback = 
2190            new MethodCallback<List<String>,List<String>>(
2191                new Function<List<String>,List<String>>() {
2192                        @Override
2193                        public List<String> apply(List<String> input) {
2194                            return TypeTransformer.getInstance().to(
2195                    input,
2196                    String.class,
2197                    String.class);
2198                }});
2199        nativeCallback.service.getFeaturesByPersonIdAndSdkVersion(
2200                personId,
2201            sdkVersion,nativeCallback);
2202        return nativeCallback.feature;
2203    }
2204    public void getFeaturesByPersonIdAndSdkVersion(int personId,
2205        String sdkVersion,
2206        FutureCallback<List<String>>callback){
2207        factory.addCallback(getFeaturesByPersonIdAndSdkVersion(personId,sdkVersion), callback);
2208    }
2209    /**
2210     * see also {@link net.gdface.facelog.IFaceLog#getFeaturesOfImage(java.lang.String)}
2211     */
2212    public ListenableFuture<List<String>> getFeaturesOfImage(String imageMd5){
2213        MethodCallback<List<String>,List<String>> nativeCallback = 
2214            new MethodCallback<List<String>,List<String>>(
2215                new Function<List<String>,List<String>>() {
2216                        @Override
2217                        public List<String> apply(List<String> input) {
2218                            return TypeTransformer.getInstance().to(
2219                    input,
2220                    String.class,
2221                    String.class);
2222                }});
2223        nativeCallback.service.getFeaturesOfImage(
2224                imageMd5,nativeCallback);
2225        return nativeCallback.feature;
2226    }
2227    public void getFeaturesOfImage(String imageMd5,
2228        FutureCallback<List<String>>callback){
2229        factory.addCallback(getFeaturesOfImage(imageMd5), callback);
2230    }
2231    /**
2232     * see also {@link net.gdface.facelog.IFaceLog#getFeaturesOfPerson(int)}
2233     */
2234    public ListenableFuture<List<String>> getFeaturesOfPerson(int personId){
2235        MethodCallback<List<String>,List<String>> nativeCallback = 
2236            new MethodCallback<List<String>,List<String>>(
2237                new Function<List<String>,List<String>>() {
2238                        @Override
2239                        public List<String> apply(List<String> input) {
2240                            return TypeTransformer.getInstance().to(
2241                    input,
2242                    String.class,
2243                    String.class);
2244                }});
2245        nativeCallback.service.getFeaturesOfPerson(
2246                personId,nativeCallback);
2247        return nativeCallback.feature;
2248    }
2249    public void getFeaturesOfPerson(int personId,
2250        FutureCallback<List<String>>callback){
2251        factory.addCallback(getFeaturesOfPerson(personId), callback);
2252    }
2253    /**
2254     * see also {@link net.gdface.facelog.IFaceLog#getFeaturesPermittedOnDevice(int,boolean,java.lang.String,java.util.List,java.lang.Long)}
2255     */
2256    public ListenableFuture<List<String>> getFeaturesPermittedOnDevice(int deviceId,
2257        boolean ignoreSchedule,
2258        String sdkVersion,
2259        List<String> excludeFeatureIds,
2260        Long timestamp){
2261        MethodCallback<List<String>,List<String>> nativeCallback = 
2262            new MethodCallback<List<String>,List<String>>(
2263                new Function<List<String>,List<String>>() {
2264                        @Override
2265                        public List<String> apply(List<String> input) {
2266                            return TypeTransformer.getInstance().to(
2267                    input,
2268                    String.class,
2269                    String.class);
2270                }});
2271        nativeCallback.service.getFeaturesPermittedOnDevice(
2272                deviceId,
2273            ignoreSchedule,
2274            sdkVersion,
2275            TypeTransformer.getInstance().to(
2276                    excludeFeatureIds,
2277                    String.class,
2278                    String.class),
2279            timestamp,nativeCallback);
2280        return nativeCallback.feature;
2281    }
2282    public void getFeaturesPermittedOnDevice(int deviceId,
2283        boolean ignoreSchedule,
2284        String sdkVersion,
2285        List<String> excludeFeatureIds,
2286        Long timestamp,
2287        FutureCallback<List<String>>callback){
2288        factory.addCallback(getFeaturesPermittedOnDevice(deviceId,ignoreSchedule,sdkVersion,excludeFeatureIds,timestamp), callback);
2289    }
2290    /**
2291     * see also {@link net.gdface.facelog.IFaceLog#getGroupPermit(int,int)}
2292     */
2293    public ListenableFuture<PermitBean> getGroupPermit(int deviceId,
2294        int personGroupId){
2295        MethodCallback<PermitBean,net.gdface.facelog.client.thrift.PermitBean> nativeCallback = 
2296            new MethodCallback<PermitBean,net.gdface.facelog.client.thrift.PermitBean>(
2297                new Function<net.gdface.facelog.client.thrift.PermitBean,PermitBean>() {
2298                        @Override
2299                        public PermitBean apply(net.gdface.facelog.client.thrift.PermitBean input) {
2300                            return TypeTransformer.getInstance().to(
2301                    input,
2302                    net.gdface.facelog.client.thrift.PermitBean.class,
2303                    PermitBean.class);
2304                }});
2305        nativeCallback.service.getGroupPermit(
2306                deviceId,
2307            personGroupId,nativeCallback);
2308        return nativeCallback.feature;
2309    }
2310    public void getGroupPermit(int deviceId,
2311        int personGroupId,
2312        FutureCallback<PermitBean>callback){
2313        factory.addCallback(getGroupPermit(deviceId,personGroupId), callback);
2314    }
2315    /**
2316     * see also {@link net.gdface.facelog.IFaceLog#getGroupPermitOnDeviceGroup(int,int)}
2317     */
2318    public ListenableFuture<PermitBean> getGroupPermitOnDeviceGroup(int deviceGroupId,
2319        int personGroupId){
2320        MethodCallback<PermitBean,net.gdface.facelog.client.thrift.PermitBean> nativeCallback = 
2321            new MethodCallback<PermitBean,net.gdface.facelog.client.thrift.PermitBean>(
2322                new Function<net.gdface.facelog.client.thrift.PermitBean,PermitBean>() {
2323                        @Override
2324                        public PermitBean apply(net.gdface.facelog.client.thrift.PermitBean input) {
2325                            return TypeTransformer.getInstance().to(
2326                    input,
2327                    net.gdface.facelog.client.thrift.PermitBean.class,
2328                    PermitBean.class);
2329                }});
2330        nativeCallback.service.getGroupPermitOnDeviceGroup(
2331                deviceGroupId,
2332            personGroupId,nativeCallback);
2333        return nativeCallback.feature;
2334    }
2335    public void getGroupPermitOnDeviceGroup(int deviceGroupId,
2336        int personGroupId,
2337        FutureCallback<PermitBean>callback){
2338        factory.addCallback(getGroupPermitOnDeviceGroup(deviceGroupId,personGroupId), callback);
2339    }
2340    /**
2341     * see also {@link net.gdface.facelog.IFaceLog#getGroupPermits(int,java.util.List)}
2342     */
2343    public ListenableFuture<List<PermitBean>> getGroupPermits(int deviceId,
2344        List<Integer> personGroupIdList){
2345        MethodCallback<List<PermitBean>,List<net.gdface.facelog.client.thrift.PermitBean>> nativeCallback = 
2346            new MethodCallback<List<PermitBean>,List<net.gdface.facelog.client.thrift.PermitBean>>(
2347                new Function<List<net.gdface.facelog.client.thrift.PermitBean>,List<PermitBean>>() {
2348                        @Override
2349                        public List<PermitBean> apply(List<net.gdface.facelog.client.thrift.PermitBean> input) {
2350                            return TypeTransformer.getInstance().to(
2351                    input,
2352                    net.gdface.facelog.client.thrift.PermitBean.class,
2353                    PermitBean.class);
2354                }});
2355        nativeCallback.service.getGroupPermits(
2356                deviceId,
2357            TypeTransformer.getInstance().to(
2358                    personGroupIdList,
2359                    Integer.class,
2360                    Integer.class),nativeCallback);
2361        return nativeCallback.feature;
2362    }
2363    public void getGroupPermits(int deviceId,
2364        List<Integer> personGroupIdList,
2365        FutureCallback<List<PermitBean>>callback){
2366        factory.addCallback(getGroupPermits(deviceId,personGroupIdList), callback);
2367    }
2368    /**
2369     * see also {@link net.gdface.facelog.IFaceLog#getImage(java.lang.String)}
2370     */
2371    public ListenableFuture<ImageBean> getImage(String imageMD5){
2372        MethodCallback<ImageBean,net.gdface.facelog.client.thrift.ImageBean> nativeCallback = 
2373            new MethodCallback<ImageBean,net.gdface.facelog.client.thrift.ImageBean>(
2374                new Function<net.gdface.facelog.client.thrift.ImageBean,ImageBean>() {
2375                        @Override
2376                        public ImageBean apply(net.gdface.facelog.client.thrift.ImageBean input) {
2377                            return TypeTransformer.getInstance().to(
2378                    input,
2379                    net.gdface.facelog.client.thrift.ImageBean.class,
2380                    ImageBean.class);
2381                }});
2382        nativeCallback.service.getImage(
2383                imageMD5,nativeCallback);
2384        return nativeCallback.feature;
2385    }
2386    public void getImage(String imageMD5,
2387        FutureCallback<ImageBean>callback){
2388        factory.addCallback(getImage(imageMD5), callback);
2389    }
2390    /**
2391     * see also {@link net.gdface.facelog.IFaceLog#getImage(java.lang.String,java.lang.String)}
2392     */
2393    public ListenableFuture<ImageBean> getImage(String primaryKey,
2394        String refType){
2395        MethodCallback<ImageBean,net.gdface.facelog.client.thrift.ImageBean> nativeCallback = 
2396            new MethodCallback<ImageBean,net.gdface.facelog.client.thrift.ImageBean>(
2397                new Function<net.gdface.facelog.client.thrift.ImageBean,ImageBean>() {
2398                        @Override
2399                        public ImageBean apply(net.gdface.facelog.client.thrift.ImageBean input) {
2400                            return TypeTransformer.getInstance().to(
2401                    input,
2402                    net.gdface.facelog.client.thrift.ImageBean.class,
2403                    ImageBean.class);
2404                }});
2405        nativeCallback.service.getImageRef(
2406                primaryKey,
2407            refType,nativeCallback);
2408        return nativeCallback.feature;
2409    }
2410    public void getImage(String primaryKey,
2411        String refType,
2412        FutureCallback<ImageBean>callback){
2413        factory.addCallback(getImage(primaryKey,refType), callback);
2414    }
2415    /**
2416     * see also {@link net.gdface.facelog.IFaceLog#getImageBytes(java.lang.String)}
2417     */
2418    public ListenableFuture<byte[]> getImageBytes(String imageMD5){
2419        MethodCallback<byte[],okio.ByteString> nativeCallback = 
2420            new MethodCallback<byte[],okio.ByteString>(
2421                new Function<okio.ByteString,byte[]>() {
2422                        @Override
2423                        public byte[] apply(okio.ByteString input) {
2424                            return TypeTransformer.getInstance().to(
2425                    input,
2426                    okio.ByteString.class,
2427                    byte[].class);
2428                }});
2429        nativeCallback.service.getImageBytes(
2430                imageMD5,nativeCallback);
2431        return nativeCallback.feature;
2432    }
2433    public void getImageBytes(String imageMD5,
2434        FutureCallback<byte[]>callback){
2435        factory.addCallback(getImageBytes(imageMD5), callback);
2436    }
2437    /**
2438     * see also {@link net.gdface.facelog.IFaceLog#getImageBytes(java.lang.String,java.lang.String)}
2439     */
2440    public ListenableFuture<byte[]> getImageBytes(String primaryKey,
2441        String refType){
2442        MethodCallback<byte[],okio.ByteString> nativeCallback = 
2443            new MethodCallback<byte[],okio.ByteString>(
2444                new Function<okio.ByteString,byte[]>() {
2445                        @Override
2446                        public byte[] apply(okio.ByteString input) {
2447                            return TypeTransformer.getInstance().to(
2448                    input,
2449                    okio.ByteString.class,
2450                    byte[].class);
2451                }});
2452        nativeCallback.service.getImageBytesRef(
2453                primaryKey,
2454            refType,nativeCallback);
2455        return nativeCallback.feature;
2456    }
2457    public void getImageBytes(String primaryKey,
2458        String refType,
2459        FutureCallback<byte[]>callback){
2460        factory.addCallback(getImageBytes(primaryKey,refType), callback);
2461    }
2462    /**
2463     * see also {@link net.gdface.facelog.IFaceLog#getImagesAssociatedByFeature(java.lang.String)}
2464     */
2465    public ListenableFuture<List<String>> getImagesAssociatedByFeature(String featureMd5){
2466        MethodCallback<List<String>,List<String>> nativeCallback = 
2467            new MethodCallback<List<String>,List<String>>(
2468                new Function<List<String>,List<String>>() {
2469                        @Override
2470                        public List<String> apply(List<String> input) {
2471                            return TypeTransformer.getInstance().to(
2472                    input,
2473                    String.class,
2474                    String.class);
2475                }});
2476        nativeCallback.service.getImagesAssociatedByFeature(
2477                featureMd5,nativeCallback);
2478        return nativeCallback.feature;
2479    }
2480    public void getImagesAssociatedByFeature(String featureMd5,
2481        FutureCallback<List<String>>callback){
2482        factory.addCallback(getImagesAssociatedByFeature(featureMd5), callback);
2483    }
2484    /**
2485     * see also {@link net.gdface.facelog.IFaceLog#getLogBeansByPersonId(int)}
2486     */
2487    public ListenableFuture<List<LogBean>> getLogBeansByPersonId(int personId){
2488        MethodCallback<List<LogBean>,List<net.gdface.facelog.client.thrift.LogBean>> nativeCallback = 
2489            new MethodCallback<List<LogBean>,List<net.gdface.facelog.client.thrift.LogBean>>(
2490                new Function<List<net.gdface.facelog.client.thrift.LogBean>,List<LogBean>>() {
2491                        @Override
2492                        public List<LogBean> apply(List<net.gdface.facelog.client.thrift.LogBean> input) {
2493                            return TypeTransformer.getInstance().to(
2494                    input,
2495                    net.gdface.facelog.client.thrift.LogBean.class,
2496                    LogBean.class);
2497                }});
2498        nativeCallback.service.getLogBeansByPersonId(
2499                personId,nativeCallback);
2500        return nativeCallback.feature;
2501    }
2502    public void getLogBeansByPersonId(int personId,
2503        FutureCallback<List<LogBean>>callback){
2504        factory.addCallback(getLogBeansByPersonId(personId), callback);
2505    }
2506    /**
2507     * see also {@link net.gdface.facelog.IFaceLog#getMessageQueueParameters(net.gdface.facelog.Token)}
2508     */
2509    public ListenableFuture<Map<MQParam, String>> getMessageQueueParameters(Token token){
2510        MethodCallback<Map<MQParam, String>,Map<net.gdface.facelog.client.thrift.MQParam,String>> nativeCallback = 
2511            new MethodCallback<Map<MQParam, String>,Map<net.gdface.facelog.client.thrift.MQParam,String>>(
2512                new Function<Map<net.gdface.facelog.client.thrift.MQParam,String>,Map<MQParam, String>>() {
2513                        @Override
2514                        public Map<MQParam, String> apply(Map<net.gdface.facelog.client.thrift.MQParam,String> input) {
2515                            return TypeTransformer.getInstance().to(
2516                    input,
2517                    net.gdface.facelog.client.thrift.MQParam.class,
2518                    String.class,
2519                    MQParam.class,
2520                    String.class);
2521                }});
2522        nativeCallback.service.getMessageQueueParameters(
2523                TypeTransformer.getInstance().to(
2524                    token,
2525                    Token.class,
2526                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
2527        return nativeCallback.feature;
2528    }
2529    public void getMessageQueueParameters(Token token,
2530        FutureCallback<Map<MQParam, String>>callback){
2531        factory.addCallback(getMessageQueueParameters(token), callback);
2532    }
2533    /**
2534     * see also {@link net.gdface.facelog.IFaceLog#getPerson(int)}
2535     */
2536    public ListenableFuture<PersonBean> getPerson(int personId){
2537        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
2538            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
2539                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
2540                        @Override
2541                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
2542                            return TypeTransformer.getInstance().to(
2543                    input,
2544                    net.gdface.facelog.client.thrift.PersonBean.class,
2545                    PersonBean.class);
2546                }});
2547        nativeCallback.service.getPerson(
2548                personId,nativeCallback);
2549        return nativeCallback.feature;
2550    }
2551    public void getPerson(int personId,
2552        FutureCallback<PersonBean>callback){
2553        factory.addCallback(getPerson(personId), callback);
2554    }
2555    /**
2556     * see also {@link net.gdface.facelog.IFaceLog#getPerson(int,net.gdface.facelog.Token)}
2557     */
2558    public ListenableFuture<PersonBean> getPerson(int personId,
2559        Token token){
2560        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
2561            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
2562                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
2563                        @Override
2564                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
2565                            return TypeTransformer.getInstance().to(
2566                    input,
2567                    net.gdface.facelog.client.thrift.PersonBean.class,
2568                    PersonBean.class);
2569                }});
2570        nativeCallback.service.getPersonReal(
2571                personId,
2572            TypeTransformer.getInstance().to(
2573                    token,
2574                    Token.class,
2575                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
2576        return nativeCallback.feature;
2577    }
2578    public void getPerson(int personId,
2579        Token token,
2580        FutureCallback<PersonBean>callback){
2581        factory.addCallback(getPerson(personId,token), callback);
2582    }
2583    /**
2584     * see also {@link net.gdface.facelog.IFaceLog#getPersonByMobilePhone(java.lang.String)}
2585     */
2586    public ListenableFuture<PersonBean> getPersonByMobilePhone(String mobilePhone){
2587        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
2588            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
2589                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
2590                        @Override
2591                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
2592                            return TypeTransformer.getInstance().to(
2593                    input,
2594                    net.gdface.facelog.client.thrift.PersonBean.class,
2595                    PersonBean.class);
2596                }});
2597        nativeCallback.service.getPersonByMobilePhone(
2598                mobilePhone,nativeCallback);
2599        return nativeCallback.feature;
2600    }
2601    public void getPersonByMobilePhone(String mobilePhone,
2602        FutureCallback<PersonBean>callback){
2603        factory.addCallback(getPersonByMobilePhone(mobilePhone), callback);
2604    }
2605    /**
2606     * see also {@link net.gdface.facelog.IFaceLog#getPersonByMobilePhone(java.lang.String,net.gdface.facelog.Token)}
2607     */
2608    public ListenableFuture<PersonBean> getPersonByMobilePhone(String mobilePhone,
2609        Token token){
2610        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
2611            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
2612                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
2613                        @Override
2614                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
2615                            return TypeTransformer.getInstance().to(
2616                    input,
2617                    net.gdface.facelog.client.thrift.PersonBean.class,
2618                    PersonBean.class);
2619                }});
2620        nativeCallback.service.getPersonByMobilePhoneReal(
2621                mobilePhone,
2622            TypeTransformer.getInstance().to(
2623                    token,
2624                    Token.class,
2625                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
2626        return nativeCallback.feature;
2627    }
2628    public void getPersonByMobilePhone(String mobilePhone,
2629        Token token,
2630        FutureCallback<PersonBean>callback){
2631        factory.addCallback(getPersonByMobilePhone(mobilePhone,token), callback);
2632    }
2633    /**
2634     * see also {@link net.gdface.facelog.IFaceLog#getPersonByPapersNum(java.lang.String)}
2635     */
2636    public ListenableFuture<PersonBean> getPersonByPapersNum(String papersNum){
2637        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
2638            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
2639                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
2640                        @Override
2641                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
2642                            return TypeTransformer.getInstance().to(
2643                    input,
2644                    net.gdface.facelog.client.thrift.PersonBean.class,
2645                    PersonBean.class);
2646                }});
2647        nativeCallback.service.getPersonByPapersNum(
2648                papersNum,nativeCallback);
2649        return nativeCallback.feature;
2650    }
2651    public void getPersonByPapersNum(String papersNum,
2652        FutureCallback<PersonBean>callback){
2653        factory.addCallback(getPersonByPapersNum(papersNum), callback);
2654    }
2655    /**
2656     * see also {@link net.gdface.facelog.IFaceLog#getPersonByPapersNum(java.lang.String,net.gdface.facelog.Token)}
2657     */
2658    public ListenableFuture<PersonBean> getPersonByPapersNum(String papersNum,
2659        Token token){
2660        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
2661            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
2662                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
2663                        @Override
2664                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
2665                            return TypeTransformer.getInstance().to(
2666                    input,
2667                    net.gdface.facelog.client.thrift.PersonBean.class,
2668                    PersonBean.class);
2669                }});
2670        nativeCallback.service.getPersonByPapersNumReal(
2671                papersNum,
2672            TypeTransformer.getInstance().to(
2673                    token,
2674                    Token.class,
2675                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
2676        return nativeCallback.feature;
2677    }
2678    public void getPersonByPapersNum(String papersNum,
2679        Token token,
2680        FutureCallback<PersonBean>callback){
2681        factory.addCallback(getPersonByPapersNum(papersNum,token), callback);
2682    }
2683    /**
2684     * see also {@link net.gdface.facelog.IFaceLog#getPersonGroup(int)}
2685     */
2686    public ListenableFuture<PersonGroupBean> getPersonGroup(int personGroupId){
2687        MethodCallback<PersonGroupBean,net.gdface.facelog.client.thrift.PersonGroupBean> nativeCallback = 
2688            new MethodCallback<PersonGroupBean,net.gdface.facelog.client.thrift.PersonGroupBean>(
2689                new Function<net.gdface.facelog.client.thrift.PersonGroupBean,PersonGroupBean>() {
2690                        @Override
2691                        public PersonGroupBean apply(net.gdface.facelog.client.thrift.PersonGroupBean input) {
2692                            return TypeTransformer.getInstance().to(
2693                    input,
2694                    net.gdface.facelog.client.thrift.PersonGroupBean.class,
2695                    PersonGroupBean.class);
2696                }});
2697        nativeCallback.service.getPersonGroup(
2698                personGroupId,nativeCallback);
2699        return nativeCallback.feature;
2700    }
2701    public void getPersonGroup(int personGroupId,
2702        FutureCallback<PersonGroupBean>callback){
2703        factory.addCallback(getPersonGroup(personGroupId), callback);
2704    }
2705    /**
2706     * see also {@link net.gdface.facelog.IFaceLog#getPersonGroups(java.util.List)}
2707     */
2708    public ListenableFuture<List<PersonGroupBean>> getPersonGroups(List<Integer> groupIdList){
2709        MethodCallback<List<PersonGroupBean>,List<net.gdface.facelog.client.thrift.PersonGroupBean>> nativeCallback = 
2710            new MethodCallback<List<PersonGroupBean>,List<net.gdface.facelog.client.thrift.PersonGroupBean>>(
2711                new Function<List<net.gdface.facelog.client.thrift.PersonGroupBean>,List<PersonGroupBean>>() {
2712                        @Override
2713                        public List<PersonGroupBean> apply(List<net.gdface.facelog.client.thrift.PersonGroupBean> input) {
2714                            return TypeTransformer.getInstance().to(
2715                    input,
2716                    net.gdface.facelog.client.thrift.PersonGroupBean.class,
2717                    PersonGroupBean.class);
2718                }});
2719        nativeCallback.service.getPersonGroups(
2720                TypeTransformer.getInstance().to(
2721                    groupIdList,
2722                    Integer.class,
2723                    Integer.class),nativeCallback);
2724        return nativeCallback.feature;
2725    }
2726    public void getPersonGroups(List<Integer> groupIdList,
2727        FutureCallback<List<PersonGroupBean>>callback){
2728        factory.addCallback(getPersonGroups(groupIdList), callback);
2729    }
2730    /**
2731     * see also {@link net.gdface.facelog.IFaceLog#getPersonGroupsBelongs(int)}
2732     */
2733    public ListenableFuture<List<Integer>> getPersonGroupsBelongs(int personId){
2734        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
2735            new MethodCallback<List<Integer>,List<Integer>>(
2736                new Function<List<Integer>,List<Integer>>() {
2737                        @Override
2738                        public List<Integer> apply(List<Integer> input) {
2739                            return TypeTransformer.getInstance().to(
2740                    input,
2741                    Integer.class,
2742                    Integer.class);
2743                }});
2744        nativeCallback.service.getPersonGroupsBelongs(
2745                personId,nativeCallback);
2746        return nativeCallback.feature;
2747    }
2748    public void getPersonGroupsBelongs(int personId,
2749        FutureCallback<List<Integer>>callback){
2750        factory.addCallback(getPersonGroupsBelongs(personId), callback);
2751    }
2752    /**
2753     * see also {@link net.gdface.facelog.IFaceLog#getPersonGroupsPermittedBy(int)}
2754     */
2755    public ListenableFuture<List<Integer>> getPersonGroupsPermittedBy(int deviceGroupId){
2756        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
2757            new MethodCallback<List<Integer>,List<Integer>>(
2758                new Function<List<Integer>,List<Integer>>() {
2759                        @Override
2760                        public List<Integer> apply(List<Integer> input) {
2761                            return TypeTransformer.getInstance().to(
2762                    input,
2763                    Integer.class,
2764                    Integer.class);
2765                }});
2766        nativeCallback.service.getPersonGroupsPermittedBy(
2767                deviceGroupId,nativeCallback);
2768        return nativeCallback.feature;
2769    }
2770    public void getPersonGroupsPermittedBy(int deviceGroupId,
2771        FutureCallback<List<Integer>>callback){
2772        factory.addCallback(getPersonGroupsPermittedBy(deviceGroupId), callback);
2773    }
2774    /**
2775     * see also {@link net.gdface.facelog.IFaceLog#getPersonPermit(int,int)}
2776     */
2777    public ListenableFuture<PermitBean> getPersonPermit(int deviceId,
2778        int personId){
2779        MethodCallback<PermitBean,net.gdface.facelog.client.thrift.PermitBean> nativeCallback = 
2780            new MethodCallback<PermitBean,net.gdface.facelog.client.thrift.PermitBean>(
2781                new Function<net.gdface.facelog.client.thrift.PermitBean,PermitBean>() {
2782                        @Override
2783                        public PermitBean apply(net.gdface.facelog.client.thrift.PermitBean input) {
2784                            return TypeTransformer.getInstance().to(
2785                    input,
2786                    net.gdface.facelog.client.thrift.PermitBean.class,
2787                    PermitBean.class);
2788                }});
2789        nativeCallback.service.getPersonPermit(
2790                deviceId,
2791            personId,nativeCallback);
2792        return nativeCallback.feature;
2793    }
2794    public void getPersonPermit(int deviceId,
2795        int personId,
2796        FutureCallback<PermitBean>callback){
2797        factory.addCallback(getPersonPermit(deviceId,personId), callback);
2798    }
2799    /**
2800     * see also {@link net.gdface.facelog.IFaceLog#getPersonPermits(int,java.util.List)}
2801     */
2802    public ListenableFuture<List<PermitBean>> getPersonPermits(int deviceId,
2803        List<Integer> personIdList){
2804        MethodCallback<List<PermitBean>,List<net.gdface.facelog.client.thrift.PermitBean>> nativeCallback = 
2805            new MethodCallback<List<PermitBean>,List<net.gdface.facelog.client.thrift.PermitBean>>(
2806                new Function<List<net.gdface.facelog.client.thrift.PermitBean>,List<PermitBean>>() {
2807                        @Override
2808                        public List<PermitBean> apply(List<net.gdface.facelog.client.thrift.PermitBean> input) {
2809                            return TypeTransformer.getInstance().to(
2810                    input,
2811                    net.gdface.facelog.client.thrift.PermitBean.class,
2812                    PermitBean.class);
2813                }});
2814        nativeCallback.service.getPersonPermits(
2815                deviceId,
2816            TypeTransformer.getInstance().to(
2817                    personIdList,
2818                    Integer.class,
2819                    Integer.class),nativeCallback);
2820        return nativeCallback.feature;
2821    }
2822    public void getPersonPermits(int deviceId,
2823        List<Integer> personIdList,
2824        FutureCallback<List<PermitBean>>callback){
2825        factory.addCallback(getPersonPermits(deviceId,personIdList), callback);
2826    }
2827    /**
2828     * see also {@link net.gdface.facelog.IFaceLog#getPersons(java.util.List)}
2829     */
2830    public ListenableFuture<List<PersonBean>> getPersons(List<Integer> idList){
2831        MethodCallback<List<PersonBean>,List<net.gdface.facelog.client.thrift.PersonBean>> nativeCallback = 
2832            new MethodCallback<List<PersonBean>,List<net.gdface.facelog.client.thrift.PersonBean>>(
2833                new Function<List<net.gdface.facelog.client.thrift.PersonBean>,List<PersonBean>>() {
2834                        @Override
2835                        public List<PersonBean> apply(List<net.gdface.facelog.client.thrift.PersonBean> input) {
2836                            return TypeTransformer.getInstance().to(
2837                    input,
2838                    net.gdface.facelog.client.thrift.PersonBean.class,
2839                    PersonBean.class);
2840                }});
2841        nativeCallback.service.getPersons(
2842                TypeTransformer.getInstance().to(
2843                    idList,
2844                    Integer.class,
2845                    Integer.class),nativeCallback);
2846        return nativeCallback.feature;
2847    }
2848    public void getPersons(List<Integer> idList,
2849        FutureCallback<List<PersonBean>>callback){
2850        factory.addCallback(getPersons(idList), callback);
2851    }
2852    /**
2853     * see also {@link net.gdface.facelog.IFaceLog#getPersons(java.util.List,net.gdface.facelog.Token)}
2854     */
2855    public ListenableFuture<List<PersonBean>> getPersons(List<Integer> idList,
2856        Token token){
2857        MethodCallback<List<PersonBean>,List<net.gdface.facelog.client.thrift.PersonBean>> nativeCallback = 
2858            new MethodCallback<List<PersonBean>,List<net.gdface.facelog.client.thrift.PersonBean>>(
2859                new Function<List<net.gdface.facelog.client.thrift.PersonBean>,List<PersonBean>>() {
2860                        @Override
2861                        public List<PersonBean> apply(List<net.gdface.facelog.client.thrift.PersonBean> input) {
2862                            return TypeTransformer.getInstance().to(
2863                    input,
2864                    net.gdface.facelog.client.thrift.PersonBean.class,
2865                    PersonBean.class);
2866                }});
2867        nativeCallback.service.getPersonsReal(
2868                TypeTransformer.getInstance().to(
2869                    idList,
2870                    Integer.class,
2871                    Integer.class),
2872            TypeTransformer.getInstance().to(
2873                    token,
2874                    Token.class,
2875                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
2876        return nativeCallback.feature;
2877    }
2878    public void getPersons(List<Integer> idList,
2879        Token token,
2880        FutureCallback<List<PersonBean>>callback){
2881        factory.addCallback(getPersons(idList,token), callback);
2882    }
2883    /**
2884     * see also {@link net.gdface.facelog.IFaceLog#getPersonsOfGroup(int)}
2885     */
2886    public ListenableFuture<List<Integer>> getPersonsOfGroup(int personGroupId){
2887        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
2888            new MethodCallback<List<Integer>,List<Integer>>(
2889                new Function<List<Integer>,List<Integer>>() {
2890                        @Override
2891                        public List<Integer> apply(List<Integer> input) {
2892                            return TypeTransformer.getInstance().to(
2893                    input,
2894                    Integer.class,
2895                    Integer.class);
2896                }});
2897        nativeCallback.service.getPersonsOfGroup(
2898                personGroupId,nativeCallback);
2899        return nativeCallback.feature;
2900    }
2901    public void getPersonsOfGroup(int personGroupId,
2902        FutureCallback<List<Integer>>callback){
2903        factory.addCallback(getPersonsOfGroup(personGroupId), callback);
2904    }
2905    /**
2906     * see also {@link net.gdface.facelog.IFaceLog#getPersonsPermittedOnDevice(int,boolean,java.util.List,java.lang.Long)}
2907     */
2908    public ListenableFuture<List<Integer>> getPersonsPermittedOnDevice(int deviceId,
2909        boolean ignoreSchedule,
2910        List<Integer> excludePersonIds,
2911        Long timestamp){
2912        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
2913            new MethodCallback<List<Integer>,List<Integer>>(
2914                new Function<List<Integer>,List<Integer>>() {
2915                        @Override
2916                        public List<Integer> apply(List<Integer> input) {
2917                            return TypeTransformer.getInstance().to(
2918                    input,
2919                    Integer.class,
2920                    Integer.class);
2921                }});
2922        nativeCallback.service.getPersonsPermittedOnDevice(
2923                deviceId,
2924            ignoreSchedule,
2925            TypeTransformer.getInstance().to(
2926                    excludePersonIds,
2927                    Integer.class,
2928                    Integer.class),
2929            timestamp,nativeCallback);
2930        return nativeCallback.feature;
2931    }
2932    public void getPersonsPermittedOnDevice(int deviceId,
2933        boolean ignoreSchedule,
2934        List<Integer> excludePersonIds,
2935        Long timestamp,
2936        FutureCallback<List<Integer>>callback){
2937        factory.addCallback(getPersonsPermittedOnDevice(deviceId,ignoreSchedule,excludePersonIds,timestamp), callback);
2938    }
2939    /**
2940     * see also {@link net.gdface.facelog.IFaceLog#getProperties(java.lang.String,net.gdface.facelog.Token)}
2941     */
2942    public ListenableFuture<Map<String, String>> getProperties(String prefix,
2943        Token token){
2944        MethodCallback<Map<String, String>,Map<String,String>> nativeCallback = 
2945            new MethodCallback<Map<String, String>,Map<String,String>>(
2946                new Function<Map<String,String>,Map<String, String>>() {
2947                        @Override
2948                        public Map<String, String> apply(Map<String,String> input) {
2949                            return TypeTransformer.getInstance().to(
2950                    input,
2951                    String.class,
2952                    String.class,
2953                    String.class,
2954                    String.class);
2955                }});
2956        nativeCallback.service.getProperties(
2957                prefix,
2958            TypeTransformer.getInstance().to(
2959                    token,
2960                    Token.class,
2961                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
2962        return nativeCallback.feature;
2963    }
2964    public void getProperties(String prefix,
2965        Token token,
2966        FutureCallback<Map<String, String>>callback){
2967        factory.addCallback(getProperties(prefix,token), callback);
2968    }
2969    /**
2970     * see also {@link net.gdface.facelog.IFaceLog#getProperty(java.lang.String,net.gdface.facelog.Token)}
2971     */
2972    public ListenableFuture<String> getProperty(String key,
2973        Token token){
2974        MethodCallback<String,String> nativeCallback = 
2975            new MethodCallback<String,String>(
2976                new Function<String,String>() {
2977                        @Override
2978                        public String apply(String input) {
2979                            return input;
2980                }});
2981        nativeCallback.service.getProperty(
2982                key,
2983            TypeTransformer.getInstance().to(
2984                    token,
2985                    Token.class,
2986                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
2987        return nativeCallback.feature;
2988    }
2989    public void getProperty(String key,
2990        Token token,
2991        FutureCallback<String>callback){
2992        factory.addCallback(getProperty(key,token), callback);
2993    }
2994    /**
2995     * see also {@link net.gdface.facelog.IFaceLog#getRedisParameters(net.gdface.facelog.Token)}
2996     */
2997    public ListenableFuture<Map<MQParam, String>> getRedisParameters(Token token){
2998        MethodCallback<Map<MQParam, String>,Map<net.gdface.facelog.client.thrift.MQParam,String>> nativeCallback = 
2999            new MethodCallback<Map<MQParam, String>,Map<net.gdface.facelog.client.thrift.MQParam,String>>(
3000                new Function<Map<net.gdface.facelog.client.thrift.MQParam,String>,Map<MQParam, String>>() {
3001                        @Override
3002                        public Map<MQParam, String> apply(Map<net.gdface.facelog.client.thrift.MQParam,String> input) {
3003                            return TypeTransformer.getInstance().to(
3004                    input,
3005                    net.gdface.facelog.client.thrift.MQParam.class,
3006                    String.class,
3007                    MQParam.class,
3008                    String.class);
3009                }});
3010        nativeCallback.service.getRedisParameters(
3011                TypeTransformer.getInstance().to(
3012                    token,
3013                    Token.class,
3014                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
3015        return nativeCallback.feature;
3016    }
3017    public void getRedisParameters(Token token,
3018        FutureCallback<Map<MQParam, String>>callback){
3019        factory.addCallback(getRedisParameters(token), callback);
3020    }
3021    /**
3022     * see also {@link net.gdface.facelog.IFaceLog#getServiceConfig(net.gdface.facelog.Token)}
3023     */
3024    public ListenableFuture<Map<String, String>> getServiceConfig(Token token){
3025        MethodCallback<Map<String, String>,Map<String,String>> nativeCallback = 
3026            new MethodCallback<Map<String, String>,Map<String,String>>(
3027                new Function<Map<String,String>,Map<String, String>>() {
3028                        @Override
3029                        public Map<String, String> apply(Map<String,String> input) {
3030                            return TypeTransformer.getInstance().to(
3031                    input,
3032                    String.class,
3033                    String.class,
3034                    String.class,
3035                    String.class);
3036                }});
3037        nativeCallback.service.getServiceConfig(
3038                TypeTransformer.getInstance().to(
3039                    token,
3040                    Token.class,
3041                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
3042        return nativeCallback.feature;
3043    }
3044    public void getServiceConfig(Token token,
3045        FutureCallback<Map<String, String>>callback){
3046        factory.addCallback(getServiceConfig(token), callback);
3047    }
3048    /**
3049     * see also {@link net.gdface.facelog.IFaceLog#getSubDeviceGroup(int)}
3050     */
3051    public ListenableFuture<List<Integer>> getSubDeviceGroup(int deviceGroupId){
3052        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3053            new MethodCallback<List<Integer>,List<Integer>>(
3054                new Function<List<Integer>,List<Integer>>() {
3055                        @Override
3056                        public List<Integer> apply(List<Integer> input) {
3057                            return TypeTransformer.getInstance().to(
3058                    input,
3059                    Integer.class,
3060                    Integer.class);
3061                }});
3062        nativeCallback.service.getSubDeviceGroup(
3063                deviceGroupId,nativeCallback);
3064        return nativeCallback.feature;
3065    }
3066    public void getSubDeviceGroup(int deviceGroupId,
3067        FutureCallback<List<Integer>>callback){
3068        factory.addCallback(getSubDeviceGroup(deviceGroupId), callback);
3069    }
3070    /**
3071     * see also {@link net.gdface.facelog.IFaceLog#getSubPersonGroup(int)}
3072     */
3073    public ListenableFuture<List<Integer>> getSubPersonGroup(int personGroupId){
3074        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3075            new MethodCallback<List<Integer>,List<Integer>>(
3076                new Function<List<Integer>,List<Integer>>() {
3077                        @Override
3078                        public List<Integer> apply(List<Integer> input) {
3079                            return TypeTransformer.getInstance().to(
3080                    input,
3081                    Integer.class,
3082                    Integer.class);
3083                }});
3084        nativeCallback.service.getSubPersonGroup(
3085                personGroupId,nativeCallback);
3086        return nativeCallback.feature;
3087    }
3088    public void getSubPersonGroup(int personGroupId,
3089        FutureCallback<List<Integer>>callback){
3090        factory.addCallback(getSubPersonGroup(personGroupId), callback);
3091    }
3092    /**
3093     * see also {@link net.gdface.facelog.IFaceLog#getTargetInfo4PwdOnDevice(java.lang.String,net.gdface.facelog.Token)}
3094     */
3095    public ListenableFuture<TmpwdTargetInfo> getTargetInfo4PwdOnDevice(String pwd,
3096        Token token){
3097        MethodCallback<TmpwdTargetInfo,net.gdface.facelog.client.thrift.TmpwdTargetInfo> nativeCallback = 
3098            new MethodCallback<TmpwdTargetInfo,net.gdface.facelog.client.thrift.TmpwdTargetInfo>(
3099                new Function<net.gdface.facelog.client.thrift.TmpwdTargetInfo,TmpwdTargetInfo>() {
3100                        @Override
3101                        public TmpwdTargetInfo apply(net.gdface.facelog.client.thrift.TmpwdTargetInfo input) {
3102                            return TypeTransformer.getInstance().to(
3103                    input,
3104                    net.gdface.facelog.client.thrift.TmpwdTargetInfo.class,
3105                    TmpwdTargetInfo.class);
3106                }});
3107        nativeCallback.service.getTargetInfo4PwdOnDevice(
3108                pwd,
3109            TypeTransformer.getInstance().to(
3110                    token,
3111                    Token.class,
3112                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
3113        return nativeCallback.feature;
3114    }
3115    public void getTargetInfo4PwdOnDevice(String pwd,
3116        Token token,
3117        FutureCallback<TmpwdTargetInfo>callback){
3118        factory.addCallback(getTargetInfo4PwdOnDevice(pwd,token), callback);
3119    }
3120    /**
3121     * see also {@link net.gdface.facelog.IFaceLog#initTopGroup(net.gdface.facelog.TopGroupInfo,net.gdface.facelog.Token)}
3122     */
3123    public ListenableFuture<Integer> initTopGroup(TopGroupInfo groupInfo,
3124        Token token){
3125        MethodCallback<Integer,Integer> nativeCallback = 
3126            new MethodCallback<Integer,Integer>(
3127                new Function<Integer,Integer>() {
3128                        @Override
3129                        public Integer apply(Integer input) {
3130                            return input;
3131                }});
3132        nativeCallback.service.initTopGroup(
3133                TypeTransformer.getInstance().to(
3134                    groupInfo,
3135                    TopGroupInfo.class,
3136                    net.gdface.facelog.client.thrift.TopGroupInfo.class),
3137            TypeTransformer.getInstance().to(
3138                    token,
3139                    Token.class,
3140                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
3141        return nativeCallback.feature;
3142    }
3143    public void initTopGroup(TopGroupInfo groupInfo,
3144        Token token,
3145        FutureCallback<Integer>callback){
3146        factory.addCallback(initTopGroup(groupInfo,token), callback);
3147    }
3148    /**
3149     * see also {@link net.gdface.facelog.IFaceLog#isDisable(int)}
3150     */
3151    public ListenableFuture<Boolean> isDisable(int personId){
3152        MethodCallback<Boolean,Boolean> nativeCallback = 
3153            new MethodCallback<Boolean,Boolean>(
3154                new Function<Boolean,Boolean>() {
3155                        @Override
3156                        public Boolean apply(Boolean input) {
3157                            return input;
3158                }});
3159        nativeCallback.service.isDisable(
3160                personId,nativeCallback);
3161        return nativeCallback.feature;
3162    }
3163    public void isDisable(int personId,
3164        FutureCallback<Boolean>callback){
3165        factory.addCallback(isDisable(personId), callback);
3166    }
3167    /**
3168     * see also {@link net.gdface.facelog.IFaceLog#isLocal()}
3169     */
3170    public boolean isLocal(){
3171        return false;
3172    }
3173    /**
3174     * see also {@link net.gdface.facelog.IFaceLog#isValidAckChannel(java.lang.String)}
3175     */
3176    public ListenableFuture<Boolean> isValidAckChannel(String ackChannel){
3177        MethodCallback<Boolean,Boolean> nativeCallback = 
3178            new MethodCallback<Boolean,Boolean>(
3179                new Function<Boolean,Boolean>() {
3180                        @Override
3181                        public Boolean apply(Boolean input) {
3182                            return input;
3183                }});
3184        nativeCallback.service.isValidAckChannel(
3185                ackChannel,nativeCallback);
3186        return nativeCallback.feature;
3187    }
3188    public void isValidAckChannel(String ackChannel,
3189        FutureCallback<Boolean>callback){
3190        factory.addCallback(isValidAckChannel(ackChannel), callback);
3191    }
3192    /**
3193     * see also {@link net.gdface.facelog.IFaceLog#isValidCmdSn(int)}
3194     */
3195    public ListenableFuture<Boolean> isValidCmdSn(int cmdSn){
3196        MethodCallback<Boolean,Boolean> nativeCallback = 
3197            new MethodCallback<Boolean,Boolean>(
3198                new Function<Boolean,Boolean>() {
3199                        @Override
3200                        public Boolean apply(Boolean input) {
3201                            return input;
3202                }});
3203        nativeCallback.service.isValidCmdSn(
3204                cmdSn,nativeCallback);
3205        return nativeCallback.feature;
3206    }
3207    public void isValidCmdSn(int cmdSn,
3208        FutureCallback<Boolean>callback){
3209        factory.addCallback(isValidCmdSn(cmdSn), callback);
3210    }
3211    /**
3212     * see also {@link net.gdface.facelog.IFaceLog#isValidDeviceToken(net.gdface.facelog.Token)}
3213     */
3214    public ListenableFuture<Boolean> isValidDeviceToken(Token token){
3215        MethodCallback<Boolean,Boolean> nativeCallback = 
3216            new MethodCallback<Boolean,Boolean>(
3217                new Function<Boolean,Boolean>() {
3218                        @Override
3219                        public Boolean apply(Boolean input) {
3220                            return input;
3221                }});
3222        nativeCallback.service.isValidDeviceToken(
3223                TypeTransformer.getInstance().to(
3224                    token,
3225                    Token.class,
3226                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
3227        return nativeCallback.feature;
3228    }
3229    public void isValidDeviceToken(Token token,
3230        FutureCallback<Boolean>callback){
3231        factory.addCallback(isValidDeviceToken(token), callback);
3232    }
3233    /**
3234     * see also {@link net.gdface.facelog.IFaceLog#isValidPassword(java.lang.String,java.lang.String,boolean)}
3235     */
3236    public ListenableFuture<Boolean> isValidPassword(String userId,
3237        String password,
3238        boolean isMd5){
3239        MethodCallback<Boolean,Boolean> nativeCallback = 
3240            new MethodCallback<Boolean,Boolean>(
3241                new Function<Boolean,Boolean>() {
3242                        @Override
3243                        public Boolean apply(Boolean input) {
3244                            return input;
3245                }});
3246        nativeCallback.service.isValidPassword(
3247                userId,
3248            password,
3249            isMd5,nativeCallback);
3250        return nativeCallback.feature;
3251    }
3252    public void isValidPassword(String userId,
3253        String password,
3254        boolean isMd5,
3255        FutureCallback<Boolean>callback){
3256        factory.addCallback(isValidPassword(userId,password,isMd5), callback);
3257    }
3258    /**
3259     * see also {@link net.gdface.facelog.IFaceLog#isValidPersonToken(net.gdface.facelog.Token)}
3260     */
3261    public ListenableFuture<Boolean> isValidPersonToken(Token token){
3262        MethodCallback<Boolean,Boolean> nativeCallback = 
3263            new MethodCallback<Boolean,Boolean>(
3264                new Function<Boolean,Boolean>() {
3265                        @Override
3266                        public Boolean apply(Boolean input) {
3267                            return input;
3268                }});
3269        nativeCallback.service.isValidPersonToken(
3270                TypeTransformer.getInstance().to(
3271                    token,
3272                    Token.class,
3273                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
3274        return nativeCallback.feature;
3275    }
3276    public void isValidPersonToken(Token token,
3277        FutureCallback<Boolean>callback){
3278        factory.addCallback(isValidPersonToken(token), callback);
3279    }
3280    /**
3281     * see also {@link net.gdface.facelog.IFaceLog#isValidRootToken(net.gdface.facelog.Token)}
3282     */
3283    public ListenableFuture<Boolean> isValidRootToken(Token token){
3284        MethodCallback<Boolean,Boolean> nativeCallback = 
3285            new MethodCallback<Boolean,Boolean>(
3286                new Function<Boolean,Boolean>() {
3287                        @Override
3288                        public Boolean apply(Boolean input) {
3289                            return input;
3290                }});
3291        nativeCallback.service.isValidRootToken(
3292                TypeTransformer.getInstance().to(
3293                    token,
3294                    Token.class,
3295                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
3296        return nativeCallback.feature;
3297    }
3298    public void isValidRootToken(Token token,
3299        FutureCallback<Boolean>callback){
3300        factory.addCallback(isValidRootToken(token), callback);
3301    }
3302    /**
3303     * see also {@link net.gdface.facelog.IFaceLog#isValidToken(net.gdface.facelog.Token)}
3304     */
3305    public ListenableFuture<Boolean> isValidToken(Token token){
3306        MethodCallback<Boolean,Boolean> nativeCallback = 
3307            new MethodCallback<Boolean,Boolean>(
3308                new Function<Boolean,Boolean>() {
3309                        @Override
3310                        public Boolean apply(Boolean input) {
3311                            return input;
3312                }});
3313        nativeCallback.service.isValidToken(
3314                TypeTransformer.getInstance().to(
3315                    token,
3316                    Token.class,
3317                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
3318        return nativeCallback.feature;
3319    }
3320    public void isValidToken(Token token,
3321        FutureCallback<Boolean>callback){
3322        factory.addCallback(isValidToken(token), callback);
3323    }
3324    /**
3325     * see also {@link net.gdface.facelog.IFaceLog#isValidUserToken(net.gdface.facelog.Token)}
3326     */
3327    public ListenableFuture<Boolean> isValidUserToken(Token token){
3328        MethodCallback<Boolean,Boolean> nativeCallback = 
3329            new MethodCallback<Boolean,Boolean>(
3330                new Function<Boolean,Boolean>() {
3331                        @Override
3332                        public Boolean apply(Boolean input) {
3333                            return input;
3334                }});
3335        nativeCallback.service.isValidUserToken(
3336                TypeTransformer.getInstance().to(
3337                    token,
3338                    Token.class,
3339                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
3340        return nativeCallback.feature;
3341    }
3342    public void isValidUserToken(Token token,
3343        FutureCallback<Boolean>callback){
3344        factory.addCallback(isValidUserToken(token), callback);
3345    }
3346    /**
3347     * see also {@link net.gdface.facelog.IFaceLog#iso8601Time()}
3348     */
3349    public ListenableFuture<String> iso8601Time(){
3350        MethodCallback<String,String> nativeCallback = 
3351            new MethodCallback<String,String>(
3352                new Function<String,String>() {
3353                        @Override
3354                        public String apply(String input) {
3355                            return input;
3356                }});
3357        nativeCallback.service.iso8601Time(
3358                nativeCallback);
3359        return nativeCallback.feature;
3360    }
3361    public void iso8601Time(FutureCallback<String>callback){
3362        factory.addCallback(iso8601Time(), callback);
3363    }
3364    /**
3365     * see also {@link net.gdface.facelog.IFaceLog#listOfParentForDeviceGroup(int)}
3366     */
3367    public ListenableFuture<List<Integer>> listOfParentForDeviceGroup(int deviceGroupId){
3368        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3369            new MethodCallback<List<Integer>,List<Integer>>(
3370                new Function<List<Integer>,List<Integer>>() {
3371                        @Override
3372                        public List<Integer> apply(List<Integer> input) {
3373                            return TypeTransformer.getInstance().to(
3374                    input,
3375                    Integer.class,
3376                    Integer.class);
3377                }});
3378        nativeCallback.service.listOfParentForDeviceGroup(
3379                deviceGroupId,nativeCallback);
3380        return nativeCallback.feature;
3381    }
3382    public void listOfParentForDeviceGroup(int deviceGroupId,
3383        FutureCallback<List<Integer>>callback){
3384        factory.addCallback(listOfParentForDeviceGroup(deviceGroupId), callback);
3385    }
3386    /**
3387     * see also {@link net.gdface.facelog.IFaceLog#listOfParentForPersonGroup(int)}
3388     */
3389    public ListenableFuture<List<Integer>> listOfParentForPersonGroup(int personGroupId){
3390        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3391            new MethodCallback<List<Integer>,List<Integer>>(
3392                new Function<List<Integer>,List<Integer>>() {
3393                        @Override
3394                        public List<Integer> apply(List<Integer> input) {
3395                            return TypeTransformer.getInstance().to(
3396                    input,
3397                    Integer.class,
3398                    Integer.class);
3399                }});
3400        nativeCallback.service.listOfParentForPersonGroup(
3401                personGroupId,nativeCallback);
3402        return nativeCallback.feature;
3403    }
3404    public void listOfParentForPersonGroup(int personGroupId,
3405        FutureCallback<List<Integer>>callback){
3406        factory.addCallback(listOfParentForPersonGroup(personGroupId), callback);
3407    }
3408    /**
3409     * see also {@link net.gdface.facelog.IFaceLog#loadAllPerson()}
3410     */
3411    public ListenableFuture<List<Integer>> loadAllPerson(){
3412        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3413            new MethodCallback<List<Integer>,List<Integer>>(
3414                new Function<List<Integer>,List<Integer>>() {
3415                        @Override
3416                        public List<Integer> apply(List<Integer> input) {
3417                            return TypeTransformer.getInstance().to(
3418                    input,
3419                    Integer.class,
3420                    Integer.class);
3421                }});
3422        nativeCallback.service.loadAllPerson(
3423                nativeCallback);
3424        return nativeCallback.feature;
3425    }
3426    public void loadAllPerson(FutureCallback<List<Integer>>callback){
3427        factory.addCallback(loadAllPerson(), callback);
3428    }
3429    /**
3430     * see also {@link net.gdface.facelog.IFaceLog#loadDeviceByWhere(java.lang.String,int,int)}
3431     */
3432    public ListenableFuture<List<DeviceBean>> loadDeviceByWhere(String where,
3433        int startRow,
3434        int numRows){
3435        MethodCallback<List<DeviceBean>,List<net.gdface.facelog.client.thrift.DeviceBean>> nativeCallback = 
3436            new MethodCallback<List<DeviceBean>,List<net.gdface.facelog.client.thrift.DeviceBean>>(
3437                new Function<List<net.gdface.facelog.client.thrift.DeviceBean>,List<DeviceBean>>() {
3438                        @Override
3439                        public List<DeviceBean> apply(List<net.gdface.facelog.client.thrift.DeviceBean> input) {
3440                            return TypeTransformer.getInstance().to(
3441                    input,
3442                    net.gdface.facelog.client.thrift.DeviceBean.class,
3443                    DeviceBean.class);
3444                }});
3445        nativeCallback.service.loadDeviceByWhere(
3446                where,
3447            startRow,
3448            numRows,nativeCallback);
3449        return nativeCallback.feature;
3450    }
3451    public void loadDeviceByWhere(String where,
3452        int startRow,
3453        int numRows,
3454        FutureCallback<List<DeviceBean>>callback){
3455        factory.addCallback(loadDeviceByWhere(where,startRow,numRows), callback);
3456    }
3457    /**
3458     * see also {@link net.gdface.facelog.IFaceLog#loadDeviceGroupByWhere(java.lang.String,int,int)}
3459     */
3460    public ListenableFuture<List<Integer>> loadDeviceGroupByWhere(String where,
3461        int startRow,
3462        int numRows){
3463        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3464            new MethodCallback<List<Integer>,List<Integer>>(
3465                new Function<List<Integer>,List<Integer>>() {
3466                        @Override
3467                        public List<Integer> apply(List<Integer> input) {
3468                            return TypeTransformer.getInstance().to(
3469                    input,
3470                    Integer.class,
3471                    Integer.class);
3472                }});
3473        nativeCallback.service.loadDeviceGroupByWhere(
3474                where,
3475            startRow,
3476            numRows,nativeCallback);
3477        return nativeCallback.feature;
3478    }
3479    public void loadDeviceGroupByWhere(String where,
3480        int startRow,
3481        int numRows,
3482        FutureCallback<List<Integer>>callback){
3483        factory.addCallback(loadDeviceGroupByWhere(where,startRow,numRows), callback);
3484    }
3485    /**
3486     * see also {@link net.gdface.facelog.IFaceLog#loadDeviceGroupIdByWhere(java.lang.String)}
3487     */
3488    public ListenableFuture<List<Integer>> loadDeviceGroupIdByWhere(String where){
3489        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3490            new MethodCallback<List<Integer>,List<Integer>>(
3491                new Function<List<Integer>,List<Integer>>() {
3492                        @Override
3493                        public List<Integer> apply(List<Integer> input) {
3494                            return TypeTransformer.getInstance().to(
3495                    input,
3496                    Integer.class,
3497                    Integer.class);
3498                }});
3499        nativeCallback.service.loadDeviceGroupIdByWhere(
3500                where,nativeCallback);
3501        return nativeCallback.feature;
3502    }
3503    public void loadDeviceGroupIdByWhere(String where,
3504        FutureCallback<List<Integer>>callback){
3505        factory.addCallback(loadDeviceGroupIdByWhere(where), callback);
3506    }
3507    /**
3508     * see also {@link net.gdface.facelog.IFaceLog#loadDeviceIdByWhere(java.lang.String)}
3509     */
3510    public ListenableFuture<List<Integer>> loadDeviceIdByWhere(String where){
3511        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3512            new MethodCallback<List<Integer>,List<Integer>>(
3513                new Function<List<Integer>,List<Integer>>() {
3514                        @Override
3515                        public List<Integer> apply(List<Integer> input) {
3516                            return TypeTransformer.getInstance().to(
3517                    input,
3518                    Integer.class,
3519                    Integer.class);
3520                }});
3521        nativeCallback.service.loadDeviceIdByWhere(
3522                where,nativeCallback);
3523        return nativeCallback.feature;
3524    }
3525    public void loadDeviceIdByWhere(String where,
3526        FutureCallback<List<Integer>>callback){
3527        factory.addCallback(loadDeviceIdByWhere(where), callback);
3528    }
3529    /**
3530     * see also {@link net.gdface.facelog.IFaceLog#loadDistinctIntegerColumn(java.lang.String,java.lang.String,java.lang.String)}
3531     */
3532    public ListenableFuture<List<Integer>> loadDistinctIntegerColumn(String table,
3533        String column,
3534        String where){
3535        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3536            new MethodCallback<List<Integer>,List<Integer>>(
3537                new Function<List<Integer>,List<Integer>>() {
3538                        @Override
3539                        public List<Integer> apply(List<Integer> input) {
3540                            return TypeTransformer.getInstance().to(
3541                    input,
3542                    Integer.class,
3543                    Integer.class);
3544                }});
3545        nativeCallback.service.loadDistinctIntegerColumn(
3546                table,
3547            column,
3548            where,nativeCallback);
3549        return nativeCallback.feature;
3550    }
3551    public void loadDistinctIntegerColumn(String table,
3552        String column,
3553        String where,
3554        FutureCallback<List<Integer>>callback){
3555        factory.addCallback(loadDistinctIntegerColumn(table,column,where), callback);
3556    }
3557    /**
3558     * see also {@link net.gdface.facelog.IFaceLog#loadDistinctStringColumn(java.lang.String,java.lang.String,java.lang.String)}
3559     */
3560    public ListenableFuture<List<String>> loadDistinctStringColumn(String table,
3561        String column,
3562        String where){
3563        MethodCallback<List<String>,List<String>> nativeCallback = 
3564            new MethodCallback<List<String>,List<String>>(
3565                new Function<List<String>,List<String>>() {
3566                        @Override
3567                        public List<String> apply(List<String> input) {
3568                            return TypeTransformer.getInstance().to(
3569                    input,
3570                    String.class,
3571                    String.class);
3572                }});
3573        nativeCallback.service.loadDistinctStringColumn(
3574                table,
3575            column,
3576            where,nativeCallback);
3577        return nativeCallback.feature;
3578    }
3579    public void loadDistinctStringColumn(String table,
3580        String column,
3581        String where,
3582        FutureCallback<List<String>>callback){
3583        factory.addCallback(loadDistinctStringColumn(table,column,where), callback);
3584    }
3585    /**
3586     * see also {@link net.gdface.facelog.IFaceLog#loadErrorLogByWhere(java.lang.String,int,int)}
3587     */
3588    public ListenableFuture<List<ErrorLogBean>> loadErrorLogByWhere(String where,
3589        int startRow,
3590        int numRows){
3591        MethodCallback<List<ErrorLogBean>,List<net.gdface.facelog.client.thrift.ErrorLogBean>> nativeCallback = 
3592            new MethodCallback<List<ErrorLogBean>,List<net.gdface.facelog.client.thrift.ErrorLogBean>>(
3593                new Function<List<net.gdface.facelog.client.thrift.ErrorLogBean>,List<ErrorLogBean>>() {
3594                        @Override
3595                        public List<ErrorLogBean> apply(List<net.gdface.facelog.client.thrift.ErrorLogBean> input) {
3596                            return TypeTransformer.getInstance().to(
3597                    input,
3598                    net.gdface.facelog.client.thrift.ErrorLogBean.class,
3599                    ErrorLogBean.class);
3600                }});
3601        nativeCallback.service.loadErrorLogByWhere(
3602                where,
3603            startRow,
3604            numRows,nativeCallback);
3605        return nativeCallback.feature;
3606    }
3607    public void loadErrorLogByWhere(String where,
3608        int startRow,
3609        int numRows,
3610        FutureCallback<List<ErrorLogBean>>callback){
3611        factory.addCallback(loadErrorLogByWhere(where,startRow,numRows), callback);
3612    }
3613    /**
3614     * see also {@link net.gdface.facelog.IFaceLog#loadFeatureMd5ByUpdate(java.lang.String)}
3615     */
3616    public ListenableFuture<List<String>> loadFeatureMd5ByUpdate(String timestamp){
3617        MethodCallback<List<String>,List<String>> nativeCallback = 
3618            new MethodCallback<List<String>,List<String>>(
3619                new Function<List<String>,List<String>>() {
3620                        @Override
3621                        public List<String> apply(List<String> input) {
3622                            return TypeTransformer.getInstance().to(
3623                    input,
3624                    String.class,
3625                    String.class);
3626                }});
3627        nativeCallback.service.loadFeatureMd5ByUpdateTimeStr(
3628                timestamp,nativeCallback);
3629        return nativeCallback.feature;
3630    }
3631    public void loadFeatureMd5ByUpdate(String timestamp,
3632        FutureCallback<List<String>>callback){
3633        factory.addCallback(loadFeatureMd5ByUpdate(timestamp), callback);
3634    }
3635    /**
3636     * see also {@link net.gdface.facelog.IFaceLog#loadFeatureMd5ByUpdate(long)}
3637     */
3638    public ListenableFuture<List<String>> loadFeatureMd5ByUpdate(long timestamp){
3639        MethodCallback<List<String>,List<String>> nativeCallback = 
3640            new MethodCallback<List<String>,List<String>>(
3641                new Function<List<String>,List<String>>() {
3642                        @Override
3643                        public List<String> apply(List<String> input) {
3644                            return TypeTransformer.getInstance().to(
3645                    input,
3646                    String.class,
3647                    String.class);
3648                }});
3649        nativeCallback.service.loadFeatureMd5ByUpdate(
3650                timestamp,nativeCallback);
3651        return nativeCallback.feature;
3652    }
3653    public void loadFeatureMd5ByUpdate(long timestamp,
3654        FutureCallback<List<String>>callback){
3655        factory.addCallback(loadFeatureMd5ByUpdate(timestamp), callback);
3656    }
3657    /**
3658     * see also {@link net.gdface.facelog.IFaceLog#loadLogByWhere(java.lang.String,int,int)}
3659     */
3660    public ListenableFuture<List<LogBean>> loadLogByWhere(String where,
3661        int startRow,
3662        int numRows){
3663        MethodCallback<List<LogBean>,List<net.gdface.facelog.client.thrift.LogBean>> nativeCallback = 
3664            new MethodCallback<List<LogBean>,List<net.gdface.facelog.client.thrift.LogBean>>(
3665                new Function<List<net.gdface.facelog.client.thrift.LogBean>,List<LogBean>>() {
3666                        @Override
3667                        public List<LogBean> apply(List<net.gdface.facelog.client.thrift.LogBean> input) {
3668                            return TypeTransformer.getInstance().to(
3669                    input,
3670                    net.gdface.facelog.client.thrift.LogBean.class,
3671                    LogBean.class);
3672                }});
3673        nativeCallback.service.loadLogByWhere(
3674                where,
3675            startRow,
3676            numRows,nativeCallback);
3677        return nativeCallback.feature;
3678    }
3679    public void loadLogByWhere(String where,
3680        int startRow,
3681        int numRows,
3682        FutureCallback<List<LogBean>>callback){
3683        factory.addCallback(loadLogByWhere(where,startRow,numRows), callback);
3684    }
3685    /**
3686     * see also {@link net.gdface.facelog.IFaceLog#loadLogLightByVerifyTime(java.lang.String,int,int)}
3687     */
3688    public ListenableFuture<List<LogLightBean>> loadLogLightByVerifyTime(String timestamp,
3689        int startRow,
3690        int numRows){
3691        MethodCallback<List<LogLightBean>,List<net.gdface.facelog.client.thrift.LogLightBean>> nativeCallback = 
3692            new MethodCallback<List<LogLightBean>,List<net.gdface.facelog.client.thrift.LogLightBean>>(
3693                new Function<List<net.gdface.facelog.client.thrift.LogLightBean>,List<LogLightBean>>() {
3694                        @Override
3695                        public List<LogLightBean> apply(List<net.gdface.facelog.client.thrift.LogLightBean> input) {
3696                            return TypeTransformer.getInstance().to(
3697                    input,
3698                    net.gdface.facelog.client.thrift.LogLightBean.class,
3699                    LogLightBean.class);
3700                }});
3701        nativeCallback.service.loadLogLightByVerifyTimeTimestr(
3702                timestamp,
3703            startRow,
3704            numRows,nativeCallback);
3705        return nativeCallback.feature;
3706    }
3707    public void loadLogLightByVerifyTime(String timestamp,
3708        int startRow,
3709        int numRows,
3710        FutureCallback<List<LogLightBean>>callback){
3711        factory.addCallback(loadLogLightByVerifyTime(timestamp,startRow,numRows), callback);
3712    }
3713    /**
3714     * see also {@link net.gdface.facelog.IFaceLog#loadLogLightByVerifyTime(long,int,int)}
3715     */
3716    public ListenableFuture<List<LogLightBean>> loadLogLightByVerifyTime(long timestamp,
3717        int startRow,
3718        int numRows){
3719        MethodCallback<List<LogLightBean>,List<net.gdface.facelog.client.thrift.LogLightBean>> nativeCallback = 
3720            new MethodCallback<List<LogLightBean>,List<net.gdface.facelog.client.thrift.LogLightBean>>(
3721                new Function<List<net.gdface.facelog.client.thrift.LogLightBean>,List<LogLightBean>>() {
3722                        @Override
3723                        public List<LogLightBean> apply(List<net.gdface.facelog.client.thrift.LogLightBean> input) {
3724                            return TypeTransformer.getInstance().to(
3725                    input,
3726                    net.gdface.facelog.client.thrift.LogLightBean.class,
3727                    LogLightBean.class);
3728                }});
3729        nativeCallback.service.loadLogLightByVerifyTime(
3730                timestamp,
3731            startRow,
3732            numRows,nativeCallback);
3733        return nativeCallback.feature;
3734    }
3735    public void loadLogLightByVerifyTime(long timestamp,
3736        int startRow,
3737        int numRows,
3738        FutureCallback<List<LogLightBean>>callback){
3739        factory.addCallback(loadLogLightByVerifyTime(timestamp,startRow,numRows), callback);
3740    }
3741    /**
3742     * see also {@link net.gdface.facelog.IFaceLog#loadLogLightByWhere(java.lang.String,int,int)}
3743     */
3744    public ListenableFuture<List<LogLightBean>> loadLogLightByWhere(String where,
3745        int startRow,
3746        int numRows){
3747        MethodCallback<List<LogLightBean>,List<net.gdface.facelog.client.thrift.LogLightBean>> nativeCallback = 
3748            new MethodCallback<List<LogLightBean>,List<net.gdface.facelog.client.thrift.LogLightBean>>(
3749                new Function<List<net.gdface.facelog.client.thrift.LogLightBean>,List<LogLightBean>>() {
3750                        @Override
3751                        public List<LogLightBean> apply(List<net.gdface.facelog.client.thrift.LogLightBean> input) {
3752                            return TypeTransformer.getInstance().to(
3753                    input,
3754                    net.gdface.facelog.client.thrift.LogLightBean.class,
3755                    LogLightBean.class);
3756                }});
3757        nativeCallback.service.loadLogLightByWhere(
3758                where,
3759            startRow,
3760            numRows,nativeCallback);
3761        return nativeCallback.feature;
3762    }
3763    public void loadLogLightByWhere(String where,
3764        int startRow,
3765        int numRows,
3766        FutureCallback<List<LogLightBean>>callback){
3767        factory.addCallback(loadLogLightByWhere(where,startRow,numRows), callback);
3768    }
3769    /**
3770     * see also {@link net.gdface.facelog.IFaceLog#loadPermitByUpdate(java.lang.String)}
3771     */
3772    public ListenableFuture<List<PermitBean>> loadPermitByUpdate(String timestamp){
3773        MethodCallback<List<PermitBean>,List<net.gdface.facelog.client.thrift.PermitBean>> nativeCallback = 
3774            new MethodCallback<List<PermitBean>,List<net.gdface.facelog.client.thrift.PermitBean>>(
3775                new Function<List<net.gdface.facelog.client.thrift.PermitBean>,List<PermitBean>>() {
3776                        @Override
3777                        public List<PermitBean> apply(List<net.gdface.facelog.client.thrift.PermitBean> input) {
3778                            return TypeTransformer.getInstance().to(
3779                    input,
3780                    net.gdface.facelog.client.thrift.PermitBean.class,
3781                    PermitBean.class);
3782                }});
3783        nativeCallback.service.loadPermitByUpdateTimestr(
3784                timestamp,nativeCallback);
3785        return nativeCallback.feature;
3786    }
3787    public void loadPermitByUpdate(String timestamp,
3788        FutureCallback<List<PermitBean>>callback){
3789        factory.addCallback(loadPermitByUpdate(timestamp), callback);
3790    }
3791    /**
3792     * see also {@link net.gdface.facelog.IFaceLog#loadPermitByUpdate(long)}
3793     */
3794    public ListenableFuture<List<PermitBean>> loadPermitByUpdate(long timestamp){
3795        MethodCallback<List<PermitBean>,List<net.gdface.facelog.client.thrift.PermitBean>> nativeCallback = 
3796            new MethodCallback<List<PermitBean>,List<net.gdface.facelog.client.thrift.PermitBean>>(
3797                new Function<List<net.gdface.facelog.client.thrift.PermitBean>,List<PermitBean>>() {
3798                        @Override
3799                        public List<PermitBean> apply(List<net.gdface.facelog.client.thrift.PermitBean> input) {
3800                            return TypeTransformer.getInstance().to(
3801                    input,
3802                    net.gdface.facelog.client.thrift.PermitBean.class,
3803                    PermitBean.class);
3804                }});
3805        nativeCallback.service.loadPermitByUpdate(
3806                timestamp,nativeCallback);
3807        return nativeCallback.feature;
3808    }
3809    public void loadPermitByUpdate(long timestamp,
3810        FutureCallback<List<PermitBean>>callback){
3811        factory.addCallback(loadPermitByUpdate(timestamp), callback);
3812    }
3813    /**
3814     * see also {@link net.gdface.facelog.IFaceLog#loadPersonByWhere(java.lang.String,int,int)}
3815     */
3816    public ListenableFuture<List<PersonBean>> loadPersonByWhere(String where,
3817        int startRow,
3818        int numRows){
3819        MethodCallback<List<PersonBean>,List<net.gdface.facelog.client.thrift.PersonBean>> nativeCallback = 
3820            new MethodCallback<List<PersonBean>,List<net.gdface.facelog.client.thrift.PersonBean>>(
3821                new Function<List<net.gdface.facelog.client.thrift.PersonBean>,List<PersonBean>>() {
3822                        @Override
3823                        public List<PersonBean> apply(List<net.gdface.facelog.client.thrift.PersonBean> input) {
3824                            return TypeTransformer.getInstance().to(
3825                    input,
3826                    net.gdface.facelog.client.thrift.PersonBean.class,
3827                    PersonBean.class);
3828                }});
3829        nativeCallback.service.loadPersonByWhere(
3830                where,
3831            startRow,
3832            numRows,nativeCallback);
3833        return nativeCallback.feature;
3834    }
3835    public void loadPersonByWhere(String where,
3836        int startRow,
3837        int numRows,
3838        FutureCallback<List<PersonBean>>callback){
3839        factory.addCallback(loadPersonByWhere(where,startRow,numRows), callback);
3840    }
3841    /**
3842     * see also {@link net.gdface.facelog.IFaceLog#loadPersonByWhere(java.lang.String,int,int,net.gdface.facelog.Token)}
3843     */
3844    public ListenableFuture<List<PersonBean>> loadPersonByWhere(String where,
3845        int startRow,
3846        int numRows,
3847        Token token){
3848        MethodCallback<List<PersonBean>,List<net.gdface.facelog.client.thrift.PersonBean>> nativeCallback = 
3849            new MethodCallback<List<PersonBean>,List<net.gdface.facelog.client.thrift.PersonBean>>(
3850                new Function<List<net.gdface.facelog.client.thrift.PersonBean>,List<PersonBean>>() {
3851                        @Override
3852                        public List<PersonBean> apply(List<net.gdface.facelog.client.thrift.PersonBean> input) {
3853                            return TypeTransformer.getInstance().to(
3854                    input,
3855                    net.gdface.facelog.client.thrift.PersonBean.class,
3856                    PersonBean.class);
3857                }});
3858        nativeCallback.service.loadPersonByWhereReal(
3859                where,
3860            startRow,
3861            numRows,
3862            TypeTransformer.getInstance().to(
3863                    token,
3864                    Token.class,
3865                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
3866        return nativeCallback.feature;
3867    }
3868    public void loadPersonByWhere(String where,
3869        int startRow,
3870        int numRows,
3871        Token token,
3872        FutureCallback<List<PersonBean>>callback){
3873        factory.addCallback(loadPersonByWhere(where,startRow,numRows,token), callback);
3874    }
3875    /**
3876     * see also {@link net.gdface.facelog.IFaceLog#loadPersonGroupByWhere(java.lang.String,int,int)}
3877     */
3878    public ListenableFuture<List<Integer>> loadPersonGroupByWhere(String where,
3879        int startRow,
3880        int numRows){
3881        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3882            new MethodCallback<List<Integer>,List<Integer>>(
3883                new Function<List<Integer>,List<Integer>>() {
3884                        @Override
3885                        public List<Integer> apply(List<Integer> input) {
3886                            return TypeTransformer.getInstance().to(
3887                    input,
3888                    Integer.class,
3889                    Integer.class);
3890                }});
3891        nativeCallback.service.loadPersonGroupByWhere(
3892                where,
3893            startRow,
3894            numRows,nativeCallback);
3895        return nativeCallback.feature;
3896    }
3897    public void loadPersonGroupByWhere(String where,
3898        int startRow,
3899        int numRows,
3900        FutureCallback<List<Integer>>callback){
3901        factory.addCallback(loadPersonGroupByWhere(where,startRow,numRows), callback);
3902    }
3903    /**
3904     * see also {@link net.gdface.facelog.IFaceLog#loadPersonGroupIdByWhere(java.lang.String)}
3905     */
3906    public ListenableFuture<List<Integer>> loadPersonGroupIdByWhere(String where){
3907        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3908            new MethodCallback<List<Integer>,List<Integer>>(
3909                new Function<List<Integer>,List<Integer>>() {
3910                        @Override
3911                        public List<Integer> apply(List<Integer> input) {
3912                            return TypeTransformer.getInstance().to(
3913                    input,
3914                    Integer.class,
3915                    Integer.class);
3916                }});
3917        nativeCallback.service.loadPersonGroupIdByWhere(
3918                where,nativeCallback);
3919        return nativeCallback.feature;
3920    }
3921    public void loadPersonGroupIdByWhere(String where,
3922        FutureCallback<List<Integer>>callback){
3923        factory.addCallback(loadPersonGroupIdByWhere(where), callback);
3924    }
3925    /**
3926     * see also {@link net.gdface.facelog.IFaceLog#loadPersonIdByUpdateTime(java.lang.String)}
3927     */
3928    public ListenableFuture<List<Integer>> loadPersonIdByUpdateTime(String timestamp){
3929        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3930            new MethodCallback<List<Integer>,List<Integer>>(
3931                new Function<List<Integer>,List<Integer>>() {
3932                        @Override
3933                        public List<Integer> apply(List<Integer> input) {
3934                            return TypeTransformer.getInstance().to(
3935                    input,
3936                    Integer.class,
3937                    Integer.class);
3938                }});
3939        nativeCallback.service.loadPersonIdByUpdateTimeTimeStr(
3940                timestamp,nativeCallback);
3941        return nativeCallback.feature;
3942    }
3943    public void loadPersonIdByUpdateTime(String timestamp,
3944        FutureCallback<List<Integer>>callback){
3945        factory.addCallback(loadPersonIdByUpdateTime(timestamp), callback);
3946    }
3947    /**
3948     * see also {@link net.gdface.facelog.IFaceLog#loadPersonIdByUpdateTime(long)}
3949     */
3950    public ListenableFuture<List<Integer>> loadPersonIdByUpdateTime(long timestamp){
3951        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3952            new MethodCallback<List<Integer>,List<Integer>>(
3953                new Function<List<Integer>,List<Integer>>() {
3954                        @Override
3955                        public List<Integer> apply(List<Integer> input) {
3956                            return TypeTransformer.getInstance().to(
3957                    input,
3958                    Integer.class,
3959                    Integer.class);
3960                }});
3961        nativeCallback.service.loadPersonIdByUpdateTime(
3962                timestamp,nativeCallback);
3963        return nativeCallback.feature;
3964    }
3965    public void loadPersonIdByUpdateTime(long timestamp,
3966        FutureCallback<List<Integer>>callback){
3967        factory.addCallback(loadPersonIdByUpdateTime(timestamp), callback);
3968    }
3969    /**
3970     * see also {@link net.gdface.facelog.IFaceLog#loadPersonIdByWhere(java.lang.String)}
3971     */
3972    public ListenableFuture<List<Integer>> loadPersonIdByWhere(String where){
3973        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3974            new MethodCallback<List<Integer>,List<Integer>>(
3975                new Function<List<Integer>,List<Integer>>() {
3976                        @Override
3977                        public List<Integer> apply(List<Integer> input) {
3978                            return TypeTransformer.getInstance().to(
3979                    input,
3980                    Integer.class,
3981                    Integer.class);
3982                }});
3983        nativeCallback.service.loadPersonIdByWhere(
3984                where,nativeCallback);
3985        return nativeCallback.feature;
3986    }
3987    public void loadPersonIdByWhere(String where,
3988        FutureCallback<List<Integer>>callback){
3989        factory.addCallback(loadPersonIdByWhere(where), callback);
3990    }
3991    /**
3992     * see also {@link net.gdface.facelog.IFaceLog#loadUpdatedPersons(java.lang.String)}
3993     */
3994    public ListenableFuture<List<Integer>> loadUpdatedPersons(String timestamp){
3995        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
3996            new MethodCallback<List<Integer>,List<Integer>>(
3997                new Function<List<Integer>,List<Integer>>() {
3998                        @Override
3999                        public List<Integer> apply(List<Integer> input) {
4000                            return TypeTransformer.getInstance().to(
4001                    input,
4002                    Integer.class,
4003                    Integer.class);
4004                }});
4005        nativeCallback.service.loadUpdatedPersonsTimestr(
4006                timestamp,nativeCallback);
4007        return nativeCallback.feature;
4008    }
4009    public void loadUpdatedPersons(String timestamp,
4010        FutureCallback<List<Integer>>callback){
4011        factory.addCallback(loadUpdatedPersons(timestamp), callback);
4012    }
4013    /**
4014     * see also {@link net.gdface.facelog.IFaceLog#loadUpdatedPersons(long)}
4015     */
4016    public ListenableFuture<List<Integer>> loadUpdatedPersons(long timestamp){
4017        MethodCallback<List<Integer>,List<Integer>> nativeCallback = 
4018            new MethodCallback<List<Integer>,List<Integer>>(
4019                new Function<List<Integer>,List<Integer>>() {
4020                        @Override
4021                        public List<Integer> apply(List<Integer> input) {
4022                            return TypeTransformer.getInstance().to(
4023                    input,
4024                    Integer.class,
4025                    Integer.class);
4026                }});
4027        nativeCallback.service.loadUpdatedPersons(
4028                timestamp,nativeCallback);
4029        return nativeCallback.feature;
4030    }
4031    public void loadUpdatedPersons(long timestamp,
4032        FutureCallback<List<Integer>>callback){
4033        factory.addCallback(loadUpdatedPersons(timestamp), callback);
4034    }
4035    /**
4036     * see also {@link net.gdface.facelog.IFaceLog#lockWakeup(net.gdface.facelog.db.DeviceBean,boolean,java.lang.String)}
4037     */
4038    public ListenableFuture<LockWakeupResponse> lockWakeup(DeviceBean deviceBean,
4039        boolean ignoreSchedule,
4040        String sdkVersion){
4041        MethodCallback<LockWakeupResponse,net.gdface.facelog.client.thrift.LockWakeupResponse> nativeCallback = 
4042            new MethodCallback<LockWakeupResponse,net.gdface.facelog.client.thrift.LockWakeupResponse>(
4043                new Function<net.gdface.facelog.client.thrift.LockWakeupResponse,LockWakeupResponse>() {
4044                        @Override
4045                        public LockWakeupResponse apply(net.gdface.facelog.client.thrift.LockWakeupResponse input) {
4046                            return TypeTransformer.getInstance().to(
4047                    input,
4048                    net.gdface.facelog.client.thrift.LockWakeupResponse.class,
4049                    LockWakeupResponse.class);
4050                }});
4051        nativeCallback.service.lockWakeup(
4052                TypeTransformer.getInstance().to(
4053                    deviceBean,
4054                    DeviceBean.class,
4055                    net.gdface.facelog.client.thrift.DeviceBean.class),
4056            ignoreSchedule,
4057            sdkVersion,nativeCallback);
4058        return nativeCallback.feature;
4059    }
4060    public void lockWakeup(DeviceBean deviceBean,
4061        boolean ignoreSchedule,
4062        String sdkVersion,
4063        FutureCallback<LockWakeupResponse>callback){
4064        factory.addCallback(lockWakeup(deviceBean,ignoreSchedule,sdkVersion), callback);
4065    }
4066    /**
4067     * see also {@link net.gdface.facelog.IFaceLog#offline(net.gdface.facelog.Token)}
4068     */
4069    public ListenableFuture<Void> offline(Token token){
4070        MethodCallback<Void,Void> nativeCallback = 
4071            new MethodCallback<Void,Void>(
4072                new Function<Void,Void>() {
4073                        @Override
4074                        public Void apply(Void input) {
4075                            return TypeTransformer.getInstance().to(
4076                    input,
4077                    Void.class,
4078                    Void.class);
4079                }});
4080        nativeCallback.service.offline(
4081                TypeTransformer.getInstance().to(
4082                    token,
4083                    Token.class,
4084                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4085        return nativeCallback.feature;
4086    }
4087    public void offline(Token token,
4088        FutureCallback<Void>callback){
4089        factory.addCallback(offline(token), callback);
4090    }
4091    /**
4092     * see also {@link net.gdface.facelog.IFaceLog#online(net.gdface.facelog.db.DeviceBean)}
4093     */
4094    public ListenableFuture<Token> online(DeviceBean device){
4095        MethodCallback<Token,net.gdface.facelog.client.thrift.Token> nativeCallback = 
4096            new MethodCallback<Token,net.gdface.facelog.client.thrift.Token>(
4097                new Function<net.gdface.facelog.client.thrift.Token,Token>() {
4098                        @Override
4099                        public Token apply(net.gdface.facelog.client.thrift.Token input) {
4100                            return TypeTransformer.getInstance().to(
4101                    input,
4102                    net.gdface.facelog.client.thrift.Token.class,
4103                    Token.class);
4104                }});
4105        nativeCallback.service.online(
4106                TypeTransformer.getInstance().to(
4107                    device,
4108                    DeviceBean.class,
4109                    net.gdface.facelog.client.thrift.DeviceBean.class),nativeCallback);
4110        return nativeCallback.feature;
4111    }
4112    public void online(DeviceBean device,
4113        FutureCallback<Token>callback){
4114        factory.addCallback(online(device), callback);
4115    }
4116    /**
4117     * see also {@link net.gdface.facelog.IFaceLog#registerDevice(net.gdface.facelog.db.DeviceBean)}
4118     */
4119    public ListenableFuture<DeviceBean> registerDevice(DeviceBean newDevice){
4120        MethodCallback<DeviceBean,net.gdface.facelog.client.thrift.DeviceBean> nativeCallback = 
4121            new MethodCallback<DeviceBean,net.gdface.facelog.client.thrift.DeviceBean>(
4122                new Function<net.gdface.facelog.client.thrift.DeviceBean,DeviceBean>() {
4123                        @Override
4124                        public DeviceBean apply(net.gdface.facelog.client.thrift.DeviceBean input) {
4125                            return TypeTransformer.getInstance().to(
4126                    input,
4127                    net.gdface.facelog.client.thrift.DeviceBean.class,
4128                    DeviceBean.class);
4129                }});
4130        nativeCallback.service.registerDevice(
4131                TypeTransformer.getInstance().to(
4132                    newDevice,
4133                    DeviceBean.class,
4134                    net.gdface.facelog.client.thrift.DeviceBean.class),nativeCallback);
4135        return nativeCallback.feature;
4136    }
4137    public void registerDevice(DeviceBean newDevice,
4138        FutureCallback<DeviceBean>callback){
4139        factory.addCallback(registerDevice(newDevice), callback);
4140    }
4141    /**
4142     * see also {@link net.gdface.facelog.IFaceLog#releasePersonToken(net.gdface.facelog.Token)}
4143     */
4144    public ListenableFuture<Void> releasePersonToken(Token token){
4145        MethodCallback<Void,Void> nativeCallback = 
4146            new MethodCallback<Void,Void>(
4147                new Function<Void,Void>() {
4148                        @Override
4149                        public Void apply(Void input) {
4150                            return TypeTransformer.getInstance().to(
4151                    input,
4152                    Void.class,
4153                    Void.class);
4154                }});
4155        nativeCallback.service.releasePersonToken(
4156                TypeTransformer.getInstance().to(
4157                    token,
4158                    Token.class,
4159                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4160        return nativeCallback.feature;
4161    }
4162    public void releasePersonToken(Token token,
4163        FutureCallback<Void>callback){
4164        factory.addCallback(releasePersonToken(token), callback);
4165    }
4166    /**
4167     * see also {@link net.gdface.facelog.IFaceLog#releaseRootToken(net.gdface.facelog.Token)}
4168     */
4169    public ListenableFuture<Void> releaseRootToken(Token token){
4170        MethodCallback<Void,Void> nativeCallback = 
4171            new MethodCallback<Void,Void>(
4172                new Function<Void,Void>() {
4173                        @Override
4174                        public Void apply(Void input) {
4175                            return TypeTransformer.getInstance().to(
4176                    input,
4177                    Void.class,
4178                    Void.class);
4179                }});
4180        nativeCallback.service.releaseRootToken(
4181                TypeTransformer.getInstance().to(
4182                    token,
4183                    Token.class,
4184                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4185        return nativeCallback.feature;
4186    }
4187    public void releaseRootToken(Token token,
4188        FutureCallback<Void>callback){
4189        factory.addCallback(releaseRootToken(token), callback);
4190    }
4191    /**
4192     * see also {@link net.gdface.facelog.IFaceLog#releaseUserToken(net.gdface.facelog.Token)}
4193     */
4194    public ListenableFuture<Void> releaseUserToken(Token token){
4195        MethodCallback<Void,Void> nativeCallback = 
4196            new MethodCallback<Void,Void>(
4197                new Function<Void,Void>() {
4198                        @Override
4199                        public Void apply(Void input) {
4200                            return TypeTransformer.getInstance().to(
4201                    input,
4202                    Void.class,
4203                    Void.class);
4204                }});
4205        nativeCallback.service.releaseUserToken(
4206                TypeTransformer.getInstance().to(
4207                    token,
4208                    Token.class,
4209                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4210        return nativeCallback.feature;
4211    }
4212    public void releaseUserToken(Token token,
4213        FutureCallback<Void>callback){
4214        factory.addCallback(releaseUserToken(token), callback);
4215    }
4216    /**
4217     * see also {@link net.gdface.facelog.IFaceLog#replaceFeature(int,java.lang.String,boolean,net.gdface.facelog.Token)}
4218     */
4219    public ListenableFuture<Void> replaceFeature(int personId,
4220        String featureMd5,
4221        boolean deleteOldFeatureImage,
4222        Token token){
4223        MethodCallback<Void,Void> nativeCallback = 
4224            new MethodCallback<Void,Void>(
4225                new Function<Void,Void>() {
4226                        @Override
4227                        public Void apply(Void input) {
4228                            return TypeTransformer.getInstance().to(
4229                    input,
4230                    Void.class,
4231                    Void.class);
4232                }});
4233        nativeCallback.service.replaceFeature(
4234                personId,
4235            featureMd5,
4236            deleteOldFeatureImage,
4237            TypeTransformer.getInstance().to(
4238                    token,
4239                    Token.class,
4240                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4241        return nativeCallback.feature;
4242    }
4243    public void replaceFeature(int personId,
4244        String featureMd5,
4245        boolean deleteOldFeatureImage,
4246        Token token,
4247        FutureCallback<Void>callback){
4248        factory.addCallback(replaceFeature(personId,featureMd5,deleteOldFeatureImage,token), callback);
4249    }
4250    /**
4251     * see also {@link net.gdface.facelog.IFaceLog#rootGroupOfDevice(int)}
4252     */
4253    public ListenableFuture<Integer> rootGroupOfDevice(int deviceId){
4254        MethodCallback<Integer,Integer> nativeCallback = 
4255            new MethodCallback<Integer,Integer>(
4256                new Function<Integer,Integer>() {
4257                        @Override
4258                        public Integer apply(Integer input) {
4259                            return input;
4260                }});
4261        nativeCallback.service.rootGroupOfDevice(
4262                deviceId,nativeCallback);
4263        return nativeCallback.feature;
4264    }
4265    public void rootGroupOfDevice(int deviceId,
4266        FutureCallback<Integer>callback){
4267        factory.addCallback(rootGroupOfDevice(deviceId), callback);
4268    }
4269    /**
4270     * see also {@link net.gdface.facelog.IFaceLog#rootGroupOfDeviceGroup(int)}
4271     */
4272    public ListenableFuture<Integer> rootGroupOfDeviceGroup(int groupId){
4273        MethodCallback<Integer,Integer> nativeCallback = 
4274            new MethodCallback<Integer,Integer>(
4275                new Function<Integer,Integer>() {
4276                        @Override
4277                        public Integer apply(Integer input) {
4278                            return input;
4279                }});
4280        nativeCallback.service.rootGroupOfDeviceGroup(
4281                groupId,nativeCallback);
4282        return nativeCallback.feature;
4283    }
4284    public void rootGroupOfDeviceGroup(int groupId,
4285        FutureCallback<Integer>callback){
4286        factory.addCallback(rootGroupOfDeviceGroup(groupId), callback);
4287    }
4288    /**
4289     * see also {@link net.gdface.facelog.IFaceLog#rootGroupOfPerson(int)}
4290     */
4291    public ListenableFuture<Integer> rootGroupOfPerson(int personId){
4292        MethodCallback<Integer,Integer> nativeCallback = 
4293            new MethodCallback<Integer,Integer>(
4294                new Function<Integer,Integer>() {
4295                        @Override
4296                        public Integer apply(Integer input) {
4297                            return input;
4298                }});
4299        nativeCallback.service.rootGroupOfPerson(
4300                personId,nativeCallback);
4301        return nativeCallback.feature;
4302    }
4303    public void rootGroupOfPerson(int personId,
4304        FutureCallback<Integer>callback){
4305        factory.addCallback(rootGroupOfPerson(personId), callback);
4306    }
4307    /**
4308     * see also {@link net.gdface.facelog.IFaceLog#rootGroupOfPersonGroup(int)}
4309     */
4310    public ListenableFuture<Integer> rootGroupOfPersonGroup(int groupId){
4311        MethodCallback<Integer,Integer> nativeCallback = 
4312            new MethodCallback<Integer,Integer>(
4313                new Function<Integer,Integer>() {
4314                        @Override
4315                        public Integer apply(Integer input) {
4316                            return input;
4317                }});
4318        nativeCallback.service.rootGroupOfPersonGroup(
4319                groupId,nativeCallback);
4320        return nativeCallback.feature;
4321    }
4322    public void rootGroupOfPersonGroup(int groupId,
4323        FutureCallback<Integer>callback){
4324        factory.addCallback(rootGroupOfPersonGroup(groupId), callback);
4325    }
4326    /**
4327     * see also {@link net.gdface.facelog.IFaceLog#runCmd(java.util.List,boolean,java.lang.String,java.lang.String,java.lang.String,net.gdface.facelog.Token)}
4328     */
4329    public ListenableFuture<String> runCmd(List<Integer> target,
4330        boolean group,
4331        String cmdpath,
4332        String jsonArgs,
4333        String ackChannel,
4334        Token token){
4335        MethodCallback<String,String> nativeCallback = 
4336            new MethodCallback<String,String>(
4337                new Function<String,String>() {
4338                        @Override
4339                        public String apply(String input) {
4340                            return input;
4341                }});
4342        nativeCallback.service.runCmd(
4343                TypeTransformer.getInstance().to(
4344                    target,
4345                    Integer.class,
4346                    Integer.class),
4347            group,
4348            cmdpath,
4349            jsonArgs,
4350            ackChannel,
4351            TypeTransformer.getInstance().to(
4352                    token,
4353                    Token.class,
4354                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4355        return nativeCallback.feature;
4356    }
4357    public void runCmd(List<Integer> target,
4358        boolean group,
4359        String cmdpath,
4360        String jsonArgs,
4361        String ackChannel,
4362        Token token,
4363        FutureCallback<String>callback){
4364        factory.addCallback(runCmd(target,group,cmdpath,jsonArgs,ackChannel,token), callback);
4365    }
4366    /**
4367     * see also {@link net.gdface.facelog.IFaceLog#runTask(java.lang.String,java.lang.String,java.lang.String,java.lang.String,net.gdface.facelog.Token)}
4368     */
4369    public ListenableFuture<Integer> runTask(String taskQueue,
4370        String cmdpath,
4371        String jsonArgs,
4372        String ackChannel,
4373        Token token){
4374        MethodCallback<Integer,Integer> nativeCallback = 
4375            new MethodCallback<Integer,Integer>(
4376                new Function<Integer,Integer>() {
4377                        @Override
4378                        public Integer apply(Integer input) {
4379                            return input;
4380                }});
4381        nativeCallback.service.runTask(
4382                taskQueue,
4383            cmdpath,
4384            jsonArgs,
4385            ackChannel,
4386            TypeTransformer.getInstance().to(
4387                    token,
4388                    Token.class,
4389                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4390        return nativeCallback.feature;
4391    }
4392    public void runTask(String taskQueue,
4393        String cmdpath,
4394        String jsonArgs,
4395        String ackChannel,
4396        Token token,
4397        FutureCallback<Integer>callback){
4398        factory.addCallback(runTask(taskQueue,cmdpath,jsonArgs,ackChannel,token), callback);
4399    }
4400    /**
4401     * see also {@link net.gdface.facelog.IFaceLog#runTaskSync(java.lang.String,java.lang.String,java.lang.String,int,net.gdface.facelog.Token)}
4402     */
4403    public ListenableFuture<String> runTaskSync(String taskQueue,
4404        String cmdpath,
4405        String jsonArgs,
4406        int timeoutSecs,
4407        Token token){
4408        MethodCallback<String,String> nativeCallback = 
4409            new MethodCallback<String,String>(
4410                new Function<String,String>() {
4411                        @Override
4412                        public String apply(String input) {
4413                            return input;
4414                }});
4415        nativeCallback.service.runTaskSync(
4416                taskQueue,
4417            cmdpath,
4418            jsonArgs,
4419            timeoutSecs,
4420            TypeTransformer.getInstance().to(
4421                    token,
4422                    Token.class,
4423                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4424        return nativeCallback.feature;
4425    }
4426    public void runTaskSync(String taskQueue,
4427        String cmdpath,
4428        String jsonArgs,
4429        int timeoutSecs,
4430        Token token,
4431        FutureCallback<String>callback){
4432        factory.addCallback(runTaskSync(taskQueue,cmdpath,jsonArgs,timeoutSecs,token), callback);
4433    }
4434    /**
4435     * see also {@link net.gdface.facelog.IFaceLog#saveDevice(net.gdface.facelog.db.DeviceBean,net.gdface.facelog.Token)}
4436     */
4437    public ListenableFuture<DeviceBean> saveDevice(DeviceBean deviceBean,
4438        Token token){
4439        MethodCallback<DeviceBean,net.gdface.facelog.client.thrift.DeviceBean> nativeCallback = 
4440            new MethodCallback<DeviceBean,net.gdface.facelog.client.thrift.DeviceBean>(
4441                new Function<net.gdface.facelog.client.thrift.DeviceBean,DeviceBean>() {
4442                        @Override
4443                        public DeviceBean apply(net.gdface.facelog.client.thrift.DeviceBean input) {
4444                            return TypeTransformer.getInstance().to(
4445                    input,
4446                    net.gdface.facelog.client.thrift.DeviceBean.class,
4447                    DeviceBean.class);
4448                }});
4449        nativeCallback.service.saveDevice(
4450                TypeTransformer.getInstance().to(
4451                    deviceBean,
4452                    DeviceBean.class,
4453                    net.gdface.facelog.client.thrift.DeviceBean.class),
4454            TypeTransformer.getInstance().to(
4455                    token,
4456                    Token.class,
4457                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4458        return nativeCallback.feature;
4459    }
4460    public void saveDevice(DeviceBean deviceBean,
4461        Token token,
4462        FutureCallback<DeviceBean>callback){
4463        factory.addCallback(saveDevice(deviceBean,token), callback);
4464    }
4465    /**
4466     * see also {@link net.gdface.facelog.IFaceLog#saveDeviceGroup(net.gdface.facelog.db.DeviceGroupBean,net.gdface.facelog.Token)}
4467     */
4468    public ListenableFuture<DeviceGroupBean> saveDeviceGroup(DeviceGroupBean deviceGroupBean,
4469        Token token){
4470        MethodCallback<DeviceGroupBean,net.gdface.facelog.client.thrift.DeviceGroupBean> nativeCallback = 
4471            new MethodCallback<DeviceGroupBean,net.gdface.facelog.client.thrift.DeviceGroupBean>(
4472                new Function<net.gdface.facelog.client.thrift.DeviceGroupBean,DeviceGroupBean>() {
4473                        @Override
4474                        public DeviceGroupBean apply(net.gdface.facelog.client.thrift.DeviceGroupBean input) {
4475                            return TypeTransformer.getInstance().to(
4476                    input,
4477                    net.gdface.facelog.client.thrift.DeviceGroupBean.class,
4478                    DeviceGroupBean.class);
4479                }});
4480        nativeCallback.service.saveDeviceGroup(
4481                TypeTransformer.getInstance().to(
4482                    deviceGroupBean,
4483                    DeviceGroupBean.class,
4484                    net.gdface.facelog.client.thrift.DeviceGroupBean.class),
4485            TypeTransformer.getInstance().to(
4486                    token,
4487                    Token.class,
4488                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4489        return nativeCallback.feature;
4490    }
4491    public void saveDeviceGroup(DeviceGroupBean deviceGroupBean,
4492        Token token,
4493        FutureCallback<DeviceGroupBean>callback){
4494        factory.addCallback(saveDeviceGroup(deviceGroupBean,token), callback);
4495    }
4496    /**
4497     * see also {@link net.gdface.facelog.IFaceLog#savePermit(int,int,java.lang.String,java.lang.String,net.gdface.facelog.Token)}
4498     */
4499    public ListenableFuture<PermitBean> savePermit(int deviceGroupId,
4500        int personGroupId,
4501        String column,
4502        String value,
4503        Token token){
4504        MethodCallback<PermitBean,net.gdface.facelog.client.thrift.PermitBean> nativeCallback = 
4505            new MethodCallback<PermitBean,net.gdface.facelog.client.thrift.PermitBean>(
4506                new Function<net.gdface.facelog.client.thrift.PermitBean,PermitBean>() {
4507                        @Override
4508                        public PermitBean apply(net.gdface.facelog.client.thrift.PermitBean input) {
4509                            return TypeTransformer.getInstance().to(
4510                    input,
4511                    net.gdface.facelog.client.thrift.PermitBean.class,
4512                    PermitBean.class);
4513                }});
4514        nativeCallback.service.savePermitWithColumn(
4515                deviceGroupId,
4516            personGroupId,
4517            column,
4518            value,
4519            TypeTransformer.getInstance().to(
4520                    token,
4521                    Token.class,
4522                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4523        return nativeCallback.feature;
4524    }
4525    public void savePermit(int deviceGroupId,
4526        int personGroupId,
4527        String column,
4528        String value,
4529        Token token,
4530        FutureCallback<PermitBean>callback){
4531        factory.addCallback(savePermit(deviceGroupId,personGroupId,column,value,token), callback);
4532    }
4533    /**
4534     * see also {@link net.gdface.facelog.IFaceLog#savePermit(net.gdface.facelog.db.PermitBean,net.gdface.facelog.Token)}
4535     */
4536    public ListenableFuture<PermitBean> savePermit(PermitBean permitBean,
4537        Token token){
4538        MethodCallback<PermitBean,net.gdface.facelog.client.thrift.PermitBean> nativeCallback = 
4539            new MethodCallback<PermitBean,net.gdface.facelog.client.thrift.PermitBean>(
4540                new Function<net.gdface.facelog.client.thrift.PermitBean,PermitBean>() {
4541                        @Override
4542                        public PermitBean apply(net.gdface.facelog.client.thrift.PermitBean input) {
4543                            return TypeTransformer.getInstance().to(
4544                    input,
4545                    net.gdface.facelog.client.thrift.PermitBean.class,
4546                    PermitBean.class);
4547                }});
4548        nativeCallback.service.savePermit(
4549                TypeTransformer.getInstance().to(
4550                    permitBean,
4551                    PermitBean.class,
4552                    net.gdface.facelog.client.thrift.PermitBean.class),
4553            TypeTransformer.getInstance().to(
4554                    token,
4555                    Token.class,
4556                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4557        return nativeCallback.feature;
4558    }
4559    public void savePermit(PermitBean permitBean,
4560        Token token,
4561        FutureCallback<PermitBean>callback){
4562        factory.addCallback(savePermit(permitBean,token), callback);
4563    }
4564    /**
4565     * see also {@link net.gdface.facelog.IFaceLog#savePerson(net.gdface.facelog.db.PersonBean,byte[],byte[],java.lang.String,byte[],net.gdface.facelog.db.FaceBean,net.gdface.facelog.Token)}
4566     */
4567    public ListenableFuture<PersonBean> savePerson(PersonBean personBean,
4568        byte[] idPhoto,
4569        byte[] feature,
4570        String featureVersion,
4571        byte[] featureImage,
4572        FaceBean faceBean,
4573        Token token){
4574        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
4575            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
4576                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
4577                        @Override
4578                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
4579                            return TypeTransformer.getInstance().to(
4580                    input,
4581                    net.gdface.facelog.client.thrift.PersonBean.class,
4582                    PersonBean.class);
4583                }});
4584        nativeCallback.service.savePersonFull(
4585                TypeTransformer.getInstance().to(
4586                    personBean,
4587                    PersonBean.class,
4588                    net.gdface.facelog.client.thrift.PersonBean.class),
4589            TypeTransformer.getInstance().to(
4590                    idPhoto,
4591                    byte[].class,
4592                    okio.ByteString.class),
4593            TypeTransformer.getInstance().to(
4594                    feature,
4595                    byte[].class,
4596                    okio.ByteString.class),
4597            featureVersion,
4598            TypeTransformer.getInstance().to(
4599                    featureImage,
4600                    byte[].class,
4601                    okio.ByteString.class),
4602            TypeTransformer.getInstance().to(
4603                    faceBean,
4604                    FaceBean.class,
4605                    net.gdface.facelog.client.thrift.FaceBean.class),
4606            TypeTransformer.getInstance().to(
4607                    token,
4608                    Token.class,
4609                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4610        return nativeCallback.feature;
4611    }
4612    public void savePerson(PersonBean personBean,
4613        byte[] idPhoto,
4614        byte[] feature,
4615        String featureVersion,
4616        byte[] featureImage,
4617        FaceBean faceBean,
4618        Token token,
4619        FutureCallback<PersonBean>callback){
4620        factory.addCallback(savePerson(personBean,idPhoto,feature,featureVersion,featureImage,faceBean,token), callback);
4621    }
4622    /**
4623     * see also {@link net.gdface.facelog.IFaceLog#savePerson(net.gdface.facelog.db.PersonBean,byte[],byte[],java.lang.String,java.util.List,java.util.List,net.gdface.facelog.Token)}
4624     */
4625    public ListenableFuture<PersonBean> savePerson(PersonBean personBean,
4626        byte[] idPhoto,
4627        byte[] feature,
4628        String featureVersion,
4629        List<byte[]> photos,
4630        List<FaceBean> faces,
4631        Token token){
4632        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
4633            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
4634                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
4635                        @Override
4636                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
4637                            return TypeTransformer.getInstance().to(
4638                    input,
4639                    net.gdface.facelog.client.thrift.PersonBean.class,
4640                    PersonBean.class);
4641                }});
4642        nativeCallback.service.savePersonWithPhotoAndFeatureMultiImage(
4643                TypeTransformer.getInstance().to(
4644                    personBean,
4645                    PersonBean.class,
4646                    net.gdface.facelog.client.thrift.PersonBean.class),
4647            TypeTransformer.getInstance().to(
4648                    idPhoto,
4649                    byte[].class,
4650                    okio.ByteString.class),
4651            TypeTransformer.getInstance().to(
4652                    feature,
4653                    byte[].class,
4654                    okio.ByteString.class),
4655            featureVersion,
4656            TypeTransformer.getInstance().to(
4657                    photos,
4658                    byte[].class,
4659                    okio.ByteString.class),
4660            TypeTransformer.getInstance().to(
4661                    faces,
4662                    FaceBean.class,
4663                    net.gdface.facelog.client.thrift.FaceBean.class),
4664            TypeTransformer.getInstance().to(
4665                    token,
4666                    Token.class,
4667                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4668        return nativeCallback.feature;
4669    }
4670    public void savePerson(PersonBean personBean,
4671        byte[] idPhoto,
4672        byte[] feature,
4673        String featureVersion,
4674        List<byte[]> photos,
4675        List<FaceBean> faces,
4676        Token token,
4677        FutureCallback<PersonBean>callback){
4678        factory.addCallback(savePerson(personBean,idPhoto,feature,featureVersion,photos,faces,token), callback);
4679    }
4680    /**
4681     * see also {@link net.gdface.facelog.IFaceLog#savePerson(net.gdface.facelog.db.PersonBean,byte[],byte[],java.lang.String,java.util.List,net.gdface.facelog.Token)}
4682     */
4683    public ListenableFuture<PersonBean> savePerson(PersonBean personBean,
4684        byte[] idPhoto,
4685        byte[] feature,
4686        String featureVersion,
4687        List<FaceBean> faceBeans,
4688        Token token){
4689        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
4690            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
4691                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
4692                        @Override
4693                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
4694                            return TypeTransformer.getInstance().to(
4695                    input,
4696                    net.gdface.facelog.client.thrift.PersonBean.class,
4697                    PersonBean.class);
4698                }});
4699        nativeCallback.service.savePersonWithPhotoAndFeatureMultiFaces(
4700                TypeTransformer.getInstance().to(
4701                    personBean,
4702                    PersonBean.class,
4703                    net.gdface.facelog.client.thrift.PersonBean.class),
4704            TypeTransformer.getInstance().to(
4705                    idPhoto,
4706                    byte[].class,
4707                    okio.ByteString.class),
4708            TypeTransformer.getInstance().to(
4709                    feature,
4710                    byte[].class,
4711                    okio.ByteString.class),
4712            featureVersion,
4713            TypeTransformer.getInstance().to(
4714                    faceBeans,
4715                    FaceBean.class,
4716                    net.gdface.facelog.client.thrift.FaceBean.class),
4717            TypeTransformer.getInstance().to(
4718                    token,
4719                    Token.class,
4720                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4721        return nativeCallback.feature;
4722    }
4723    public void savePerson(PersonBean personBean,
4724        byte[] idPhoto,
4725        byte[] feature,
4726        String featureVersion,
4727        List<FaceBean> faceBeans,
4728        Token token,
4729        FutureCallback<PersonBean>callback){
4730        factory.addCallback(savePerson(personBean,idPhoto,feature,featureVersion,faceBeans,token), callback);
4731    }
4732    /**
4733     * see also {@link net.gdface.facelog.IFaceLog#savePerson(net.gdface.facelog.db.PersonBean,byte[],net.gdface.facelog.Token)}
4734     */
4735    public ListenableFuture<PersonBean> savePerson(PersonBean personBean,
4736        byte[] idPhoto,
4737        Token token){
4738        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
4739            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
4740                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
4741                        @Override
4742                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
4743                            return TypeTransformer.getInstance().to(
4744                    input,
4745                    net.gdface.facelog.client.thrift.PersonBean.class,
4746                    PersonBean.class);
4747                }});
4748        nativeCallback.service.savePersonWithPhoto(
4749                TypeTransformer.getInstance().to(
4750                    personBean,
4751                    PersonBean.class,
4752                    net.gdface.facelog.client.thrift.PersonBean.class),
4753            TypeTransformer.getInstance().to(
4754                    idPhoto,
4755                    byte[].class,
4756                    okio.ByteString.class),
4757            TypeTransformer.getInstance().to(
4758                    token,
4759                    Token.class,
4760                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4761        return nativeCallback.feature;
4762    }
4763    public void savePerson(PersonBean personBean,
4764        byte[] idPhoto,
4765        Token token,
4766        FutureCallback<PersonBean>callback){
4767        factory.addCallback(savePerson(personBean,idPhoto,token), callback);
4768    }
4769    /**
4770     * see also {@link net.gdface.facelog.IFaceLog#savePerson(net.gdface.facelog.db.PersonBean,byte[],net.gdface.facelog.db.FeatureBean,net.gdface.facelog.Token)}
4771     */
4772    public ListenableFuture<PersonBean> savePerson(PersonBean personBean,
4773        byte[] idPhoto,
4774        FeatureBean featureBean,
4775        Token token){
4776        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
4777            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
4778                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
4779                        @Override
4780                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
4781                            return TypeTransformer.getInstance().to(
4782                    input,
4783                    net.gdface.facelog.client.thrift.PersonBean.class,
4784                    PersonBean.class);
4785                }});
4786        nativeCallback.service.savePersonWithPhotoAndFeature(
4787                TypeTransformer.getInstance().to(
4788                    personBean,
4789                    PersonBean.class,
4790                    net.gdface.facelog.client.thrift.PersonBean.class),
4791            TypeTransformer.getInstance().to(
4792                    idPhoto,
4793                    byte[].class,
4794                    okio.ByteString.class),
4795            TypeTransformer.getInstance().to(
4796                    featureBean,
4797                    FeatureBean.class,
4798                    net.gdface.facelog.client.thrift.FeatureBean.class),
4799            TypeTransformer.getInstance().to(
4800                    token,
4801                    Token.class,
4802                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4803        return nativeCallback.feature;
4804    }
4805    public void savePerson(PersonBean personBean,
4806        byte[] idPhoto,
4807        FeatureBean featureBean,
4808        Token token,
4809        FutureCallback<PersonBean>callback){
4810        factory.addCallback(savePerson(personBean,idPhoto,featureBean,token), callback);
4811    }
4812    /**
4813     * see also {@link net.gdface.facelog.IFaceLog#savePerson(net.gdface.facelog.db.PersonBean,java.lang.String,java.lang.String,net.gdface.facelog.Token)}
4814     */
4815    public ListenableFuture<PersonBean> savePerson(PersonBean personBean,
4816        String idPhotoMd5,
4817        String featureMd5,
4818        Token token){
4819        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
4820            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
4821                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
4822                        @Override
4823                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
4824                            return TypeTransformer.getInstance().to(
4825                    input,
4826                    net.gdface.facelog.client.thrift.PersonBean.class,
4827                    PersonBean.class);
4828                }});
4829        nativeCallback.service.savePersonWithPhotoAndFeatureSaved(
4830                TypeTransformer.getInstance().to(
4831                    personBean,
4832                    PersonBean.class,
4833                    net.gdface.facelog.client.thrift.PersonBean.class),
4834            idPhotoMd5,
4835            featureMd5,
4836            TypeTransformer.getInstance().to(
4837                    token,
4838                    Token.class,
4839                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4840        return nativeCallback.feature;
4841    }
4842    public void savePerson(PersonBean personBean,
4843        String idPhotoMd5,
4844        String featureMd5,
4845        Token token,
4846        FutureCallback<PersonBean>callback){
4847        factory.addCallback(savePerson(personBean,idPhotoMd5,featureMd5,token), callback);
4848    }
4849    /**
4850     * see also {@link net.gdface.facelog.IFaceLog#savePerson(net.gdface.facelog.db.PersonBean,net.gdface.facelog.Token)}
4851     */
4852    public ListenableFuture<PersonBean> savePerson(PersonBean personBean,
4853        Token token){
4854        MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean> nativeCallback = 
4855            new MethodCallback<PersonBean,net.gdface.facelog.client.thrift.PersonBean>(
4856                new Function<net.gdface.facelog.client.thrift.PersonBean,PersonBean>() {
4857                        @Override
4858                        public PersonBean apply(net.gdface.facelog.client.thrift.PersonBean input) {
4859                            return TypeTransformer.getInstance().to(
4860                    input,
4861                    net.gdface.facelog.client.thrift.PersonBean.class,
4862                    PersonBean.class);
4863                }});
4864        nativeCallback.service.savePerson(
4865                TypeTransformer.getInstance().to(
4866                    personBean,
4867                    PersonBean.class,
4868                    net.gdface.facelog.client.thrift.PersonBean.class),
4869            TypeTransformer.getInstance().to(
4870                    token,
4871                    Token.class,
4872                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4873        return nativeCallback.feature;
4874    }
4875    public void savePerson(PersonBean personBean,
4876        Token token,
4877        FutureCallback<PersonBean>callback){
4878        factory.addCallback(savePerson(personBean,token), callback);
4879    }
4880    /**
4881     * see also {@link net.gdface.facelog.IFaceLog#savePersonGroup(net.gdface.facelog.db.PersonGroupBean,net.gdface.facelog.Token)}
4882     */
4883    public ListenableFuture<PersonGroupBean> savePersonGroup(PersonGroupBean personGroupBean,
4884        Token token){
4885        MethodCallback<PersonGroupBean,net.gdface.facelog.client.thrift.PersonGroupBean> nativeCallback = 
4886            new MethodCallback<PersonGroupBean,net.gdface.facelog.client.thrift.PersonGroupBean>(
4887                new Function<net.gdface.facelog.client.thrift.PersonGroupBean,PersonGroupBean>() {
4888                        @Override
4889                        public PersonGroupBean apply(net.gdface.facelog.client.thrift.PersonGroupBean input) {
4890                            return TypeTransformer.getInstance().to(
4891                    input,
4892                    net.gdface.facelog.client.thrift.PersonGroupBean.class,
4893                    PersonGroupBean.class);
4894                }});
4895        nativeCallback.service.savePersonGroup(
4896                TypeTransformer.getInstance().to(
4897                    personGroupBean,
4898                    PersonGroupBean.class,
4899                    net.gdface.facelog.client.thrift.PersonGroupBean.class),
4900            TypeTransformer.getInstance().to(
4901                    token,
4902                    Token.class,
4903                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4904        return nativeCallback.feature;
4905    }
4906    public void savePersonGroup(PersonGroupBean personGroupBean,
4907        Token token,
4908        FutureCallback<PersonGroupBean>callback){
4909        factory.addCallback(savePersonGroup(personGroupBean,token), callback);
4910    }
4911    /**
4912     * see also {@link net.gdface.facelog.IFaceLog#savePersons(java.util.List,java.util.List,net.gdface.facelog.Token)}
4913     */
4914    public ListenableFuture<Integer> savePersons(List<byte[]> photos,
4915        List<PersonBean> persons,
4916        Token token){
4917        MethodCallback<Integer,Integer> nativeCallback = 
4918            new MethodCallback<Integer,Integer>(
4919                new Function<Integer,Integer>() {
4920                        @Override
4921                        public Integer apply(Integer input) {
4922                            return input;
4923                }});
4924        nativeCallback.service.savePersonsWithPhoto(
4925                TypeTransformer.getInstance().to(
4926                    photos,
4927                    byte[].class,
4928                    okio.ByteString.class),
4929            TypeTransformer.getInstance().to(
4930                    persons,
4931                    PersonBean.class,
4932                    net.gdface.facelog.client.thrift.PersonBean.class),
4933            TypeTransformer.getInstance().to(
4934                    token,
4935                    Token.class,
4936                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4937        return nativeCallback.feature;
4938    }
4939    public void savePersons(List<byte[]> photos,
4940        List<PersonBean> persons,
4941        Token token,
4942        FutureCallback<Integer>callback){
4943        factory.addCallback(savePersons(photos,persons,token), callback);
4944    }
4945    /**
4946     * see also {@link net.gdface.facelog.IFaceLog#savePersons(java.util.List,net.gdface.facelog.Token)}
4947     */
4948    public ListenableFuture<Void> savePersons(List<PersonBean> persons,
4949        Token token){
4950        MethodCallback<Void,Void> nativeCallback = 
4951            new MethodCallback<Void,Void>(
4952                new Function<Void,Void>() {
4953                        @Override
4954                        public Void apply(Void input) {
4955                            return TypeTransformer.getInstance().to(
4956                    input,
4957                    Void.class,
4958                    Void.class);
4959                }});
4960        nativeCallback.service.savePersons(
4961                TypeTransformer.getInstance().to(
4962                    persons,
4963                    PersonBean.class,
4964                    net.gdface.facelog.client.thrift.PersonBean.class),
4965            TypeTransformer.getInstance().to(
4966                    token,
4967                    Token.class,
4968                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4969        return nativeCallback.feature;
4970    }
4971    public void savePersons(List<PersonBean> persons,
4972        Token token,
4973        FutureCallback<Void>callback){
4974        factory.addCallback(savePersons(persons,token), callback);
4975    }
4976    /**
4977     * see also {@link net.gdface.facelog.IFaceLog#saveServiceConfig(net.gdface.facelog.Token)}
4978     */
4979    public ListenableFuture<Void> saveServiceConfig(Token token){
4980        MethodCallback<Void,Void> nativeCallback = 
4981            new MethodCallback<Void,Void>(
4982                new Function<Void,Void>() {
4983                        @Override
4984                        public Void apply(Void input) {
4985                            return TypeTransformer.getInstance().to(
4986                    input,
4987                    Void.class,
4988                    Void.class);
4989                }});
4990        nativeCallback.service.saveServiceConfig(
4991                TypeTransformer.getInstance().to(
4992                    token,
4993                    Token.class,
4994                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
4995        return nativeCallback.feature;
4996    }
4997    public void saveServiceConfig(Token token,
4998        FutureCallback<Void>callback){
4999        factory.addCallback(saveServiceConfig(token), callback);
5000    }
5001    /**
5002     * see also {@link net.gdface.facelog.IFaceLog#sdkTaskQueueOf(java.lang.String,java.lang.String,net.gdface.facelog.Token)}
5003     */
5004    public ListenableFuture<String> sdkTaskQueueOf(String task,
5005        String sdkVersion,
5006        Token token){
5007        MethodCallback<String,String> nativeCallback = 
5008            new MethodCallback<String,String>(
5009                new Function<String,String>() {
5010                        @Override
5011                        public String apply(String input) {
5012                            return input;
5013                }});
5014        nativeCallback.service.sdkTaskQueueOf(
5015                task,
5016            sdkVersion,
5017            TypeTransformer.getInstance().to(
5018                    token,
5019                    Token.class,
5020                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
5021        return nativeCallback.feature;
5022    }
5023    public void sdkTaskQueueOf(String task,
5024        String sdkVersion,
5025        Token token,
5026        FutureCallback<String>callback){
5027        factory.addCallback(sdkTaskQueueOf(task,sdkVersion,token), callback);
5028    }
5029    /**
5030     * see also {@link net.gdface.facelog.IFaceLog#setPersonExpiryDate(int,java.lang.String,net.gdface.facelog.Token)}
5031     */
5032    public ListenableFuture<Void> setPersonExpiryDate(int personId,
5033        String expiryDate,
5034        Token token){
5035        MethodCallback<Void,Void> nativeCallback = 
5036            new MethodCallback<Void,Void>(
5037                new Function<Void,Void>() {
5038                        @Override
5039                        public Void apply(Void input) {
5040                            return TypeTransformer.getInstance().to(
5041                    input,
5042                    Void.class,
5043                    Void.class);
5044                }});
5045        nativeCallback.service.setPersonExpiryDateTimeStr(
5046                personId,
5047            expiryDate,
5048            TypeTransformer.getInstance().to(
5049                    token,
5050                    Token.class,
5051                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
5052        return nativeCallback.feature;
5053    }
5054    public void setPersonExpiryDate(int personId,
5055        String expiryDate,
5056        Token token,
5057        FutureCallback<Void>callback){
5058        factory.addCallback(setPersonExpiryDate(personId,expiryDate,token), callback);
5059    }
5060    /**
5061     * see also {@link net.gdface.facelog.IFaceLog#setPersonExpiryDate(int,long,net.gdface.facelog.Token)}
5062     */
5063    public ListenableFuture<Void> setPersonExpiryDate(int personId,
5064        long expiryDate,
5065        Token token){
5066        MethodCallback<Void,Void> nativeCallback = 
5067            new MethodCallback<Void,Void>(
5068                new Function<Void,Void>() {
5069                        @Override
5070                        public Void apply(Void input) {
5071                            return TypeTransformer.getInstance().to(
5072                    input,
5073                    Void.class,
5074                    Void.class);
5075                }});
5076        nativeCallback.service.setPersonExpiryDate(
5077                personId,
5078            expiryDate,
5079            TypeTransformer.getInstance().to(
5080                    token,
5081                    Token.class,
5082                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
5083        return nativeCallback.feature;
5084    }
5085    public void setPersonExpiryDate(int personId,
5086        long expiryDate,
5087        Token token,
5088        FutureCallback<Void>callback){
5089        factory.addCallback(setPersonExpiryDate(personId,expiryDate,token), callback);
5090    }
5091    /**
5092     * see also {@link net.gdface.facelog.IFaceLog#setPersonExpiryDate(java.util.List,long,net.gdface.facelog.Token)}
5093     */
5094    public ListenableFuture<Void> setPersonExpiryDate(List<Integer> personIdList,
5095        long expiryDate,
5096        Token token){
5097        MethodCallback<Void,Void> nativeCallback = 
5098            new MethodCallback<Void,Void>(
5099                new Function<Void,Void>() {
5100                        @Override
5101                        public Void apply(Void input) {
5102                            return TypeTransformer.getInstance().to(
5103                    input,
5104                    Void.class,
5105                    Void.class);
5106                }});
5107        nativeCallback.service.setPersonExpiryDateList(
5108                TypeTransformer.getInstance().to(
5109                    personIdList,
5110                    Integer.class,
5111                    Integer.class),
5112            expiryDate,
5113            TypeTransformer.getInstance().to(
5114                    token,
5115                    Token.class,
5116                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
5117        return nativeCallback.feature;
5118    }
5119    public void setPersonExpiryDate(List<Integer> personIdList,
5120        long expiryDate,
5121        Token token,
5122        FutureCallback<Void>callback){
5123        factory.addCallback(setPersonExpiryDate(personIdList,expiryDate,token), callback);
5124    }
5125    /**
5126     * see also {@link net.gdface.facelog.IFaceLog#setProperties(java.util.Map,net.gdface.facelog.Token)}
5127     */
5128    public ListenableFuture<Void> setProperties(Map<String, String> config,
5129        Token token){
5130        MethodCallback<Void,Void> nativeCallback = 
5131            new MethodCallback<Void,Void>(
5132                new Function<Void,Void>() {
5133                        @Override
5134                        public Void apply(Void input) {
5135                            return TypeTransformer.getInstance().to(
5136                    input,
5137                    Void.class,
5138                    Void.class);
5139                }});
5140        nativeCallback.service.setProperties(
5141                TypeTransformer.getInstance().to(
5142                    config,
5143                    String.class,
5144                    String.class,
5145                    String.class,
5146                    String.class),
5147            TypeTransformer.getInstance().to(
5148                    token,
5149                    Token.class,
5150                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
5151        return nativeCallback.feature;
5152    }
5153    public void setProperties(Map<String, String> config,
5154        Token token,
5155        FutureCallback<Void>callback){
5156        factory.addCallback(setProperties(config,token), callback);
5157    }
5158    /**
5159     * see also {@link net.gdface.facelog.IFaceLog#setProperty(java.lang.String,java.lang.String,net.gdface.facelog.Token)}
5160     */
5161    public ListenableFuture<Void> setProperty(String key,
5162        String value,
5163        Token token){
5164        MethodCallback<Void,Void> nativeCallback = 
5165            new MethodCallback<Void,Void>(
5166                new Function<Void,Void>() {
5167                        @Override
5168                        public Void apply(Void input) {
5169                            return TypeTransformer.getInstance().to(
5170                    input,
5171                    Void.class,
5172                    Void.class);
5173                }});
5174        nativeCallback.service.setProperty(
5175                key,
5176            value,
5177            TypeTransformer.getInstance().to(
5178                    token,
5179                    Token.class,
5180                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
5181        return nativeCallback.feature;
5182    }
5183    public void setProperty(String key,
5184        String value,
5185        Token token,
5186        FutureCallback<Void>callback){
5187        factory.addCallback(setProperty(key,value,token), callback);
5188    }
5189    /**
5190     * see also {@link net.gdface.facelog.IFaceLog#taskQueueOf(java.lang.String,net.gdface.facelog.Token)}
5191     */
5192    public ListenableFuture<String> taskQueueOf(String task,
5193        Token token){
5194        MethodCallback<String,String> nativeCallback = 
5195            new MethodCallback<String,String>(
5196                new Function<String,String>() {
5197                        @Override
5198                        public String apply(String input) {
5199                            return input;
5200                }});
5201        nativeCallback.service.taskQueueOf(
5202                task,
5203            TypeTransformer.getInstance().to(
5204                    token,
5205                    Token.class,
5206                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
5207        return nativeCallback.feature;
5208    }
5209    public void taskQueueOf(String task,
5210        Token token,
5211        FutureCallback<String>callback){
5212        factory.addCallback(taskQueueOf(task,token), callback);
5213    }
5214    /**
5215     * see also {@link net.gdface.facelog.IFaceLog#unbindBorder(int,int,net.gdface.facelog.Token)}
5216     */
5217    public ListenableFuture<Void> unbindBorder(int personGroupId,
5218        int deviceGroupId,
5219        Token token){
5220        MethodCallback<Void,Void> nativeCallback = 
5221            new MethodCallback<Void,Void>(
5222                new Function<Void,Void>() {
5223                        @Override
5224                        public Void apply(Void input) {
5225                            return TypeTransformer.getInstance().to(
5226                    input,
5227                    Void.class,
5228                    Void.class);
5229                }});
5230        nativeCallback.service.unbindBorder(
5231                personGroupId,
5232            deviceGroupId,
5233            TypeTransformer.getInstance().to(
5234                    token,
5235                    Token.class,
5236                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
5237        return nativeCallback.feature;
5238    }
5239    public void unbindBorder(int personGroupId,
5240        int deviceGroupId,
5241        Token token,
5242        FutureCallback<Void>callback){
5243        factory.addCallback(unbindBorder(personGroupId,deviceGroupId,token), callback);
5244    }
5245    /**
5246     * see also {@link net.gdface.facelog.IFaceLog#unregisterDevice(net.gdface.facelog.Token)}
5247     */
5248    public ListenableFuture<Void> unregisterDevice(Token token){
5249        MethodCallback<Void,Void> nativeCallback = 
5250            new MethodCallback<Void,Void>(
5251                new Function<Void,Void>() {
5252                        @Override
5253                        public Void apply(Void input) {
5254                            return TypeTransformer.getInstance().to(
5255                    input,
5256                    Void.class,
5257                    Void.class);
5258                }});
5259        nativeCallback.service.unregisterDevice(
5260                TypeTransformer.getInstance().to(
5261                    token,
5262                    Token.class,
5263                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
5264        return nativeCallback.feature;
5265    }
5266    public void unregisterDevice(Token token,
5267        FutureCallback<Void>callback){
5268        factory.addCallback(unregisterDevice(token), callback);
5269    }
5270    /**
5271     * see also {@link net.gdface.facelog.IFaceLog#updateDevice(net.gdface.facelog.db.DeviceBean,net.gdface.facelog.Token)}
5272     */
5273    public ListenableFuture<DeviceBean> updateDevice(DeviceBean deviceBean,
5274        Token token){
5275        MethodCallback<DeviceBean,net.gdface.facelog.client.thrift.DeviceBean> nativeCallback = 
5276            new MethodCallback<DeviceBean,net.gdface.facelog.client.thrift.DeviceBean>(
5277                new Function<net.gdface.facelog.client.thrift.DeviceBean,DeviceBean>() {
5278                        @Override
5279                        public DeviceBean apply(net.gdface.facelog.client.thrift.DeviceBean input) {
5280                            return TypeTransformer.getInstance().to(
5281                    input,
5282                    net.gdface.facelog.client.thrift.DeviceBean.class,
5283                    DeviceBean.class);
5284                }});
5285        nativeCallback.service.updateDevice(
5286                TypeTransformer.getInstance().to(
5287                    deviceBean,
5288                    DeviceBean.class,
5289                    net.gdface.facelog.client.thrift.DeviceBean.class),
5290            TypeTransformer.getInstance().to(
5291                    token,
5292                    Token.class,
5293                    net.gdface.facelog.client.thrift.Token.class),nativeCallback);
5294        return nativeCallback.feature;
5295    }
5296    public void updateDevice(DeviceBean deviceBean,
5297        Token token,
5298        FutureCallback<DeviceBean>callback){
5299        factory.addCallback(updateDevice(deviceBean,token), callback);
5300    }
5301    /**
5302     * see also {@link net.gdface.facelog.IFaceLog#version()}
5303     */
5304    public ListenableFuture<String> version(){
5305        MethodCallback<String,String> nativeCallback = 
5306            new MethodCallback<String,String>(
5307                new Function<String,String>() {
5308                        @Override
5309                        public String apply(String input) {
5310                            return input;
5311                }});
5312        nativeCallback.service.version(
5313                nativeCallback);
5314        return nativeCallback.feature;
5315    }
5316    public void version(FutureCallback<String>callback){
5317        factory.addCallback(version(), callback);
5318    }
5319    /**
5320     * see also {@link net.gdface.facelog.IFaceLog#versionInfo()}
5321     */
5322    public ListenableFuture<Map<String, String>> versionInfo(){
5323        MethodCallback<Map<String, String>,Map<String,String>> nativeCallback = 
5324            new MethodCallback<Map<String, String>,Map<String,String>>(
5325                new Function<Map<String,String>,Map<String, String>>() {
5326                        @Override
5327                        public Map<String, String> apply(Map<String,String> input) {
5328                            return TypeTransformer.getInstance().to(
5329                    input,
5330                    String.class,
5331                    String.class,
5332                    String.class,
5333                    String.class);
5334                }});
5335        nativeCallback.service.versionInfo(
5336                nativeCallback);
5337        return nativeCallback.feature;
5338    }
5339    public void versionInfo(FutureCallback<Map<String, String>>callback){
5340        factory.addCallback(versionInfo(), callback);
5341    }
5342}