Commit Graph

23 Commits

Author SHA1 Message Date
Peter Johnson
bb9f5b7491 jni_util: Add JException wrapper class.
This allows more natural C++ Throw semantics (for a variety of string
data types) for any java exception that just takes a String argument.
2016-12-15 21:54:36 -08:00
Peter Johnson
57d053a8fb jni_util: Make JStringRef and JArrayRef null-safe.
They return empty string and empty array (to avoid crashes) but also
report an error with backtrace to stderr when called in that manner.
2016-12-14 23:59:06 -08:00
Peter Johnson
0e43765c53 jni_util: Add GetJavaStackTrace. 2016-12-14 23:59:02 -08:00
Peter Johnson
12aee3e022 Make JLocal and JArrayRef movable but non-copyable. 2016-12-14 23:29:23 -08:00
Peter Johnson
498a8e2b7d Fix JArrayRef DirectBuffer destructor.
Previously it would try to release array elements even if the DirectBuffer
constructor was used.
2016-12-14 23:29:23 -08:00
Peter Johnson
4568156bdf Make JClass more useful and use it in ntcore JNI. 2016-12-14 23:29:18 -08:00
Peter Johnson
558b2ffa41 NetworkStream: Add setBlocking() and getNativeHandle(). (#161)
Also add checking for "would block" errors in send() and receive().

Check for set nonblocking failures in TCPConnector as well (generate warnings rather than errors)
2016-11-27 19:59:52 -08:00
Thad House
2657d89178 Adds a c_str method to StringRef (#155)
The StringRef class does not ensure the string is null terminated. As there is
no defined way to actually check for a null terminator, we determine
if it is null terminated based on the constructor type. Then if on c_str
it is not known to be null terminated, we use a passed in buffer to copy
the string and ensure null termination.
2016-11-14 22:51:52 -08:00
Peter Johnson
b12658afc2 Make SafeThreadOwner moveable. (#153)
This allows it to be used in data structures such as std::vector.

Also make GetThread() const.
2016-11-11 22:18:52 -08:00
Thad House
3d1f69075a Adds a size parameter to JStringRef (#152)
Want to use that for some allwpilib JNI cleanups and potential bug fixes
2016-11-07 19:35:48 -08:00
Peter Johnson
28c8678ea2 SafeThread: Use atomic for m_active. 2016-11-04 23:39:09 -07:00
Thad House
d1065f0bd1 Moves deprecation definition to wpiutil (#149) 2016-11-03 20:08:47 -07:00
Peter Johnson
e4234f5198 raw_istream: Add std::istream style in_avail(). (#135) 2016-10-21 22:50:38 -07:00
Peter Johnson
7b3f6eeae2 Add raw_fd_istream. (#121) 2016-10-08 16:03:33 -07:00
Peter Johnson
d4bbd5cc6f Make raw_socket_istream constructor explicit. 2016-09-25 19:48:49 -07:00
Peter Johnson
7463e02080 Logger: Use raw_ostream and SmallString. 2016-09-25 19:48:49 -07:00
Peter Johnson
f711ced4ca Add raw_socket_ostream.
This wraps NetworkStream in a llvm::raw_ostream.
2016-09-25 19:48:49 -07:00
Peter Johnson
a92b7298f9 Add 1-character read to raw_istream. 2016-09-25 19:48:49 -07:00
Peter Johnson
4c6c096c50 Change API of raw_istream to be more similar to raw_ostream. 2016-09-25 19:48:49 -07:00
Peter Johnson
b2e1291973 Refactor JNI helpers into wpiutil (support/jni_util.h). (#105) 2016-09-25 19:29:17 -07:00
Peter Johnson
760d6a26d3 Make SafeThread header-only. (#117) 2016-09-25 18:21:29 -07:00
Peter Johnson
d8ee44349c Update to latest LLVM code (#88)
* Update to latest LLVM code.

* Add LLVM's raw_ostream.

* MathExtras.h: Include cmath for log2.
2016-09-25 17:49:01 -07:00
Peter Johnson
d90cf843e8 Move common utility classes to wpiutil library. (#79)
This is a breaking change to dependencies that use the static ntcore
library.  Unless the wpiutil library is also linked, linker errors will
result.  This does not affect the shared ntcore library.
2016-09-25 17:23:39 -07:00