summaryrefslogtreecommitdiffhomepage
path: root/src/java/nxt_jni.h
blob: 62acb7522e112b729cd46473d9150c39a371867a (plain) (blame)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

/*
 * Copyright (C) NGINX, Inc.
 */

#ifndef _NXT_JAVA_JNI_H_INCLUDED_
#define _NXT_JAVA_JNI_H_INCLUDED_


#include <jni.h>
#include <nxt_unit_typedefs.h>


int nxt_java_jni_init(JNIEnv *env);

void nxt_java_throw_NoSuchElementException(JNIEnv *env, const char *msg);

void nxt_java_throw_IOException(JNIEnv *env, const char *msg);

void nxt_java_throw_IllegalStateException(JNIEnv *env, const char *msg);

nxt_unit_field_t *nxt_java_findHeader(nxt_unit_field_t *f, nxt_unit_field_t *e,
    const char *name, uint8_t name_len);

int nxt_java_strcaseeq(const char *str1, const char *str2, int len);

jstring nxt_java_newString(JNIEnv *env, char *str, uint32_t len);


typedef struct {
    uint32_t          header_size;
    uint32_t          buf_size;

    jobject           jreq;
    jobject           jresp;

    nxt_unit_buf_t    *first;
    nxt_unit_buf_t    *buf;

} nxt_java_request_data_t;


static inline jlong
nxt_ptr2jlong(void *ptr)
{
    return (jlong) (intptr_t) ptr;
}

static inline void *
nxt_jlong2ptr(jlong l)
{
    return (void *) (intptr_t) l;
}

#endif  /* _NXT_JAVA_JNI_H_INCLUDED_ */