Jay
2024-11-08 02722a3f9eca857ce7fffea352e9f7ee692a1b71
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.iailab.netsdk.lib.callback;
 
import com.iailab.netsdk.lib.NetSDKLib;
import com.iailab.netsdk.lib.ToolKits;
import com.iailab.netsdk.lib.structure.NET_CB_REDIRECT_SERVER_CALLBACK_INFO;
import com.iailab.netsdk.lib.structure.NET_IN_START_REDIRECT_SERVICE;
import com.sun.jna.Callback;
import com.sun.jna.Pointer;
 
/**
 * @author 47081
 * @version 1.0
 * @description 重定向服务器回调函数原形扩展
 * @date 2021/3/13
 */
public interface fRedirectServerCallBackEx extends Callback {
  /**
   * @param lDevHandle 设备句柄
   * @param pInParam 设备信息,对应结构体{@link NET_CB_REDIRECT_SERVER_CALLBACK_INFO}
   * @param dwUserData 自定义数据,该自定义数据为{@link
   *     NET_IN_START_REDIRECT_SERVICE#dwUserData}传入的数据,注意保证dwUser不会被jvm回收,
   *     否则回调中接收到的dwUser可能乱码,甚至导致程序崩溃
   * @return
   */
  default int callback(NetSDKLib.LLong lDevHandle, Pointer pInParam, Pointer dwUserData) {
    NET_CB_REDIRECT_SERVER_CALLBACK_INFO info = new NET_CB_REDIRECT_SERVER_CALLBACK_INFO();
    ToolKits.GetPointerDataToStruct(pInParam, 0, info);
    dealWithData(lDevHandle.longValue(), info, dwUserData);
    return 0;
  }
 
  /**
   * 数据处理
   *
   * @param devHandler 设备句柄
   * @param info 主动注册重定向设备信息
   * @param userData 用户数据
   */
  void dealWithData(long devHandler, NET_CB_REDIRECT_SERVER_CALLBACK_INFO info, Pointer userData);
}