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.facedb.thrift; 006import java.nio.ByteBuffer; 007import java.util.Date; 008import java.util.List; 009import java.util.Map; 010import net.gdface.facedb.FaceDb; 011import net.gdface.facedb.SearchResult; 012import net.gdface.facedb.db.FaceBean; 013import net.gdface.facedb.db.FeatureBean; 014import net.gdface.facedb.db.ImageBean; 015import net.gdface.image.MatType; 016import net.gdface.sdk.CodeInfo; 017import net.gdface.sdk.CompareResult; 018import net.gdface.thrift.TypeTransformer; 019 020import java.io.IOException; 021import com.google.common.base.Function; 022import com.google.common.net.HostAndPort; 023import com.google.common.util.concurrent.FutureCallback; 024import com.google.common.util.concurrent.ListenableFuture; 025import com.google.common.util.concurrent.SettableFuture; 026import com.microsoft.thrifty.ThriftException; 027import com.microsoft.thrifty.service.AsyncClientBase; 028import com.microsoft.thrifty.service.ServiceMethodCallback; 029 030import net.gdface.thrift.ClientFactory; 031import static com.google.common.base.Preconditions.*; 032 033/** 034 * 基于thrift/swift框架生成的client端代码提供{@link FaceDb}接口的异步RPC实现(线程安全)<br> 035 * 转发所有{@link FaceDb}接口方法到{@link net.gdface.facedb.thrift.client.FaceDbClient}实例<br> 036 * 所有服务端抛出的{@link RuntimeException}异常被封装到{@link ServiceRuntimeException}中抛出<br> 037 * Example:<br> 038 * <pre> 039 * FaceDbThriftClientAsync thriftInstance = ClientFactory 040 * .builder() 041 * .setHostAndPort("127.0.0.1",26413) 042 * .build(FaceDbThriftClientAsync.class); 043 * </pre> 044 * 计算机生成代码(generated by automated tools ThriftServiceDecoratorGenerator @author guyadong)<br> 045 * @author guyadong 046 * 047 */ 048public class FaceDbThriftClientAsync { 049 private final ClientFactory factory; 050 051 public ClientFactory getFactory() { 052 return factory; 053 } 054 public FaceDbThriftClientAsync(ClientFactory factory) { 055 super(); 056 this.factory = checkNotNull(factory,"factory is null"); 057 } 058 /** 059 * @param host RPC service host 060 * @param port RPC service port 061 */ 062 public FaceDbThriftClientAsync(String host,int port) { 063 this(ClientFactory.builder().setHostAndPort(host,port)); 064 } 065 /** 066 * @param hostAndPort RPC service host and port 067 */ 068 public FaceDbThriftClientAsync(HostAndPort hostAndPort) { 069 this(ClientFactory.builder().setHostAndPort(hostAndPort)); 070 } 071 /** 072 * test if connectable for RPC service 073 * @return return {@code true} if connectable ,otherwise {@code false} 074 */ 075 public boolean testConnect(){ 076 return factory.testConnect(); 077 } 078 private class MethodCallback<L,R> implements ServiceMethodCallback<R>{ 079 private final AsyncClientBase.Listener closeListener = new AsyncClientBase.Listener(){ 080 @Override 081 public void onTransportClosed() { 082 } 083 084 @Override 085 public void onError(Throwable error) { 086 MethodCallback.this.onError(error); 087 } 088 }; 089 final net.gdface.facedb.thrift.client.FaceDbClient service = factory.applyInstance(net.gdface.facedb.thrift.client.FaceDbClient.class,closeListener); 090 final SettableFuture<L> feature = SettableFuture.create(); 091 final Function<R,L> transformer; 092 093 MethodCallback(Function<R, L> transformer) { 094 this.transformer = transformer; 095 } 096 097 @Override 098 public void onSuccess(R result) { 099 feature.set(transformer.apply(result)); 100 try { 101 service.close(); 102 } catch (IOException e) { 103 } 104 } 105 106 @Override 107 public void onError(Throwable error) { 108 if(error instanceof ThriftException ){ 109 if(((ThriftException)error).kind == ThriftException.Kind.MISSING_RESULT ){ 110 this.onSuccess(null); 111 } 112 } 113 feature.setException(error); 114 try { 115 service.close(); 116 } catch (IOException e) { 117 } 118 } 119 } 120 @Override 121 public String toString() { 122 StringBuilder builder = new StringBuilder(); 123 builder.append("FaceDbThriftClientAsync [factory="); 124 builder.append(factory); 125 builder.append(",interface="); 126 builder.append(FaceDb.class.getName()); 127 builder.append("]"); 128 return builder.toString(); 129 } 130 /** 131 * 默认的{@link FutureCallback}实现 132 * @author guyadong 133 * 134 * @param <V> 135 */ 136 public static class DefaultCallback<V> implements FutureCallback<V>{ 137 @Override 138 public void onSuccess(V result) { 139 // DO NOTHING 140 } 141 @Override 142 public void onFailure(Throwable t) { 143 try{ 144 throw t; 145 } 146 catch(net.gdface.facedb.thrift.client.NotFoundBeanException e){ 147 onNotFoundBeanException(e); 148 } 149 catch(net.gdface.facedb.thrift.client.DuplicateRecordException e){ 150 onDuplicateRecordException(e); 151 } 152 catch(net.gdface.facedb.thrift.client.ImageErrorException e){ 153 onImageErrorException(e); 154 } 155 catch(net.gdface.facedb.thrift.client.NotFaceDetectedException e){ 156 onNotFaceDetectedException(e); 157 } 158 catch(net.gdface.facedb.thrift.client.ServiceRuntimeException e){ 159 onServiceRuntimeException(e); 160 } 161 catch(Throwable e){ 162 onThrowable(e); 163 } 164 } 165 protected void onNotFoundBeanException(net.gdface.facedb.thrift.client.NotFoundBeanException e){ 166 System.out.println(e.serviceStackTraceMessage); 167 } 168 protected void onDuplicateRecordException(net.gdface.facedb.thrift.client.DuplicateRecordException e){ 169 System.out.println(e.serviceStackTraceMessage); 170 } 171 protected void onImageErrorException(net.gdface.facedb.thrift.client.ImageErrorException e){ 172 System.out.println(e.serviceStackTraceMessage); 173 } 174 protected void onNotFaceDetectedException(net.gdface.facedb.thrift.client.NotFaceDetectedException e){ 175 System.out.println(e.serviceStackTraceMessage); 176 } 177 protected void onServiceRuntimeException(net.gdface.facedb.thrift.client.ServiceRuntimeException e){ 178 System.out.println(e.serviceStackTraceMessage); 179 } 180 protected void onThrowable(Throwable e){ 181 e.printStackTrace(); 182 } 183 } 184 /** 185 * see also {@link net.gdface.facedb.FaceDb#addFeature(byte[],java.util.Map)} 186 */ 187 public ListenableFuture<FeatureBean> addFeature(byte[] feature, 188 Map<ByteBuffer, CodeInfo> faces){ 189 MethodCallback<FeatureBean,net.gdface.facedb.thrift.client.FeatureBean> nativeCallback = 190 new MethodCallback<FeatureBean,net.gdface.facedb.thrift.client.FeatureBean>( 191 new Function<net.gdface.facedb.thrift.client.FeatureBean,FeatureBean>() { 192 @Override 193 public FeatureBean apply(net.gdface.facedb.thrift.client.FeatureBean input) { 194 return TypeTransformer.getInstance().to( 195 input, 196 net.gdface.facedb.thrift.client.FeatureBean.class, 197 FeatureBean.class); 198 }}); 199 nativeCallback.service.addFeature( 200 TypeTransformer.getInstance().to( 201 feature, 202 byte[].class, 203 okio.ByteString.class), 204 TypeTransformer.getInstance().to( 205 faces, 206 ByteBuffer.class, 207 CodeInfo.class, 208 okio.ByteString.class, 209 net.gdface.facedb.thrift.client.CodeInfo.class),nativeCallback); 210 return nativeCallback.feature; 211 } 212 public void addFeature(byte[] feature, 213 Map<ByteBuffer, CodeInfo> faces, 214 FutureCallback<FeatureBean>callback){ 215 factory.addCallback(addFeature(feature,faces), callback); 216 } 217 /** 218 * see also {@link net.gdface.facedb.FaceDb#addImage(byte[],java.util.List)} 219 */ 220 public ListenableFuture<ImageBean> addImage(byte[] imgData, 221 List<CodeInfo> features){ 222 MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean> nativeCallback = 223 new MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean>( 224 new Function<net.gdface.facedb.thrift.client.ImageBean,ImageBean>() { 225 @Override 226 public ImageBean apply(net.gdface.facedb.thrift.client.ImageBean input) { 227 return TypeTransformer.getInstance().to( 228 input, 229 net.gdface.facedb.thrift.client.ImageBean.class, 230 ImageBean.class); 231 }}); 232 nativeCallback.service.addImage( 233 TypeTransformer.getInstance().to( 234 imgData, 235 byte[].class, 236 okio.ByteString.class), 237 TypeTransformer.getInstance().to( 238 features, 239 CodeInfo.class, 240 net.gdface.facedb.thrift.client.CodeInfo.class),nativeCallback); 241 return nativeCallback.feature; 242 } 243 public void addImage(byte[] imgData, 244 List<CodeInfo> features, 245 FutureCallback<ImageBean>callback){ 246 factory.addCallback(addImage(imgData,features), callback); 247 } 248 /** 249 * see also {@link net.gdface.facedb.FaceDb#addImageIfAbsent(byte[],net.gdface.sdk.CodeInfo,double)} 250 */ 251 public ListenableFuture<ImageBean> addImageIfAbsent(byte[] imgData, 252 CodeInfo code, 253 double similarty){ 254 MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean> nativeCallback = 255 new MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean>( 256 new Function<net.gdface.facedb.thrift.client.ImageBean,ImageBean>() { 257 @Override 258 public ImageBean apply(net.gdface.facedb.thrift.client.ImageBean input) { 259 return TypeTransformer.getInstance().to( 260 input, 261 net.gdface.facedb.thrift.client.ImageBean.class, 262 ImageBean.class); 263 }}); 264 nativeCallback.service.addImageIfAbsent( 265 TypeTransformer.getInstance().to( 266 imgData, 267 byte[].class, 268 okio.ByteString.class), 269 TypeTransformer.getInstance().to( 270 code, 271 CodeInfo.class, 272 net.gdface.facedb.thrift.client.CodeInfo.class), 273 similarty,nativeCallback); 274 return nativeCallback.feature; 275 } 276 public void addImageIfAbsent(byte[] imgData, 277 CodeInfo code, 278 double similarty, 279 FutureCallback<ImageBean>callback){ 280 factory.addCallback(addImageIfAbsent(imgData,code,similarty), callback); 281 } 282 /** 283 * see also {@link net.gdface.facedb.FaceDb#compareFaces(java.lang.String,byte[],net.gdface.sdk.CodeInfo[])} 284 */ 285 public ListenableFuture<double[]> compareFaces(String featureId, 286 byte[] imgData, 287 CodeInfo[] facePos){ 288 MethodCallback<double[],java.util.List<Double>> nativeCallback = 289 new MethodCallback<double[],java.util.List<Double>>( 290 new Function<java.util.List<Double>,double[]>() { 291 @Override 292 public double[] apply(java.util.List<Double> input) { 293 return TypeTransformer.getInstance().todoubleArray( 294 input, 295 double.class, 296 double.class); 297 }}); 298 nativeCallback.service.compareFaces( 299 featureId, 300 TypeTransformer.getInstance().to( 301 imgData, 302 byte[].class, 303 okio.ByteString.class), 304 TypeTransformer.getInstance().to( 305 facePos, 306 CodeInfo.class, 307 net.gdface.facedb.thrift.client.CodeInfo.class),nativeCallback); 308 return nativeCallback.feature; 309 } 310 public void compareFaces(String featureId, 311 byte[] imgData, 312 CodeInfo[] facePos, 313 FutureCallback<double[]>callback){ 314 factory.addCallback(compareFaces(featureId,imgData,facePos), callback); 315 } 316 /** 317 * see also {@link net.gdface.facedb.FaceDb#compareFeature(java.lang.String,byte[])} 318 */ 319 public ListenableFuture<Double> compareFeature(String featureId, 320 byte[] feature){ 321 MethodCallback<Double,Double> nativeCallback = 322 new MethodCallback<Double,Double>( 323 new Function<Double,Double>() { 324 @Override 325 public Double apply(Double input) { 326 return input; 327 }}); 328 nativeCallback.service.compareFeature( 329 featureId, 330 TypeTransformer.getInstance().to( 331 feature, 332 byte[].class, 333 okio.ByteString.class),nativeCallback); 334 return nativeCallback.feature; 335 } 336 public void compareFeature(String featureId, 337 byte[] feature, 338 FutureCallback<Double>callback){ 339 factory.addCallback(compareFeature(featureId,feature), callback); 340 } 341 /** 342 * see also {@link net.gdface.facedb.FaceDb#compareFeatureId(java.lang.String,java.lang.String)} 343 */ 344 public ListenableFuture<Double> compareFeatureId(String featureId1, 345 String featureId2){ 346 MethodCallback<Double,Double> nativeCallback = 347 new MethodCallback<Double,Double>( 348 new Function<Double,Double>() { 349 @Override 350 public Double apply(Double input) { 351 return input; 352 }}); 353 nativeCallback.service.compareFeatureId( 354 featureId1, 355 featureId2,nativeCallback); 356 return nativeCallback.feature; 357 } 358 public void compareFeatureId(String featureId1, 359 String featureId2, 360 FutureCallback<Double>callback){ 361 factory.addCallback(compareFeatureId(featureId1,featureId2), callback); 362 } 363 /** 364 * see also {@link net.gdface.facedb.FaceDb#compareFeatures(java.lang.String,net.gdface.sdk.CodeInfo[])} 365 */ 366 public ListenableFuture<double[]> compareFeatures(String featureId, 367 CodeInfo[] features){ 368 MethodCallback<double[],java.util.List<Double>> nativeCallback = 369 new MethodCallback<double[],java.util.List<Double>>( 370 new Function<java.util.List<Double>,double[]>() { 371 @Override 372 public double[] apply(java.util.List<Double> input) { 373 return TypeTransformer.getInstance().todoubleArray( 374 input, 375 double.class, 376 double.class); 377 }}); 378 nativeCallback.service.compareFeatures( 379 featureId, 380 TypeTransformer.getInstance().to( 381 features, 382 CodeInfo.class, 383 net.gdface.facedb.thrift.client.CodeInfo.class),nativeCallback); 384 return nativeCallback.feature; 385 } 386 public void compareFeatures(String featureId, 387 CodeInfo[] features, 388 FutureCallback<double[]>callback){ 389 factory.addCallback(compareFeatures(featureId,features), callback); 390 } 391 /** 392 * see also {@link net.gdface.facedb.FaceDb#dbCapacity()} 393 */ 394 public ListenableFuture<Map<String, String>> dbCapacity(){ 395 MethodCallback<Map<String, String>,Map<String,String>> nativeCallback = 396 new MethodCallback<Map<String, String>,Map<String,String>>( 397 new Function<Map<String,String>,Map<String, String>>() { 398 @Override 399 public Map<String, String> apply(Map<String,String> input) { 400 return TypeTransformer.getInstance().to( 401 input, 402 String.class, 403 String.class, 404 String.class, 405 String.class); 406 }}); 407 nativeCallback.service.dbCapacity( 408 nativeCallback); 409 return nativeCallback.feature; 410 } 411 public void dbCapacity(FutureCallback<Map<String, String>>callback){ 412 factory.addCallback(dbCapacity(), callback); 413 } 414 /** 415 * see also {@link net.gdface.facedb.FaceDb#deleteFeature(java.lang.String,boolean)} 416 */ 417 public ListenableFuture<Boolean> deleteFeature(String featureId, 418 boolean cascade){ 419 MethodCallback<Boolean,Boolean> nativeCallback = 420 new MethodCallback<Boolean,Boolean>( 421 new Function<Boolean,Boolean>() { 422 @Override 423 public Boolean apply(Boolean input) { 424 return input; 425 }}); 426 nativeCallback.service.deleteFeature( 427 featureId, 428 cascade,nativeCallback); 429 return nativeCallback.feature; 430 } 431 public void deleteFeature(String featureId, 432 boolean cascade, 433 FutureCallback<Boolean>callback){ 434 factory.addCallback(deleteFeature(featureId,cascade), callback); 435 } 436 /** 437 * see also {@link net.gdface.facedb.FaceDb#deleteFeatures(java.util.List,boolean)} 438 */ 439 public ListenableFuture<Integer> deleteFeatures(List<String> featureIdList, 440 boolean cascade){ 441 MethodCallback<Integer,Integer> nativeCallback = 442 new MethodCallback<Integer,Integer>( 443 new Function<Integer,Integer>() { 444 @Override 445 public Integer apply(Integer input) { 446 return input; 447 }}); 448 nativeCallback.service.deleteFeatures( 449 featureIdList, 450 cascade,nativeCallback); 451 return nativeCallback.feature; 452 } 453 public void deleteFeatures(List<String> featureIdList, 454 boolean cascade, 455 FutureCallback<Integer>callback){ 456 factory.addCallback(deleteFeatures(featureIdList,cascade), callback); 457 } 458 /** 459 * see also {@link net.gdface.facedb.FaceDb#deleteImage(java.lang.String,boolean)} 460 */ 461 public ListenableFuture<Boolean> deleteImage(String imgMd5, 462 boolean cascade){ 463 MethodCallback<Boolean,Boolean> nativeCallback = 464 new MethodCallback<Boolean,Boolean>( 465 new Function<Boolean,Boolean>() { 466 @Override 467 public Boolean apply(Boolean input) { 468 return input; 469 }}); 470 nativeCallback.service.deleteImage( 471 imgMd5, 472 cascade,nativeCallback); 473 return nativeCallback.feature; 474 } 475 public void deleteImage(String imgMd5, 476 boolean cascade, 477 FutureCallback<Boolean>callback){ 478 factory.addCallback(deleteImage(imgMd5,cascade), callback); 479 } 480 /** 481 * see also {@link net.gdface.facedb.FaceDb#deleteImages(java.util.List,boolean)} 482 */ 483 public ListenableFuture<Integer> deleteImages(List<String> imgMd5List, 484 boolean cascade){ 485 MethodCallback<Integer,Integer> nativeCallback = 486 new MethodCallback<Integer,Integer>( 487 new Function<Integer,Integer>() { 488 @Override 489 public Integer apply(Integer input) { 490 return input; 491 }}); 492 nativeCallback.service.deleteImages( 493 imgMd5List, 494 cascade,nativeCallback); 495 return nativeCallback.feature; 496 } 497 public void deleteImages(List<String> imgMd5List, 498 boolean cascade, 499 FutureCallback<Integer>callback){ 500 factory.addCallback(deleteImages(imgMd5List,cascade), callback); 501 } 502 /** 503 * see also {@link net.gdface.facedb.FaceDb#detectAndAddFeatures(byte[],int)} 504 */ 505 public ListenableFuture<ImageBean> detectAndAddFeatures(byte[] imgData, 506 int faceNum){ 507 MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean> nativeCallback = 508 new MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean>( 509 new Function<net.gdface.facedb.thrift.client.ImageBean,ImageBean>() { 510 @Override 511 public ImageBean apply(net.gdface.facedb.thrift.client.ImageBean input) { 512 return TypeTransformer.getInstance().to( 513 input, 514 net.gdface.facedb.thrift.client.ImageBean.class, 515 ImageBean.class); 516 }}); 517 nativeCallback.service.detectAndAddFeatures( 518 TypeTransformer.getInstance().to( 519 imgData, 520 byte[].class, 521 okio.ByteString.class), 522 faceNum,nativeCallback); 523 return nativeCallback.feature; 524 } 525 public void detectAndAddFeatures(byte[] imgData, 526 int faceNum, 527 FutureCallback<ImageBean>callback){ 528 factory.addCallback(detectAndAddFeatures(imgData,faceNum), callback); 529 } 530 /** 531 * see also {@link net.gdface.facedb.FaceDb#detectAndCompareFaces(java.lang.String,byte[],int)} 532 */ 533 public ListenableFuture<CompareResult> detectAndCompareFaces(String featureId, 534 byte[] imgData, 535 int faceNum){ 536 MethodCallback<CompareResult,net.gdface.facedb.thrift.client.CompareResult> nativeCallback = 537 new MethodCallback<CompareResult,net.gdface.facedb.thrift.client.CompareResult>( 538 new Function<net.gdface.facedb.thrift.client.CompareResult,CompareResult>() { 539 @Override 540 public CompareResult apply(net.gdface.facedb.thrift.client.CompareResult input) { 541 return TypeTransformer.getInstance().to( 542 input, 543 net.gdface.facedb.thrift.client.CompareResult.class, 544 CompareResult.class); 545 }}); 546 nativeCallback.service.detectAndCompareFaces( 547 featureId, 548 TypeTransformer.getInstance().to( 549 imgData, 550 byte[].class, 551 okio.ByteString.class), 552 faceNum,nativeCallback); 553 return nativeCallback.feature; 554 } 555 public void detectAndCompareFaces(String featureId, 556 byte[] imgData, 557 int faceNum, 558 FutureCallback<CompareResult>callback){ 559 factory.addCallback(detectAndCompareFaces(featureId,imgData,faceNum), callback); 560 } 561 /** 562 * see also {@link net.gdface.facedb.FaceDb#detectAndGetCodeInfo(byte[])} 563 */ 564 public ListenableFuture<CodeInfo[]> detectAndGetCodeInfo(byte[] imgData){ 565 MethodCallback<CodeInfo[],java.util.List<net.gdface.facedb.thrift.client.CodeInfo>> nativeCallback = 566 new MethodCallback<CodeInfo[],java.util.List<net.gdface.facedb.thrift.client.CodeInfo>>( 567 new Function<java.util.List<net.gdface.facedb.thrift.client.CodeInfo>,CodeInfo[]>() { 568 @Override 569 public CodeInfo[] apply(java.util.List<net.gdface.facedb.thrift.client.CodeInfo> input) { 570 return TypeTransformer.getInstance().toArray( 571 input, 572 net.gdface.facedb.thrift.client.CodeInfo.class, 573 CodeInfo.class); 574 }}); 575 nativeCallback.service.detectAndGetCodeInfo( 576 TypeTransformer.getInstance().to( 577 imgData, 578 byte[].class, 579 okio.ByteString.class),nativeCallback); 580 return nativeCallback.feature; 581 } 582 public void detectAndGetCodeInfo(byte[] imgData, 583 FutureCallback<CodeInfo[]>callback){ 584 factory.addCallback(detectAndGetCodeInfo(imgData), callback); 585 } 586 /** 587 * see also {@link net.gdface.facedb.FaceDb#detectAndGetCodeInfo(net.gdface.image.MatType,byte[],int,int)} 588 */ 589 public ListenableFuture<CodeInfo[]> detectAndGetCodeInfo(MatType matType, 590 byte[] matData, 591 int width, 592 int height){ 593 MethodCallback<CodeInfo[],java.util.List<net.gdface.facedb.thrift.client.CodeInfo>> nativeCallback = 594 new MethodCallback<CodeInfo[],java.util.List<net.gdface.facedb.thrift.client.CodeInfo>>( 595 new Function<java.util.List<net.gdface.facedb.thrift.client.CodeInfo>,CodeInfo[]>() { 596 @Override 597 public CodeInfo[] apply(java.util.List<net.gdface.facedb.thrift.client.CodeInfo> input) { 598 return TypeTransformer.getInstance().toArray( 599 input, 600 net.gdface.facedb.thrift.client.CodeInfo.class, 601 CodeInfo.class); 602 }}); 603 nativeCallback.service.detectAndGetCodeInfoMat( 604 TypeTransformer.getInstance().to( 605 matType, 606 MatType.class, 607 net.gdface.facedb.thrift.client.MatType.class), 608 TypeTransformer.getInstance().to( 609 matData, 610 byte[].class, 611 okio.ByteString.class), 612 width, 613 height,nativeCallback); 614 return nativeCallback.feature; 615 } 616 public void detectAndGetCodeInfo(MatType matType, 617 byte[] matData, 618 int width, 619 int height, 620 FutureCallback<CodeInfo[]>callback){ 621 factory.addCallback(detectAndGetCodeInfo(matType,matData,width,height), callback); 622 } 623 /** 624 * see also {@link net.gdface.facedb.FaceDb#detectAndSearchFaces(byte[],double,int,java.lang.String)} 625 */ 626 public ListenableFuture<SearchResult[]> detectAndSearchFaces(byte[] imgData, 627 double similarty, 628 int rows, 629 String where){ 630 MethodCallback<SearchResult[],java.util.List<net.gdface.facedb.thrift.client.SearchResult>> nativeCallback = 631 new MethodCallback<SearchResult[],java.util.List<net.gdface.facedb.thrift.client.SearchResult>>( 632 new Function<java.util.List<net.gdface.facedb.thrift.client.SearchResult>,SearchResult[]>() { 633 @Override 634 public SearchResult[] apply(java.util.List<net.gdface.facedb.thrift.client.SearchResult> input) { 635 return TypeTransformer.getInstance().toArray( 636 input, 637 net.gdface.facedb.thrift.client.SearchResult.class, 638 SearchResult.class); 639 }}); 640 nativeCallback.service.detectAndSearchFaces( 641 TypeTransformer.getInstance().to( 642 imgData, 643 byte[].class, 644 okio.ByteString.class), 645 similarty, 646 rows, 647 where,nativeCallback); 648 return nativeCallback.feature; 649 } 650 public void detectAndSearchFaces(byte[] imgData, 651 double similarty, 652 int rows, 653 String where, 654 FutureCallback<SearchResult[]>callback){ 655 factory.addCallback(detectAndSearchFaces(imgData,similarty,rows,where), callback); 656 } 657 /** 658 * see also {@link net.gdface.facedb.FaceDb#getCodeInfo(int)} 659 */ 660 public ListenableFuture<CodeInfo> getCodeInfo(int faceId){ 661 MethodCallback<CodeInfo,net.gdface.facedb.thrift.client.CodeInfo> nativeCallback = 662 new MethodCallback<CodeInfo,net.gdface.facedb.thrift.client.CodeInfo>( 663 new Function<net.gdface.facedb.thrift.client.CodeInfo,CodeInfo>() { 664 @Override 665 public CodeInfo apply(net.gdface.facedb.thrift.client.CodeInfo input) { 666 return TypeTransformer.getInstance().to( 667 input, 668 net.gdface.facedb.thrift.client.CodeInfo.class, 669 CodeInfo.class); 670 }}); 671 nativeCallback.service.getCodeInfo( 672 faceId,nativeCallback); 673 return nativeCallback.feature; 674 } 675 public void getCodeInfo(int faceId, 676 FutureCallback<CodeInfo>callback){ 677 factory.addCallback(getCodeInfo(faceId), callback); 678 } 679 /** 680 * see also {@link net.gdface.facedb.FaceDb#getCodeInfoByFeatureId(java.lang.String)} 681 */ 682 public ListenableFuture<CodeInfo> getCodeInfoByFeatureId(String featureId){ 683 MethodCallback<CodeInfo,net.gdface.facedb.thrift.client.CodeInfo> nativeCallback = 684 new MethodCallback<CodeInfo,net.gdface.facedb.thrift.client.CodeInfo>( 685 new Function<net.gdface.facedb.thrift.client.CodeInfo,CodeInfo>() { 686 @Override 687 public CodeInfo apply(net.gdface.facedb.thrift.client.CodeInfo input) { 688 return TypeTransformer.getInstance().to( 689 input, 690 net.gdface.facedb.thrift.client.CodeInfo.class, 691 CodeInfo.class); 692 }}); 693 nativeCallback.service.getCodeInfoByFeatureId( 694 featureId,nativeCallback); 695 return nativeCallback.feature; 696 } 697 public void getCodeInfoByFeatureId(String featureId, 698 FutureCallback<CodeInfo>callback){ 699 factory.addCallback(getCodeInfoByFeatureId(featureId), callback); 700 } 701 /** 702 * see also {@link net.gdface.facedb.FaceDb#getCodeInfoByImageMd5(java.lang.String)} 703 */ 704 public ListenableFuture<CodeInfo> getCodeInfoByImageMd5(String imageMd5){ 705 MethodCallback<CodeInfo,net.gdface.facedb.thrift.client.CodeInfo> nativeCallback = 706 new MethodCallback<CodeInfo,net.gdface.facedb.thrift.client.CodeInfo>( 707 new Function<net.gdface.facedb.thrift.client.CodeInfo,CodeInfo>() { 708 @Override 709 public CodeInfo apply(net.gdface.facedb.thrift.client.CodeInfo input) { 710 return TypeTransformer.getInstance().to( 711 input, 712 net.gdface.facedb.thrift.client.CodeInfo.class, 713 CodeInfo.class); 714 }}); 715 nativeCallback.service.getCodeInfoByImageMd5( 716 imageMd5,nativeCallback); 717 return nativeCallback.feature; 718 } 719 public void getCodeInfoByImageMd5(String imageMd5, 720 FutureCallback<CodeInfo>callback){ 721 factory.addCallback(getCodeInfoByImageMd5(imageMd5), callback); 722 } 723 /** 724 * see also {@link net.gdface.facedb.FaceDb#getCodeInfosByFeatureId(java.lang.String)} 725 */ 726 public ListenableFuture<List<CodeInfo>> getCodeInfosByFeatureId(String featureId){ 727 MethodCallback<List<CodeInfo>,List<net.gdface.facedb.thrift.client.CodeInfo>> nativeCallback = 728 new MethodCallback<List<CodeInfo>,List<net.gdface.facedb.thrift.client.CodeInfo>>( 729 new Function<List<net.gdface.facedb.thrift.client.CodeInfo>,List<CodeInfo>>() { 730 @Override 731 public List<CodeInfo> apply(List<net.gdface.facedb.thrift.client.CodeInfo> input) { 732 return TypeTransformer.getInstance().to( 733 input, 734 net.gdface.facedb.thrift.client.CodeInfo.class, 735 CodeInfo.class); 736 }}); 737 nativeCallback.service.getCodeInfosByFeatureId( 738 featureId,nativeCallback); 739 return nativeCallback.feature; 740 } 741 public void getCodeInfosByFeatureId(String featureId, 742 FutureCallback<List<CodeInfo>>callback){ 743 factory.addCallback(getCodeInfosByFeatureId(featureId), callback); 744 } 745 /** 746 * see also {@link net.gdface.facedb.FaceDb#getCodeInfosByImageMd5(java.lang.String)} 747 */ 748 public ListenableFuture<List<CodeInfo>> getCodeInfosByImageMd5(String imageMd5){ 749 MethodCallback<List<CodeInfo>,List<net.gdface.facedb.thrift.client.CodeInfo>> nativeCallback = 750 new MethodCallback<List<CodeInfo>,List<net.gdface.facedb.thrift.client.CodeInfo>>( 751 new Function<List<net.gdface.facedb.thrift.client.CodeInfo>,List<CodeInfo>>() { 752 @Override 753 public List<CodeInfo> apply(List<net.gdface.facedb.thrift.client.CodeInfo> input) { 754 return TypeTransformer.getInstance().to( 755 input, 756 net.gdface.facedb.thrift.client.CodeInfo.class, 757 CodeInfo.class); 758 }}); 759 nativeCallback.service.getCodeInfosByImageMd5( 760 imageMd5,nativeCallback); 761 return nativeCallback.feature; 762 } 763 public void getCodeInfosByImageMd5(String imageMd5, 764 FutureCallback<List<CodeInfo>>callback){ 765 factory.addCallback(getCodeInfosByImageMd5(imageMd5), callback); 766 } 767 /** 768 * see also {@link net.gdface.facedb.FaceDb#getFace(int)} 769 */ 770 public ListenableFuture<FaceBean> getFace(int faceId){ 771 MethodCallback<FaceBean,net.gdface.facedb.thrift.client.FaceBean> nativeCallback = 772 new MethodCallback<FaceBean,net.gdface.facedb.thrift.client.FaceBean>( 773 new Function<net.gdface.facedb.thrift.client.FaceBean,FaceBean>() { 774 @Override 775 public FaceBean apply(net.gdface.facedb.thrift.client.FaceBean input) { 776 return TypeTransformer.getInstance().to( 777 input, 778 net.gdface.facedb.thrift.client.FaceBean.class, 779 FaceBean.class); 780 }}); 781 nativeCallback.service.getFace( 782 faceId,nativeCallback); 783 return nativeCallback.feature; 784 } 785 public void getFace(int faceId, 786 FutureCallback<FaceBean>callback){ 787 factory.addCallback(getFace(faceId), callback); 788 } 789 /** 790 * see also {@link net.gdface.facedb.FaceDb#getFaceByFeatureId(java.lang.String)} 791 */ 792 public ListenableFuture<FaceBean> getFaceByFeatureId(String featureId){ 793 MethodCallback<FaceBean,net.gdface.facedb.thrift.client.FaceBean> nativeCallback = 794 new MethodCallback<FaceBean,net.gdface.facedb.thrift.client.FaceBean>( 795 new Function<net.gdface.facedb.thrift.client.FaceBean,FaceBean>() { 796 @Override 797 public FaceBean apply(net.gdface.facedb.thrift.client.FaceBean input) { 798 return TypeTransformer.getInstance().to( 799 input, 800 net.gdface.facedb.thrift.client.FaceBean.class, 801 FaceBean.class); 802 }}); 803 nativeCallback.service.getFaceByFeatureId( 804 featureId,nativeCallback); 805 return nativeCallback.feature; 806 } 807 public void getFaceByFeatureId(String featureId, 808 FutureCallback<FaceBean>callback){ 809 factory.addCallback(getFaceByFeatureId(featureId), callback); 810 } 811 /** 812 * see also {@link net.gdface.facedb.FaceDb#getFaceByImageMd5(java.lang.String)} 813 */ 814 public ListenableFuture<FaceBean> getFaceByImageMd5(String imageMd5){ 815 MethodCallback<FaceBean,net.gdface.facedb.thrift.client.FaceBean> nativeCallback = 816 new MethodCallback<FaceBean,net.gdface.facedb.thrift.client.FaceBean>( 817 new Function<net.gdface.facedb.thrift.client.FaceBean,FaceBean>() { 818 @Override 819 public FaceBean apply(net.gdface.facedb.thrift.client.FaceBean input) { 820 return TypeTransformer.getInstance().to( 821 input, 822 net.gdface.facedb.thrift.client.FaceBean.class, 823 FaceBean.class); 824 }}); 825 nativeCallback.service.getFaceByImageMd5( 826 imageMd5,nativeCallback); 827 return nativeCallback.feature; 828 } 829 public void getFaceByImageMd5(String imageMd5, 830 FutureCallback<FaceBean>callback){ 831 factory.addCallback(getFaceByImageMd5(imageMd5), callback); 832 } 833 /** 834 * see also {@link net.gdface.facedb.FaceDb#getFaceCount(java.lang.String)} 835 */ 836 public ListenableFuture<Integer> getFaceCount(String where){ 837 MethodCallback<Integer,Integer> nativeCallback = 838 new MethodCallback<Integer,Integer>( 839 new Function<Integer,Integer>() { 840 @Override 841 public Integer apply(Integer input) { 842 return input; 843 }}); 844 nativeCallback.service.getFaceCount( 845 where,nativeCallback); 846 return nativeCallback.feature; 847 } 848 public void getFaceCount(String where, 849 FutureCallback<Integer>callback){ 850 factory.addCallback(getFaceCount(where), callback); 851 } 852 /** 853 * see also {@link net.gdface.facedb.FaceDb#getFacesByFeatureId(java.lang.String)} 854 */ 855 public ListenableFuture<List<FaceBean>> getFacesByFeatureId(String featureId){ 856 MethodCallback<List<FaceBean>,List<net.gdface.facedb.thrift.client.FaceBean>> nativeCallback = 857 new MethodCallback<List<FaceBean>,List<net.gdface.facedb.thrift.client.FaceBean>>( 858 new Function<List<net.gdface.facedb.thrift.client.FaceBean>,List<FaceBean>>() { 859 @Override 860 public List<FaceBean> apply(List<net.gdface.facedb.thrift.client.FaceBean> input) { 861 return TypeTransformer.getInstance().to( 862 input, 863 net.gdface.facedb.thrift.client.FaceBean.class, 864 FaceBean.class); 865 }}); 866 nativeCallback.service.getFacesByFeatureId( 867 featureId,nativeCallback); 868 return nativeCallback.feature; 869 } 870 public void getFacesByFeatureId(String featureId, 871 FutureCallback<List<FaceBean>>callback){ 872 factory.addCallback(getFacesByFeatureId(featureId), callback); 873 } 874 /** 875 * see also {@link net.gdface.facedb.FaceDb#getFacesByImageMd5(java.lang.String)} 876 */ 877 public ListenableFuture<List<FaceBean>> getFacesByImageMd5(String imageMd5){ 878 MethodCallback<List<FaceBean>,List<net.gdface.facedb.thrift.client.FaceBean>> nativeCallback = 879 new MethodCallback<List<FaceBean>,List<net.gdface.facedb.thrift.client.FaceBean>>( 880 new Function<List<net.gdface.facedb.thrift.client.FaceBean>,List<FaceBean>>() { 881 @Override 882 public List<FaceBean> apply(List<net.gdface.facedb.thrift.client.FaceBean> input) { 883 return TypeTransformer.getInstance().to( 884 input, 885 net.gdface.facedb.thrift.client.FaceBean.class, 886 FaceBean.class); 887 }}); 888 nativeCallback.service.getFacesByImageMd5( 889 imageMd5,nativeCallback); 890 return nativeCallback.feature; 891 } 892 public void getFacesByImageMd5(String imageMd5, 893 FutureCallback<List<FaceBean>>callback){ 894 factory.addCallback(getFacesByImageMd5(imageMd5), callback); 895 } 896 /** 897 * see also {@link net.gdface.facedb.FaceDb#getFeature(java.lang.String)} 898 */ 899 public ListenableFuture<FeatureBean> getFeature(String featureId){ 900 MethodCallback<FeatureBean,net.gdface.facedb.thrift.client.FeatureBean> nativeCallback = 901 new MethodCallback<FeatureBean,net.gdface.facedb.thrift.client.FeatureBean>( 902 new Function<net.gdface.facedb.thrift.client.FeatureBean,FeatureBean>() { 903 @Override 904 public FeatureBean apply(net.gdface.facedb.thrift.client.FeatureBean input) { 905 return TypeTransformer.getInstance().to( 906 input, 907 net.gdface.facedb.thrift.client.FeatureBean.class, 908 FeatureBean.class); 909 }}); 910 nativeCallback.service.getFeature( 911 featureId,nativeCallback); 912 return nativeCallback.feature; 913 } 914 public void getFeature(String featureId, 915 FutureCallback<FeatureBean>callback){ 916 factory.addCallback(getFeature(featureId), callback); 917 } 918 /** 919 * see also {@link net.gdface.facedb.FaceDb#getFeatureByFaceId(int)} 920 */ 921 public ListenableFuture<FeatureBean> getFeatureByFaceId(int faceId){ 922 MethodCallback<FeatureBean,net.gdface.facedb.thrift.client.FeatureBean> nativeCallback = 923 new MethodCallback<FeatureBean,net.gdface.facedb.thrift.client.FeatureBean>( 924 new Function<net.gdface.facedb.thrift.client.FeatureBean,FeatureBean>() { 925 @Override 926 public FeatureBean apply(net.gdface.facedb.thrift.client.FeatureBean input) { 927 return TypeTransformer.getInstance().to( 928 input, 929 net.gdface.facedb.thrift.client.FeatureBean.class, 930 FeatureBean.class); 931 }}); 932 nativeCallback.service.getFeatureByFaceId( 933 faceId,nativeCallback); 934 return nativeCallback.feature; 935 } 936 public void getFeatureByFaceId(int faceId, 937 FutureCallback<FeatureBean>callback){ 938 factory.addCallback(getFeatureByFaceId(faceId), callback); 939 } 940 /** 941 * see also {@link net.gdface.facedb.FaceDb#getFeatureByImageMd5(java.lang.String)} 942 */ 943 public ListenableFuture<FeatureBean> getFeatureByImageMd5(String imageMd5){ 944 MethodCallback<FeatureBean,net.gdface.facedb.thrift.client.FeatureBean> nativeCallback = 945 new MethodCallback<FeatureBean,net.gdface.facedb.thrift.client.FeatureBean>( 946 new Function<net.gdface.facedb.thrift.client.FeatureBean,FeatureBean>() { 947 @Override 948 public FeatureBean apply(net.gdface.facedb.thrift.client.FeatureBean input) { 949 return TypeTransformer.getInstance().to( 950 input, 951 net.gdface.facedb.thrift.client.FeatureBean.class, 952 FeatureBean.class); 953 }}); 954 nativeCallback.service.getFeatureByImageMd5( 955 imageMd5,nativeCallback); 956 return nativeCallback.feature; 957 } 958 public void getFeatureByImageMd5(String imageMd5, 959 FutureCallback<FeatureBean>callback){ 960 factory.addCallback(getFeatureByImageMd5(imageMd5), callback); 961 } 962 /** 963 * see also {@link net.gdface.facedb.FaceDb#getFeatureCount()} 964 */ 965 public ListenableFuture<Integer> getFeatureCount(){ 966 MethodCallback<Integer,Integer> nativeCallback = 967 new MethodCallback<Integer,Integer>( 968 new Function<Integer,Integer>() { 969 @Override 970 public Integer apply(Integer input) { 971 return input; 972 }}); 973 nativeCallback.service.getFeatureCount( 974 nativeCallback); 975 return nativeCallback.feature; 976 } 977 public void getFeatureCount(FutureCallback<Integer>callback){ 978 factory.addCallback(getFeatureCount(), callback); 979 } 980 /** 981 * see also {@link net.gdface.facedb.FaceDb#getFeaturesByImageMd5(java.lang.String)} 982 */ 983 public ListenableFuture<List<FeatureBean>> getFeaturesByImageMd5(String imageMd5){ 984 MethodCallback<List<FeatureBean>,List<net.gdface.facedb.thrift.client.FeatureBean>> nativeCallback = 985 new MethodCallback<List<FeatureBean>,List<net.gdface.facedb.thrift.client.FeatureBean>>( 986 new Function<List<net.gdface.facedb.thrift.client.FeatureBean>,List<FeatureBean>>() { 987 @Override 988 public List<FeatureBean> apply(List<net.gdface.facedb.thrift.client.FeatureBean> input) { 989 return TypeTransformer.getInstance().to( 990 input, 991 net.gdface.facedb.thrift.client.FeatureBean.class, 992 FeatureBean.class); 993 }}); 994 nativeCallback.service.getFeaturesByImageMd5( 995 imageMd5,nativeCallback); 996 return nativeCallback.feature; 997 } 998 public void getFeaturesByImageMd5(String imageMd5, 999 FutureCallback<List<FeatureBean>>callback){ 1000 factory.addCallback(getFeaturesByImageMd5(imageMd5), callback); 1001 } 1002 /** 1003 * see also {@link net.gdface.facedb.FaceDb#getImage(java.lang.String)} 1004 */ 1005 public ListenableFuture<ImageBean> getImage(String imageMd5){ 1006 MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean> nativeCallback = 1007 new MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean>( 1008 new Function<net.gdface.facedb.thrift.client.ImageBean,ImageBean>() { 1009 @Override 1010 public ImageBean apply(net.gdface.facedb.thrift.client.ImageBean input) { 1011 return TypeTransformer.getInstance().to( 1012 input, 1013 net.gdface.facedb.thrift.client.ImageBean.class, 1014 ImageBean.class); 1015 }}); 1016 nativeCallback.service.getImage( 1017 imageMd5,nativeCallback); 1018 return nativeCallback.feature; 1019 } 1020 public void getImage(String imageMd5, 1021 FutureCallback<ImageBean>callback){ 1022 factory.addCallback(getImage(imageMd5), callback); 1023 } 1024 /** 1025 * see also {@link net.gdface.facedb.FaceDb#getImage(java.lang.String,java.lang.String)} 1026 */ 1027 public ListenableFuture<ImageBean> getImage(String primaryKey, 1028 String refType){ 1029 MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean> nativeCallback = 1030 new MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean>( 1031 new Function<net.gdface.facedb.thrift.client.ImageBean,ImageBean>() { 1032 @Override 1033 public ImageBean apply(net.gdface.facedb.thrift.client.ImageBean input) { 1034 return TypeTransformer.getInstance().to( 1035 input, 1036 net.gdface.facedb.thrift.client.ImageBean.class, 1037 ImageBean.class); 1038 }}); 1039 nativeCallback.service.getImageRef( 1040 primaryKey, 1041 refType,nativeCallback); 1042 return nativeCallback.feature; 1043 } 1044 public void getImage(String primaryKey, 1045 String refType, 1046 FutureCallback<ImageBean>callback){ 1047 factory.addCallback(getImage(primaryKey,refType), callback); 1048 } 1049 /** 1050 * see also {@link net.gdface.facedb.FaceDb#getImageByFaceId(int)} 1051 */ 1052 public ListenableFuture<ImageBean> getImageByFaceId(int faceId){ 1053 MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean> nativeCallback = 1054 new MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean>( 1055 new Function<net.gdface.facedb.thrift.client.ImageBean,ImageBean>() { 1056 @Override 1057 public ImageBean apply(net.gdface.facedb.thrift.client.ImageBean input) { 1058 return TypeTransformer.getInstance().to( 1059 input, 1060 net.gdface.facedb.thrift.client.ImageBean.class, 1061 ImageBean.class); 1062 }}); 1063 nativeCallback.service.getImageByFaceId( 1064 faceId,nativeCallback); 1065 return nativeCallback.feature; 1066 } 1067 public void getImageByFaceId(int faceId, 1068 FutureCallback<ImageBean>callback){ 1069 factory.addCallback(getImageByFaceId(faceId), callback); 1070 } 1071 /** 1072 * see also {@link net.gdface.facedb.FaceDb#getImageByFeatureId(java.lang.String)} 1073 */ 1074 public ListenableFuture<ImageBean> getImageByFeatureId(String featureId){ 1075 MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean> nativeCallback = 1076 new MethodCallback<ImageBean,net.gdface.facedb.thrift.client.ImageBean>( 1077 new Function<net.gdface.facedb.thrift.client.ImageBean,ImageBean>() { 1078 @Override 1079 public ImageBean apply(net.gdface.facedb.thrift.client.ImageBean input) { 1080 return TypeTransformer.getInstance().to( 1081 input, 1082 net.gdface.facedb.thrift.client.ImageBean.class, 1083 ImageBean.class); 1084 }}); 1085 nativeCallback.service.getImageByFeatureId( 1086 featureId,nativeCallback); 1087 return nativeCallback.feature; 1088 } 1089 public void getImageByFeatureId(String featureId, 1090 FutureCallback<ImageBean>callback){ 1091 factory.addCallback(getImageByFeatureId(featureId), callback); 1092 } 1093 /** 1094 * see also {@link net.gdface.facedb.FaceDb#getImageBytes(java.lang.String)} 1095 */ 1096 public ListenableFuture<byte[]> getImageBytes(String imageMd5){ 1097 MethodCallback<byte[],okio.ByteString> nativeCallback = 1098 new MethodCallback<byte[],okio.ByteString>( 1099 new Function<okio.ByteString,byte[]>() { 1100 @Override 1101 public byte[] apply(okio.ByteString input) { 1102 return TypeTransformer.getInstance().to( 1103 input, 1104 okio.ByteString.class, 1105 byte[].class); 1106 }}); 1107 nativeCallback.service.getImageBytes( 1108 imageMd5,nativeCallback); 1109 return nativeCallback.feature; 1110 } 1111 public void getImageBytes(String imageMd5, 1112 FutureCallback<byte[]>callback){ 1113 factory.addCallback(getImageBytes(imageMd5), callback); 1114 } 1115 /** 1116 * see also {@link net.gdface.facedb.FaceDb#getImageBytes(java.lang.String,java.lang.String)} 1117 */ 1118 public ListenableFuture<byte[]> getImageBytes(String primaryKey, 1119 String refType){ 1120 MethodCallback<byte[],okio.ByteString> nativeCallback = 1121 new MethodCallback<byte[],okio.ByteString>( 1122 new Function<okio.ByteString,byte[]>() { 1123 @Override 1124 public byte[] apply(okio.ByteString input) { 1125 return TypeTransformer.getInstance().to( 1126 input, 1127 okio.ByteString.class, 1128 byte[].class); 1129 }}); 1130 nativeCallback.service.getImageBytesRef( 1131 primaryKey, 1132 refType,nativeCallback); 1133 return nativeCallback.feature; 1134 } 1135 public void getImageBytes(String primaryKey, 1136 String refType, 1137 FutureCallback<byte[]>callback){ 1138 factory.addCallback(getImageBytes(primaryKey,refType), callback); 1139 } 1140 /** 1141 * see also {@link net.gdface.facedb.FaceDb#getImageCount(java.lang.String)} 1142 */ 1143 public ListenableFuture<Integer> getImageCount(String where){ 1144 MethodCallback<Integer,Integer> nativeCallback = 1145 new MethodCallback<Integer,Integer>( 1146 new Function<Integer,Integer>() { 1147 @Override 1148 public Integer apply(Integer input) { 1149 return input; 1150 }}); 1151 nativeCallback.service.getImageCount( 1152 where,nativeCallback); 1153 return nativeCallback.feature; 1154 } 1155 public void getImageCount(String where, 1156 FutureCallback<Integer>callback){ 1157 factory.addCallback(getImageCount(where), callback); 1158 } 1159 /** 1160 * see also {@link net.gdface.facedb.FaceDb#getImagesByFeatureId(java.lang.String)} 1161 */ 1162 public ListenableFuture<List<ImageBean>> getImagesByFeatureId(String featureId){ 1163 MethodCallback<List<ImageBean>,List<net.gdface.facedb.thrift.client.ImageBean>> nativeCallback = 1164 new MethodCallback<List<ImageBean>,List<net.gdface.facedb.thrift.client.ImageBean>>( 1165 new Function<List<net.gdface.facedb.thrift.client.ImageBean>,List<ImageBean>>() { 1166 @Override 1167 public List<ImageBean> apply(List<net.gdface.facedb.thrift.client.ImageBean> input) { 1168 return TypeTransformer.getInstance().to( 1169 input, 1170 net.gdface.facedb.thrift.client.ImageBean.class, 1171 ImageBean.class); 1172 }}); 1173 nativeCallback.service.getImagesByFeatureId( 1174 featureId,nativeCallback); 1175 return nativeCallback.feature; 1176 } 1177 public void getImagesByFeatureId(String featureId, 1178 FutureCallback<List<ImageBean>>callback){ 1179 factory.addCallback(getImagesByFeatureId(featureId), callback); 1180 } 1181 /** 1182 * see also {@link net.gdface.facedb.FaceDb#hasFeature(byte[])} 1183 */ 1184 public ListenableFuture<Boolean> hasFeature(byte[] feature){ 1185 MethodCallback<Boolean,Boolean> nativeCallback = 1186 new MethodCallback<Boolean,Boolean>( 1187 new Function<Boolean,Boolean>() { 1188 @Override 1189 public Boolean apply(Boolean input) { 1190 return input; 1191 }}); 1192 nativeCallback.service.hasFeature( 1193 TypeTransformer.getInstance().to( 1194 feature, 1195 byte[].class, 1196 okio.ByteString.class),nativeCallback); 1197 return nativeCallback.feature; 1198 } 1199 public void hasFeature(byte[] feature, 1200 FutureCallback<Boolean>callback){ 1201 factory.addCallback(hasFeature(feature), callback); 1202 } 1203 /** 1204 * see also {@link net.gdface.facedb.FaceDb#hasFeatureByMD5(java.lang.String)} 1205 */ 1206 public ListenableFuture<Boolean> hasFeatureByMD5(String featureId){ 1207 MethodCallback<Boolean,Boolean> nativeCallback = 1208 new MethodCallback<Boolean,Boolean>( 1209 new Function<Boolean,Boolean>() { 1210 @Override 1211 public Boolean apply(Boolean input) { 1212 return input; 1213 }}); 1214 nativeCallback.service.hasFeatureByMD5( 1215 featureId,nativeCallback); 1216 return nativeCallback.feature; 1217 } 1218 public void hasFeatureByMD5(String featureId, 1219 FutureCallback<Boolean>callback){ 1220 factory.addCallback(hasFeatureByMD5(featureId), callback); 1221 } 1222 /** 1223 * see also {@link net.gdface.facedb.FaceDb#hasImage(java.lang.String)} 1224 */ 1225 public ListenableFuture<Boolean> hasImage(String imageMd5){ 1226 MethodCallback<Boolean,Boolean> nativeCallback = 1227 new MethodCallback<Boolean,Boolean>( 1228 new Function<Boolean,Boolean>() { 1229 @Override 1230 public Boolean apply(Boolean input) { 1231 return input; 1232 }}); 1233 nativeCallback.service.hasImage( 1234 imageMd5,nativeCallback); 1235 return nativeCallback.feature; 1236 } 1237 public void hasImage(String imageMd5, 1238 FutureCallback<Boolean>callback){ 1239 factory.addCallback(hasImage(imageMd5), callback); 1240 } 1241 /** 1242 * see also {@link net.gdface.facedb.FaceDb#isLocal()} 1243 */ 1244 public boolean isLocal(){ 1245 return false; 1246 } 1247 /** 1248 * see also {@link net.gdface.facedb.FaceDb#loadFeaturesMd5ByCreateTime(java.lang.String)} 1249 */ 1250 public ListenableFuture<List<String>> loadFeaturesMd5ByCreateTime(String timestamp){ 1251 MethodCallback<List<String>,List<String>> nativeCallback = 1252 new MethodCallback<List<String>,List<String>>( 1253 new Function<List<String>,List<String>>() { 1254 @Override 1255 public List<String> apply(List<String> input) { 1256 return input; 1257 }}); 1258 nativeCallback.service.loadFeaturesMd5ByCreateTimeTimeStr( 1259 timestamp,nativeCallback); 1260 return nativeCallback.feature; 1261 } 1262 public void loadFeaturesMd5ByCreateTime(String timestamp, 1263 FutureCallback<List<String>>callback){ 1264 factory.addCallback(loadFeaturesMd5ByCreateTime(timestamp), callback); 1265 } 1266 /** 1267 * see also {@link net.gdface.facedb.FaceDb#loadFeaturesMd5ByCreateTime(java.util.Date)} 1268 */ 1269 public ListenableFuture<List<String>> loadFeaturesMd5ByCreateTime(Date timestamp){ 1270 MethodCallback<List<String>,List<String>> nativeCallback = 1271 new MethodCallback<List<String>,List<String>>( 1272 new Function<List<String>,List<String>>() { 1273 @Override 1274 public List<String> apply(List<String> input) { 1275 return input; 1276 }}); 1277 nativeCallback.service.loadFeaturesMd5ByCreateTime( 1278 TypeTransformer.getInstance().to( 1279 timestamp, 1280 Date.class, 1281 Long.class),nativeCallback); 1282 return nativeCallback.feature; 1283 } 1284 public void loadFeaturesMd5ByCreateTime(Date timestamp, 1285 FutureCallback<List<String>>callback){ 1286 factory.addCallback(loadFeaturesMd5ByCreateTime(timestamp), callback); 1287 } 1288 /** 1289 * see also {@link net.gdface.facedb.FaceDb#loadFeaturesMd5ByWhere(java.lang.String)} 1290 */ 1291 public ListenableFuture<List<String>> loadFeaturesMd5ByWhere(String where){ 1292 MethodCallback<List<String>,List<String>> nativeCallback = 1293 new MethodCallback<List<String>,List<String>>( 1294 new Function<List<String>,List<String>>() { 1295 @Override 1296 public List<String> apply(List<String> input) { 1297 return input; 1298 }}); 1299 nativeCallback.service.loadFeaturesMd5ByWhere( 1300 where,nativeCallback); 1301 return nativeCallback.feature; 1302 } 1303 public void loadFeaturesMd5ByWhere(String where, 1304 FutureCallback<List<String>>callback){ 1305 factory.addCallback(loadFeaturesMd5ByWhere(where), callback); 1306 } 1307 /** 1308 * see also {@link net.gdface.facedb.FaceDb#loadImagesByWhere(java.lang.String,int,int)} 1309 */ 1310 public ListenableFuture<List<ImageBean>> loadImagesByWhere(String where, 1311 int startRow, 1312 int numRows){ 1313 MethodCallback<List<ImageBean>,List<net.gdface.facedb.thrift.client.ImageBean>> nativeCallback = 1314 new MethodCallback<List<ImageBean>,List<net.gdface.facedb.thrift.client.ImageBean>>( 1315 new Function<List<net.gdface.facedb.thrift.client.ImageBean>,List<ImageBean>>() { 1316 @Override 1317 public List<ImageBean> apply(List<net.gdface.facedb.thrift.client.ImageBean> input) { 1318 return TypeTransformer.getInstance().to( 1319 input, 1320 net.gdface.facedb.thrift.client.ImageBean.class, 1321 ImageBean.class); 1322 }}); 1323 nativeCallback.service.loadImagesByWhere( 1324 where, 1325 startRow, 1326 numRows,nativeCallback); 1327 return nativeCallback.feature; 1328 } 1329 public void loadImagesByWhere(String where, 1330 int startRow, 1331 int numRows, 1332 FutureCallback<List<ImageBean>>callback){ 1333 factory.addCallback(loadImagesByWhere(where,startRow,numRows), callback); 1334 } 1335 /** 1336 * see also {@link net.gdface.facedb.FaceDb#loadImagesMd5ByCreateTime(java.lang.String)} 1337 */ 1338 public ListenableFuture<List<String>> loadImagesMd5ByCreateTime(String timestamp){ 1339 MethodCallback<List<String>,List<String>> nativeCallback = 1340 new MethodCallback<List<String>,List<String>>( 1341 new Function<List<String>,List<String>>() { 1342 @Override 1343 public List<String> apply(List<String> input) { 1344 return input; 1345 }}); 1346 nativeCallback.service.loadImagesMd5ByCreateTimeTimeStr( 1347 timestamp,nativeCallback); 1348 return nativeCallback.feature; 1349 } 1350 public void loadImagesMd5ByCreateTime(String timestamp, 1351 FutureCallback<List<String>>callback){ 1352 factory.addCallback(loadImagesMd5ByCreateTime(timestamp), callback); 1353 } 1354 /** 1355 * see also {@link net.gdface.facedb.FaceDb#loadImagesMd5ByCreateTime(java.util.Date)} 1356 */ 1357 public ListenableFuture<List<String>> loadImagesMd5ByCreateTime(Date timestamp){ 1358 MethodCallback<List<String>,List<String>> nativeCallback = 1359 new MethodCallback<List<String>,List<String>>( 1360 new Function<List<String>,List<String>>() { 1361 @Override 1362 public List<String> apply(List<String> input) { 1363 return input; 1364 }}); 1365 nativeCallback.service.loadImagesMd5ByCreateTime( 1366 TypeTransformer.getInstance().to( 1367 timestamp, 1368 Date.class, 1369 Long.class),nativeCallback); 1370 return nativeCallback.feature; 1371 } 1372 public void loadImagesMd5ByCreateTime(Date timestamp, 1373 FutureCallback<List<String>>callback){ 1374 factory.addCallback(loadImagesMd5ByCreateTime(timestamp), callback); 1375 } 1376 /** 1377 * see also {@link net.gdface.facedb.FaceDb#loadImagesMd5ByWhere(java.lang.String)} 1378 */ 1379 public ListenableFuture<List<String>> loadImagesMd5ByWhere(String where){ 1380 MethodCallback<List<String>,List<String>> nativeCallback = 1381 new MethodCallback<List<String>,List<String>>( 1382 new Function<List<String>,List<String>>() { 1383 @Override 1384 public List<String> apply(List<String> input) { 1385 return input; 1386 }}); 1387 nativeCallback.service.loadImagesMd5ByWhere( 1388 where,nativeCallback); 1389 return nativeCallback.feature; 1390 } 1391 public void loadImagesMd5ByWhere(String where, 1392 FutureCallback<List<String>>callback){ 1393 factory.addCallback(loadImagesMd5ByWhere(where), callback); 1394 } 1395 /** 1396 * see also {@link net.gdface.facedb.FaceDb#searchFaces(byte[],net.gdface.sdk.CodeInfo,double,int,java.lang.String)} 1397 */ 1398 public ListenableFuture<SearchResult[]> searchFaces(byte[] imgData, 1399 CodeInfo facePos, 1400 double similarty, 1401 int rows, 1402 String where){ 1403 MethodCallback<SearchResult[],java.util.List<net.gdface.facedb.thrift.client.SearchResult>> nativeCallback = 1404 new MethodCallback<SearchResult[],java.util.List<net.gdface.facedb.thrift.client.SearchResult>>( 1405 new Function<java.util.List<net.gdface.facedb.thrift.client.SearchResult>,SearchResult[]>() { 1406 @Override 1407 public SearchResult[] apply(java.util.List<net.gdface.facedb.thrift.client.SearchResult> input) { 1408 return TypeTransformer.getInstance().toArray( 1409 input, 1410 net.gdface.facedb.thrift.client.SearchResult.class, 1411 SearchResult.class); 1412 }}); 1413 nativeCallback.service.searchFaces( 1414 TypeTransformer.getInstance().to( 1415 imgData, 1416 byte[].class, 1417 okio.ByteString.class), 1418 TypeTransformer.getInstance().to( 1419 facePos, 1420 CodeInfo.class, 1421 net.gdface.facedb.thrift.client.CodeInfo.class), 1422 similarty, 1423 rows, 1424 where,nativeCallback); 1425 return nativeCallback.feature; 1426 } 1427 public void searchFaces(byte[] imgData, 1428 CodeInfo facePos, 1429 double similarty, 1430 int rows, 1431 String where, 1432 FutureCallback<SearchResult[]>callback){ 1433 factory.addCallback(searchFaces(imgData,facePos,similarty,rows,where), callback); 1434 } 1435 /** 1436 * see also {@link net.gdface.facedb.FaceDb#searchFaces(net.gdface.image.MatType,byte[],int,int,net.gdface.sdk.CodeInfo,double,int,java.lang.String)} 1437 */ 1438 public ListenableFuture<SearchResult[]> searchFaces(MatType matType, 1439 byte[] matData, 1440 int width, 1441 int height, 1442 CodeInfo facePos, 1443 double similarty, 1444 int rows, 1445 String where){ 1446 MethodCallback<SearchResult[],java.util.List<net.gdface.facedb.thrift.client.SearchResult>> nativeCallback = 1447 new MethodCallback<SearchResult[],java.util.List<net.gdface.facedb.thrift.client.SearchResult>>( 1448 new Function<java.util.List<net.gdface.facedb.thrift.client.SearchResult>,SearchResult[]>() { 1449 @Override 1450 public SearchResult[] apply(java.util.List<net.gdface.facedb.thrift.client.SearchResult> input) { 1451 return TypeTransformer.getInstance().toArray( 1452 input, 1453 net.gdface.facedb.thrift.client.SearchResult.class, 1454 SearchResult.class); 1455 }}); 1456 nativeCallback.service.searchFacesMat( 1457 TypeTransformer.getInstance().to( 1458 matType, 1459 MatType.class, 1460 net.gdface.facedb.thrift.client.MatType.class), 1461 TypeTransformer.getInstance().to( 1462 matData, 1463 byte[].class, 1464 okio.ByteString.class), 1465 width, 1466 height, 1467 TypeTransformer.getInstance().to( 1468 facePos, 1469 CodeInfo.class, 1470 net.gdface.facedb.thrift.client.CodeInfo.class), 1471 similarty, 1472 rows, 1473 where,nativeCallback); 1474 return nativeCallback.feature; 1475 } 1476 public void searchFaces(MatType matType, 1477 byte[] matData, 1478 int width, 1479 int height, 1480 CodeInfo facePos, 1481 double similarty, 1482 int rows, 1483 String where, 1484 FutureCallback<SearchResult[]>callback){ 1485 factory.addCallback(searchFaces(matType,matData,width,height,facePos,similarty,rows,where), callback); 1486 } 1487 /** 1488 * see also {@link net.gdface.facedb.FaceDb#searchFeatures(byte[],double,int,java.lang.String)} 1489 */ 1490 public ListenableFuture<SearchResult[]> searchFeatures(byte[] feature, 1491 double similarty, 1492 int rows, 1493 String where){ 1494 MethodCallback<SearchResult[],java.util.List<net.gdface.facedb.thrift.client.SearchResult>> nativeCallback = 1495 new MethodCallback<SearchResult[],java.util.List<net.gdface.facedb.thrift.client.SearchResult>>( 1496 new Function<java.util.List<net.gdface.facedb.thrift.client.SearchResult>,SearchResult[]>() { 1497 @Override 1498 public SearchResult[] apply(java.util.List<net.gdface.facedb.thrift.client.SearchResult> input) { 1499 return TypeTransformer.getInstance().toArray( 1500 input, 1501 net.gdface.facedb.thrift.client.SearchResult.class, 1502 SearchResult.class); 1503 }}); 1504 nativeCallback.service.searchFeatures( 1505 TypeTransformer.getInstance().to( 1506 feature, 1507 byte[].class, 1508 okio.ByteString.class), 1509 similarty, 1510 rows, 1511 where,nativeCallback); 1512 return nativeCallback.feature; 1513 } 1514 public void searchFeatures(byte[] feature, 1515 double similarty, 1516 int rows, 1517 String where, 1518 FutureCallback<SearchResult[]>callback){ 1519 factory.addCallback(searchFeatures(feature,similarty,rows,where), callback); 1520 } 1521}