Peter Johnson
459cc65b3f
TCPAcceptor: Include port number in error messages. ( #166 )
2016-12-23 20:36:45 -06:00
Peter Johnson
c091d74de4
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
8c2a148ed1
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
6fbaf57b99
jni_util: Add GetJavaStackTrace.
2016-12-14 23:59:02 -08:00
Peter Johnson
2df00647d5
Make JLocal and JArrayRef movable but non-copyable.
2016-12-14 23:29:23 -08:00
Peter Johnson
99395273c7
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
ce7611562f
Make JClass more useful and use it in ntcore JNI.
2016-12-14 23:29:18 -08:00
Peter Johnson
1315a3967d
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
Austin Schuh
e7c4150c02
Fixed unused variable warning from gcc. ( #159 )
...
This makes it so that ntcore builds with -Wextra -Werror
2016-11-26 16:28:50 -08:00
Thad House
38ec59f03a
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
c23880f829
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
dc94a3fac9
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
34acd9d47c
SafeThread: Use atomic for m_active.
2016-11-04 23:39:09 -07:00
Thad House
cf0ec7b9a9
Moves deprecation definition to wpiutil ( #149 )
2016-11-03 20:08:47 -07:00
Peter Johnson
d81840d6c6
raw_istream: Add std::istream style in_avail(). ( #135 )
2016-10-21 22:50:38 -07:00
Peter Johnson
f6df7cad9b
Add raw_fd_istream. ( #121 )
2016-10-08 16:03:33 -07:00
Peter Johnson
cc1b94afd2
TCPStream: Avoid SIGPIPE signals.
...
On Mac, this is done by setting SO_NOSIGPIPE on the socket.
On Linux, this is done with MSG_NOSIGNAL on the send call.
2016-10-08 16:02:55 -07:00
Peter Johnson
1affae956b
Make raw_socket_istream constructor explicit.
2016-09-25 19:48:49 -07:00
Peter Johnson
d3ed26f7cc
Logger: Use raw_ostream and SmallString.
2016-09-25 19:48:49 -07:00
Peter Johnson
1ec89fc4f3
Add raw_socket_ostream.
...
This wraps NetworkStream in a llvm::raw_ostream.
2016-09-25 19:48:49 -07:00
Peter Johnson
de07b01a75
Add 1-character read to raw_istream.
2016-09-25 19:48:49 -07:00
Peter Johnson
c2ae897b02
Change API of raw_istream to be more similar to raw_ostream.
2016-09-25 19:48:49 -07:00
Peter Johnson
94c2b65798
Refactor JNI helpers into wpiutil (support/jni_util.h). ( #105 )
2016-09-25 19:29:17 -07:00
Peter Johnson
3a419768ca
Make SafeThread header-only. ( #117 )
2016-09-25 18:21:29 -07:00
Peter Johnson
ee42448504
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
f6b700ea97
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
Peter Johnson
30fbfe46e6
Create dummy wpiutil library. ( #84 )
...
This will allow dependencies such as wpilibc to update to use wpiutil
without breaking "normal" ntcore static library use in the meantime.
This commit also restructures the gradle files by creating a new
(placeholder) wpiutil project, and moving the ntcore project into
a separate gradle file. Added toolchains/native.gradle (refactored from
ntcore).
Also fixes ntcore skipJava on Windows by providing an alternate .def file
for this case.
2016-07-27 22:18:56 -05:00