xref: /aosp_15_r20/external/oj-libjdwp/src/share/npt/README.txt (revision e82f7db8c62aed3c168547abe4f9f4aeceaebfc7)
1*e82f7db8SAndroid Build Coastguard Worker
2*e82f7db8SAndroid Build Coastguard WorkerREADME: For NPT Library.
3*e82f7db8SAndroid Build Coastguard Worker------------------------
4*e82f7db8SAndroid Build Coastguard Worker
5*e82f7db8SAndroid Build Coastguard WorkerTo use this Native Platform Toolkit library, you need to add
6*e82f7db8SAndroid Build Coastguard Worker-Isrc/share/npt and -I/src/${platform}/npt (platform is solaris or windows)
7*e82f7db8SAndroid Build Coastguard Workerto your compilation lines.
8*e82f7db8SAndroid Build Coastguard Worker
9*e82f7db8SAndroid Build Coastguard WorkerTo initialize/use the library:
10*e82f7db8SAndroid Build Coastguard Worker
11*e82f7db8SAndroid Build Coastguard Worker    #include "npt.h"
12*e82f7db8SAndroid Build Coastguard Worker
13*e82f7db8SAndroid Build Coastguard Worker    NptEnv *npt;
14*e82f7db8SAndroid Build Coastguard Worker
15*e82f7db8SAndroid Build Coastguard Worker    NPT_INITIALIZE(&npt, NPT_VERSION, NULL);
16*e82f7db8SAndroid Build Coastguard Worker    if (npt == NULL) {
17*e82f7db8SAndroid Build Coastguard Worker        FATAL_ERROR_MESSAGE(("Unable to gain access to Npt library"));
18*e82f7db8SAndroid Build Coastguard Worker    }
19*e82f7db8SAndroid Build Coastguard Worker
20*e82f7db8SAndroid Build Coastguard Worker    /* To use the npt utf functions, they require initialization */
21*e82f7db8SAndroid Build Coastguard Worker    npt->utf = (npt->utfInitialize)(NULL);
22*e82f7db8SAndroid Build Coastguard Worker    if (npt->utf == NULL) {
23*e82f7db8SAndroid Build Coastguard Worker        FATAL_ERROR_MESSAGE(("Unable to gain access to Npt utf functions"));
24*e82f7db8SAndroid Build Coastguard Worker    }
25*e82f7db8SAndroid Build Coastguard Worker
26*e82f7db8SAndroid Build Coastguard Worker    ...
27*e82f7db8SAndroid Build Coastguard Worker
28*e82f7db8SAndroid Build Coastguard Worker
29*e82f7db8SAndroid Build Coastguard Worker    /* After all uses is done, it can be terminated, however, if the
30*e82f7db8SAndroid Build Coastguard Worker     *   process will be exiting anyway it isn't necessary, and if
31*e82f7db8SAndroid Build Coastguard Worker     *   you have other threads running that might use these handles
32*e82f7db8SAndroid Build Coastguard Worker     *   you will need to wait here until all those threads have terminated.
33*e82f7db8SAndroid Build Coastguard Worker     *   So in general, termination can be a pain and slow your process
34*e82f7db8SAndroid Build Coastguard Worker     *   termination down.
35*e82f7db8SAndroid Build Coastguard Worker     */
36*e82f7db8SAndroid Build Coastguard Worker    (npt->utfTerminate)(npt->utf,NULL);
37*e82f7db8SAndroid Build Coastguard Worker    NPT_TERMINATE(&npt, NULL);
38*e82f7db8SAndroid Build Coastguard Worker
39*e82f7db8SAndroid Build Coastguard Worker
40