Commit Graph

500 Commits

Author SHA1 Message Date
Peter Johnson
b5b0899226 Revert "Fixes TCPAcceptor able to use an empty string (#172)"
This doesn't actually do anything since the outer if statement checks
for empty m_address already.

This reverts commit 6ad9f45d9a.
2016-12-26 13:55:21 -08:00
Thad House
6ad9f45d9a Fixes TCPAcceptor able to use an empty string (#172) 2016-12-26 12:27:08 -08:00
Fred Silberberg
ed9e837229 Updates the wpilib version plugin (#171) 2016-12-25 22:11:54 -08:00
Fred Silberberg
b9a08e8260 Fixed entry comment (#169) 2016-12-25 22:11:14 -08:00
Peter Johnson
95e5295666 Use InetNtop on Win32 rather than WSAAddressToString. (#170)
Similarly, use InetPton rather than WSAStringToAddress.

The WSAAddressToString function is intended to provide a user-readable
string and thus includes the port number.  This breaks some use cases
on Windows which expect to get just the IP address.

Note: The InetPton and InetNtop functions are available only in Vista or above.
2016-12-25 01:30:12 -08:00
Peter Johnson
4b16999fbc Fix tests that are only built on cmake. (#168)
Fixes #167.
2016-12-24 01:58:12 -06:00
Peter Johnson
459cc65b3f TCPAcceptor: Include port number in error messages. (#166) 2016-12-23 20:36:45 -06:00
Jaci R
94359709a1 Add new ARM Toolchain, add toolchainpath to README (#165) 2016-12-19 23:16:39 -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
19be09c361 Add null checks on all JNI object parameters. 2016-12-15 00:27:32 -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
Thad House
378a145cf7 Fixes Missed Symbol from Def file (#162) 2016-12-01 13:45:39 -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
bc06c843c7 Adds JNI symbol check to ensure we don't miss any definitions (#160) 2016-11-25 17:07:58 -08:00
Peter Johnson
b8e9439d32 Message: Fix typo in error message. (#158) 2016-11-24 23:50:02 -08:00
Fred Silberberg
046d385a78 Actually fix lack of - (#157) 2016-11-20 21:42:17 -08:00
Fred Silberberg
5caf75237b Fixed version generation when no - is present (#156) 2016-11-20 21:32:32 -08:00
Peter Johnson
0b1e876dcf Bump wpiutil version to 1.0.2. 2016-11-18 22:25:38 -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
259cf1ff3a Mark NetworkTablesJNI callback interfaces as FunctionalInterface. (#154)
This allows them to be used in Java 8 lambdas.
2016-11-13 23:33:12 -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
77edf1e103 Add FRC Driver Station connection support.
The 2017 FRC Driver Station supports getting the robot IP via a TCP
connection that returns JSON.  Use this to support overriding the
server IP address used for client connections.

Default to using this approach for client connections in the NetworkTable
interfaces.

Add support for setting the server address without stopping and
restarting the client.

SetTeam now also round-robins by default.
2016-11-04 23:42:41 -07:00
Peter Johnson
34acd9d47c SafeThread: Use atomic for m_active. 2016-11-04 23:39:09 -07:00
Thad House
05ca76ea99 Runs clang-format on ntcore (#150)
Also updates .clang-format to match allwpilib

WPIUtil was skipped
2016-11-03 21:03:45 -07:00
Thad House
cf0ec7b9a9 Moves deprecation definition to wpiutil (#149) 2016-11-03 20:08:47 -07:00
Fred Silberberg
60d9f3de68 Update version plugin (#148) 2016-10-30 01:14:57 -07:00
Fred Silberberg
fecd8a448f Fix wpiutil version (#147) 2016-10-28 21:04:47 -04:00
Fredric Silberberg
fe4ef75cf6 Updated wpiutil version 2016-10-28 20:09:54 -04:00
Peter Johnson
778edaeb28 Reverse the JNI load order to look for system library first. (#145) 2016-10-25 22:27:33 -07:00
Peter Johnson
273a395a2f Client: when reconnecting, default to NT3. (#143)
Previously once the client fell back once to NT2, it would never try
connecting as NT3 even if the server was replaced with a NT3-capable
one.

Fixes #142.
2016-10-25 21:44:47 -07:00
Thad House
aa49ebd47f Links wpiutil on roboRIO dynamically (#141) 2016-10-25 20:42:42 -07:00
Thad House
c45384b91a Removes the native library from the RoboRIO Jar (#139)
Includes the native zip in the maven artifact as well.
2016-10-25 20:42:06 -07:00
Fred Silberberg
88fdbc6d3e Readds wpiutilZip dependency to the build. (#144) 2016-10-25 07:04:49 -07:00
Fred Silberberg
89b8e5435f Updated the wpilib version plugin to 1.2. Fixes issues with submodules. (#138) 2016-10-23 14:15:28 -07:00
Peter Johnson
b0ab351f7f Don't check for existence in distributing .debug files. (#137)
This check is unnecessary and is run during task creation, so prevents
the .debug file from being included the first time gradle is run.
2016-10-23 13:18:01 -07:00
Peter Johnson
353041535c Distribute shared library .debug files. (#136) 2016-10-22 09:35:36 -07:00
Peter Johnson
d81840d6c6 raw_istream: Add std::istream style in_avail(). (#135) 2016-10-21 22:50:38 -07:00
Peter Johnson
1d336996be Dispatcher: Minimize amount of time m_flush_mutex is held. (#132) 2016-10-21 20:01:41 -07:00
Peter Johnson
86c43df8d1 Fix connection notification races. (#130)
Use a mutex on the connection state and one-shot all change notifications.

Fixes #127.
2016-10-21 19:40:56 -07:00
Peter Johnson
5c1b7ecd17 Change debug strip to be part of link task (as doLast). (#134)
This avoids spurious re-linking.
2016-10-21 19:18:32 -07:00
Peter Johnson
011ac1fa22 Java: Allow any Number type (not just Double) to be passed to putValue(). (#129)
Also improve exception message.

Fixes #72.
2016-10-21 19:17:50 -07:00
Fred Silberberg
b8e5258cf3 Creates the build dir if it doesn't exist, and deletes the version files during clean' (#131) 2016-10-20 22:41:40 -07:00
Fred Silberberg
56179088bb Updated the gradle build to get the version from the WPILibVersioning plugin (#123)
* Updated the gradle build to get the version from the WPILibVersioning plugin

* Added version output for downstream projects

* Fixed non-arm build.
2016-10-20 21:34:14 -07:00
Thad House
780e9580b7 Ignores KeepAlive messages during initial handshakes (#128)
Shouldn't happen normally, but could happen if handshakes take a longer
then normal period of time.
Closes #126
2016-10-19 22:47:33 -07:00