mirror of
https://github.com/taosdata/TDengine
synced 2026-05-24 10:09:01 +00:00
* enh: rename libtaos.so to libtaosinternal.so * enh: let python system-test work * enh: shell for libinternal.so * enh: refact script * enh: wrapper for libtaosinternal * enh: rename some files * enh: let shell support internal driver * enh: minor changes * enh: minor changes * add intenal.h * enh: remove unused codes * enh: minor changs * feat: mac os issues * enh: let python test use internal connection * enh: let nettest work * enh: let taosc -C work * enh: test shell in mac os * enh: minor changes * enh: let libtaosinternal.so work in linux * enh: update install script * enh: for ci * enh: for windows compile * enh: minor changes * enh: compile in windows * enh: minor changes * enh: taosinternal work in windows * enh: add taos_internal_static * enh: rollback os_for_wrapper * fix: conflicts * fix: conflicts * fix: compile errors * fix: conflicts * enh: rename taosinternal to taosnative * enh: rename taosinternal to taosnative * fix: compile error * enh: remove taosnative.h * fix: compile errors * enh: set default shell options * fix: compile errors * fix: compile errors * debug: switch taosws branch to feat/new-libtaos-with-ws * enh: taosBenchmark remove WEBSOCKET finished * fix: CMakeLists.txt remove WEBSOCKET * fix: compile errors * fix: taosBenchmark delete restful code * .gitignore remove taos-tools folder * fix: remove taosdump WEBSOCKET MACRO * fix: build error for taosdump * fix: build project passed * fix: support -Z for connect mode * fix: build error * fix: build error fixed * fix: add -Z options * fix: native and websocket with string * fix: -Z option core * fix: build unit test * fix: build error * fix: add colon for array * fix: unit test can not include fun * fix: CTest pointer null is nullptr * fix: include pub.h * fix: taosdump add -Z --driver options * fix: taosdump support -Z with pub.h pub.c * fix: toolsGetTimeDay move to pub.c * fix: restore pub.c only simple fun * fix: add error tips * fix: tmfree remove from taosdump * fix: remove double declare taos variant * fix: taos support -Z option * enh: configDir set with main fun * fix: add g_arguments.configDir * fix: show tips add cfgdir * fix: g_argument is pointer * fix: configDir is global var * fix: declare g_configDir in benchMain.c * fix: taos version not show on websocket * stmt2 websocket prepare with supertable * stmt2 websocket prepare build * fix: stmt and stmt2 prepare add db name * fix: remove -R --restful test case * fix: taosBenchmark adjust priority cmd > json > evn * fix: add connect mode test case connMode.py * fix: clear evn and add host port check * fix: army/test.py modify start taosAdapter is default * change: system-test/test.py default start taosAdapter * fix: add taosAdapter variant to system-test/test.py * fix: -y must put behind other options * fix: remove rest sml and add -N normal case * fix: add -c work cfg test case * del: queryMain.py remove rest query * fix: remove groups have a blank append bug * fix: caseBase.py add db in sql query * fix: query_json.py remove rest test * fix: taosBenchmark uniform dsn describe * fix: add pub.h pub.c to tools public * fix: case remove restful interface * fix: build error * fix: taosDriverCleanup no arg call * fix: taosdump add test conn mode case taosdumpCommandline.py * fix: modify insertFullType.json db name * fix: taosdump connMode test case taosDumpCommandline.py passed * enh: priority cmd > env > json * fix: taosCli remove is_native variant * fix: password is not pointer * fix: comment -o test case * fix: solve fun return code check * fix: windows unresolved strcasecmp * fix: remove coverHostToServAddr * fix: forbid check ODR violation * ci: trigger pr run * fix: build error not del >>>>>3.0 * fix: support json dbinfo->vgroups have blank space * fix: solve conflict with merge * fix: with TrimCaseCmp fun to compare vgroups * fix: del vgroups support blank code * feat: wrapper add taos_fetch_fields_e * fix: move jni from libtaosnative.so to libtaos.so * fix: move clientTmqConnector.c for jni * fix: fix assert check with del comment code * fix: taosBenchmark add prepare stmt debug log * fix: stmt2 already have debug log on preapare * fix: (double)LLONG_MAX force covert * fix: stmt insert normal table with websocket * fix: normal table with stmt too many ? * fix: taosdump stmt_prepare with child tbname * fix: build error add int code * feat: stmtPrepare with child table to do * taos -a options move to native test case * fix:unit test benchmarkTest passed * fix: query_json-with-sqlfile.py case no check results * fix: queryMain.py case lost, put in tasks again --------- Co-authored-by: Shengliang Guan <slguan@taosdata.com>
237 lines
6 KiB
C
237 lines
6 KiB
C
/*
|
|
* @(#)jdwpTransport.h 1.8 05/11/17
|
|
*
|
|
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
|
|
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
|
*/
|
|
|
|
/*
|
|
* Java Debug Wire Protocol Transport Service Provider Interface.
|
|
*/
|
|
|
|
#ifndef JDWPTRANSPORT_H
|
|
#define JDWPTRANSPORT_H
|
|
|
|
#include "jni.h"
|
|
|
|
enum {
|
|
JDWPTRANSPORT_VERSION_1_0 = 0x00010000
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct jdwpTransportNativeInterface_;
|
|
|
|
struct _jdwpTransportEnv;
|
|
|
|
#ifdef __cplusplus
|
|
typedef _jdwpTransportEnv jdwpTransportEnv;
|
|
#else
|
|
typedef const struct jdwpTransportNativeInterface_ *jdwpTransportEnv;
|
|
#endif /* __cplusplus */
|
|
|
|
/*
|
|
* Errors. Universal errors with JVMTI/JVMDI equivalents keep the
|
|
* values the same.
|
|
*/
|
|
typedef enum {
|
|
JDWPTRANSPORT_ERROR_NONE = 0,
|
|
JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT = 103,
|
|
JDWPTRANSPORT_ERROR_OUT_OF_MEMORY = 110,
|
|
JDWPTRANSPORT_ERROR_INTERNAL = 113,
|
|
JDWPTRANSPORT_ERROR_ILLEGAL_STATE = 201,
|
|
JDWPTRANSPORT_ERROR_IO_ERROR = 202,
|
|
JDWPTRANSPORT_ERROR_TIMEOUT = 203,
|
|
JDWPTRANSPORT_ERROR_MSG_NOT_AVAILABLE = 204
|
|
} jdwpTransportError;
|
|
|
|
|
|
/*
|
|
* Structure to define capabilities
|
|
*/
|
|
typedef struct {
|
|
unsigned int can_timeout_attach :1;
|
|
unsigned int can_timeout_accept :1;
|
|
unsigned int can_timeout_handshake :1;
|
|
unsigned int reserved3 :1;
|
|
unsigned int reserved4 :1;
|
|
unsigned int reserved5 :1;
|
|
unsigned int reserved6 :1;
|
|
unsigned int reserved7 :1;
|
|
unsigned int reserved8 :1;
|
|
unsigned int reserved9 :1;
|
|
unsigned int reserved10 :1;
|
|
unsigned int reserved11 :1;
|
|
unsigned int reserved12 :1;
|
|
unsigned int reserved13 :1;
|
|
unsigned int reserved14 :1;
|
|
unsigned int reserved15 :1;
|
|
} JDWPTransportCapabilities;
|
|
|
|
|
|
/*
|
|
* Structures to define packet layout.
|
|
*
|
|
* See: http://java.sun.com/j2se/1.5/docs/guide/jpda/jdwp-spec.html
|
|
*/
|
|
|
|
enum {
|
|
JDWPTRANSPORT_FLAGS_NONE = 0x0,
|
|
JDWPTRANSPORT_FLAGS_REPLY = 0x80
|
|
};
|
|
|
|
typedef struct {
|
|
jint len;
|
|
jint id;
|
|
jbyte flags;
|
|
jbyte cmdSet;
|
|
jbyte cmd;
|
|
jbyte *data;
|
|
} jdwpCmdPacket;
|
|
|
|
typedef struct {
|
|
jint len;
|
|
jint id;
|
|
jbyte flags;
|
|
jshort errorCode;
|
|
jbyte *data;
|
|
} jdwpReplyPacket;
|
|
|
|
typedef struct {
|
|
union {
|
|
jdwpCmdPacket cmd;
|
|
jdwpReplyPacket reply;
|
|
} type;
|
|
} jdwpPacket;
|
|
|
|
/*
|
|
* JDWP functions called by the transport.
|
|
*/
|
|
typedef struct jdwpTransportCallback {
|
|
void *(*alloc)(jint numBytes); /* Call this for all allocations */
|
|
void (*free)(void *buffer); /* Call this for all deallocations */
|
|
} jdwpTransportCallback;
|
|
|
|
typedef jint (JNICALL *jdwpTransport_OnLoad_t)(JavaVM *jvm,
|
|
jdwpTransportCallback *callback,
|
|
jint version,
|
|
jdwpTransportEnv** env);
|
|
|
|
|
|
|
|
/* Function Interface */
|
|
|
|
struct jdwpTransportNativeInterface_ {
|
|
/* 1 : RESERVED */
|
|
void *reserved1;
|
|
|
|
/* 2 : Get Capabilities */
|
|
jdwpTransportError (JNICALL *GetCapabilities)(jdwpTransportEnv* env,
|
|
JDWPTransportCapabilities *capabilities_ptr);
|
|
|
|
/* 3 : Attach */
|
|
jdwpTransportError (JNICALL *Attach)(jdwpTransportEnv* env,
|
|
const char* address,
|
|
jlong attach_timeout,
|
|
jlong handshake_timeout);
|
|
|
|
/* 4: StartListening */
|
|
jdwpTransportError (JNICALL *StartListening)(jdwpTransportEnv* env,
|
|
const char* address,
|
|
char** actual_address);
|
|
|
|
/* 5: StopListening */
|
|
jdwpTransportError (JNICALL *StopListening)(jdwpTransportEnv* env);
|
|
|
|
/* 6: Accept */
|
|
jdwpTransportError (JNICALL *Accept)(jdwpTransportEnv* env,
|
|
jlong accept_timeout,
|
|
jlong handshake_timeout);
|
|
|
|
/* 7: IsOpen */
|
|
jboolean (JNICALL *IsOpen)(jdwpTransportEnv* env);
|
|
|
|
/* 8: Close */
|
|
jdwpTransportError (JNICALL *Close)(jdwpTransportEnv* env);
|
|
|
|
/* 9: ReadPacket */
|
|
jdwpTransportError (JNICALL *ReadPacket)(jdwpTransportEnv* env,
|
|
jdwpPacket *pkt);
|
|
|
|
/* 10: Write Packet */
|
|
jdwpTransportError (JNICALL *WritePacket)(jdwpTransportEnv* env,
|
|
const jdwpPacket* pkt);
|
|
|
|
/* 11: GetLastError */
|
|
jdwpTransportError (JNICALL *GetLastError)(jdwpTransportEnv* env,
|
|
char** error);
|
|
|
|
};
|
|
|
|
|
|
/*
|
|
* Use inlined functions so that C++ code can use syntax such as
|
|
* env->Attach("mymachine:5000", 10*1000, 0);
|
|
*
|
|
* rather than using C's :-
|
|
*
|
|
* (*env)->Attach(env, "mymachine:5000", 10*1000, 0);
|
|
*/
|
|
struct _jdwpTransportEnv {
|
|
const struct jdwpTransportNativeInterface_ *functions;
|
|
#ifdef __cplusplus
|
|
|
|
jdwpTransportError GetCapabilities(JDWPTransportCapabilities *capabilities_ptr) {
|
|
return functions->GetCapabilities(this, capabilities_ptr);
|
|
}
|
|
|
|
jdwpTransportError Attach(const char* address, jlong attach_timeout,
|
|
jlong handshake_timeout) {
|
|
return functions->Attach(this, address, attach_timeout, handshake_timeout);
|
|
}
|
|
|
|
jdwpTransportError StartListening(const char* address,
|
|
char** actual_address) {
|
|
return functions->StartListening(this, address, actual_address);
|
|
}
|
|
|
|
jdwpTransportError StopListening(void) {
|
|
return functions->StopListening(this);
|
|
}
|
|
|
|
jdwpTransportError Accept(jlong accept_timeout, jlong handshake_timeout) {
|
|
return functions->Accept(this, accept_timeout, handshake_timeout);
|
|
}
|
|
|
|
jboolean IsOpen(void) {
|
|
return functions->IsOpen(this);
|
|
}
|
|
|
|
jdwpTransportError Close(void) {
|
|
return functions->Close(this);
|
|
}
|
|
|
|
jdwpTransportError ReadPacket(jdwpPacket *pkt) {
|
|
return functions->ReadPacket(this, pkt);
|
|
}
|
|
|
|
jdwpTransportError WritePacket(const jdwpPacket* pkt) {
|
|
return functions->WritePacket(this, pkt);
|
|
}
|
|
|
|
jdwpTransportError GetLastError(char** error) {
|
|
return functions->GetLastError(this, error);
|
|
}
|
|
|
|
|
|
#endif /* __cplusplus */
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* JDWPTRANSPORT_H */
|
|
|