Peter Johnson
7fd7192b16
Disable UvGetAddrInfo Concurrent test on Windows ( #1227 )
...
This test likes to intermittently hang for some unknown reason, so disable it.
2018-07-27 21:41:04 -07:00
Peter Johnson
8aac46542d
Add a SimpleBufferPool for uv::Buffer ( #1215 )
...
Buffers are reused on a regular basis in many use cases.
2018-07-25 00:58:54 -07:00
Peter Johnson
c25d48fd0c
HttpParser: Add Reset() function ( #1210 )
...
This allows reuse of the HttpParser object for multiple requests.
2018-07-22 19:41:23 -07:00
Peter Johnson
31ced30c1e
HttpParser: Change Execute() to return StringRef ( #1209 )
...
This is more user-friendly than returning the number of parsed bytes.
2018-07-22 15:07:22 -07:00
Peter Johnson
5bf5821138
Cleanup docs in uv::Stream and uv::Tcp ( #1207 )
2018-07-22 13:01:14 -07:00
Peter Johnson
eed28a5852
Add sockaddr_in overloads for uv::Tcp and uv::Udp ( #1206 )
...
These help avoid the need for reinterpret_casts in common use cases.
2018-07-22 13:01:00 -07:00
Peter Johnson
435e026c08
uv::Loop: Add user-defined data ( #1205 )
2018-07-22 13:00:47 -07:00
Peter Johnson
739267d36d
Add Reuse function to uv::Tcp ( #1208 )
...
This allows reusing the Tcp object in cases when the connection errors out.
2018-07-22 12:31:50 -07:00
Peter Johnson
70b0d7cb03
UDPClient: Add receive functionality ( #1204 )
2018-07-21 23:49:16 -07:00
Peter Johnson
caa03d23a3
Make JxArrayRef less error-prone for jxArray ( #1190 )
...
Add a length-taking overload so that if a length happens to be provided for
a jarray, the direct byte buffer overload is not used.
2018-07-17 20:19:49 -07:00
Peter Johnson
297863b17a
Add HttpParser and UrlParser C++ wrappers for http_parser.
2018-07-17 02:24:56 -07:00
Peter Johnson
1992b67ee3
Import nodejs/http-parser.
...
Upstream version: 5b76466c6b9063e2c5982423962a16f7319c81f8
2018-07-17 02:24:56 -07:00
Peter Johnson
e2314f3528
wpiutil: Add C++ libuv wrappers ( #1166 )
...
- Provide an EventLoopRunner to run uv::Loop on a separate thread.
- Add raw_ostream wrapper for uv::Buffer.
2018-07-17 01:06:24 -07:00
Peter Johnson
de5d7d3c17
Only use priority_mutex on RoboRIO by default. ( #1172 )
...
On all Linux platforms it can be specifically requested by defining
WPI_USE_PRIORITY_MUTEX.
2018-07-03 20:35:07 -07:00
Peter Johnson
70960b0251
Signal: rename Signal to Signal_mt and Signal_st to Signal.
...
The single-threaded version is fine for most of the use cases we're planning
on, and is half the size on most platforms.
2018-06-30 00:21:09 -07:00
Peter Johnson
c8afe9bc2f
Signal: Optimize to use plain std::function.
...
This optimizes the common case of a single simple callback (e.g. std::function
or lambda) so no additional allocation is required. As a Connection return
value is not possible in this case, provide a separate connect_connection()
function to provide that.
2018-06-30 00:21:09 -07:00
Peter Johnson
b5bacc09a7
libuv: Silence cast-function-type warning on GCC 8. ( #1169 )
...
GCC 8 treats void(*)(void) specially to silence the warning.
2018-06-28 00:33:24 -07:00
Peter Johnson
876c650471
wpiutil: Add a signal-slot implementation. ( #1163 )
...
Imported from https://github.com/palacaze/sigslot
Classes were renamed from lowercase_me to UppercaseMe style, primarily
to avoid conflicting with the C standard library "signal" function. They
were also moved to the "wpi::sig" namespace.
2018-06-27 23:01:17 -07:00
Peter Johnson
122fdf48b2
libuv: Hook up to build.
2018-06-24 10:31:55 -07:00
Peter Johnson
d94f49b3ba
libuv: Silence clang compiler warning in uv-common.c
2018-06-24 10:31:55 -07:00
Peter Johnson
39670fc9c0
libuv: Add pragmas for win32 libraries.
2018-06-24 10:31:55 -07:00
Peter Johnson
6f0d50b9cb
libuv: Avoid conditional-true compiler warning.
...
Instead use a preprocessor macro to comment out the code as necessary.
2018-06-24 10:31:55 -07:00
Peter Johnson
873b2ed13c
libuv: Add missing casts.
2018-06-24 10:31:55 -07:00
Peter Johnson
321c144d21
libuv: Remove extern "C" from uv.h.
...
This results in name-mangling of the uv symbols and thereby avoids potential
symbol conflicts with system libuv installations.
2018-06-24 10:31:55 -07:00
Peter Johnson
13e1af259c
libuv: Remove MSVC 2008 stdint from uv.h and uv-win.h.
2018-06-24 10:31:55 -07:00
Peter Johnson
9d7792ead0
libuv: Remove aix, os390, and sunos from uv-unix.h.
2018-06-24 10:31:55 -07:00
Peter Johnson
6d93d3c250
libuv: Rename source files from .c to .cpp.
...
This ensures they will actually get compiled as C++.
2018-06-24 10:31:55 -07:00
Peter Johnson
156822dbc8
Import libuv 1.21.0.
2018-06-24 10:31:55 -07:00
Peter Johnson
ea7d11b1db
Twine: Make isNull() public. ( #1162 )
...
This makes it possible to pass "null" Twines and detect it in the callee.
2018-06-23 16:13:50 -07:00
Austin Shalit
e548a5f705
Update and enable PMD 6.3.0 ( #1107 )
2018-06-03 10:00:53 -07:00
Peter Johnson
6aebba5452
Import MapVector from LLVM. ( #1128 )
2018-06-03 08:39:14 -07:00
Tyler Veness
8c680a26f8
Moved C++ comments from source files to headers ( #1111 )
...
Also sorted functions in C++ sources to match order in related headers.
2018-05-31 20:47:15 -07:00
Thad House
307da3ad2d
Simplify allocation of JNI global classes and exceptions ( #1110 )
...
Helps ensure they get freed properly (We have had a few cases before where this wasn't the case).
2018-05-29 15:44:16 -07:00
Austin Shalit
40cc743cc7
Enable checkstyle on cscore, ntcore, wpiutil ( #1032 )
...
Also update to version 8.10.
2018-05-24 00:31:04 -04:00
Peter Johnson
a2ecb1027a
Update LLVM to latest upstream. ( #1080 )
...
Also change header guards to WPI header guards.
Remove StringRef::c_str() customization, replacing the handful of uses with Twine or SmallString.
TCPStream: Include errno.h and make Windows includes lowercase for consistency.
Upstream LLVM version: eb4186cca7924fb1706357545311a2fa3de40c59
2018-05-22 23:31:08 -07:00
Peter Johnson
7cd15aa049
Re-enable JsonIteratorObjectTest.KeyValue.
2018-05-15 22:31:35 -07:00
Peter Johnson
f8ed48af98
Update json from upstream version 3.1.2.
...
This adds support for ubjson and makes a number of bugfixes.
Binary input and output have switched from strings to uint8_t arrays.
2018-05-15 22:31:35 -07:00
Peter Johnson
c274d1790f
StringRef: Add comparison operators against const char*.
2018-05-15 22:31:35 -07:00
Peter Johnson
6699f86361
Make most StringRef functions noexcept.
2018-05-15 22:31:35 -07:00
Peter Johnson
c2b1ed3edd
ArrayRef: Add value_type typedef like std containers.
2018-05-15 22:31:35 -07:00
Peter Johnson
2c27ad073a
raw_istream enhancements.
2018-05-15 22:31:35 -07:00
Peter Johnson
31bb55c319
Add std::vector and unsigned variants of raw_ostream.
2018-05-15 22:31:35 -07:00
Peter Johnson
dd4230d743
StringMap: Add decrement operations to iterator.
2018-05-15 22:31:35 -07:00
Tyler Veness
5ff3d837b6
Fix compilation with GCC 8 ( #1051 )
...
The anonymous namespace was renamed due to -Wsubobject-linkage complaining
about a field created in a GTest template class (CborRoundtripTestParam)
being defined in an anonymous namespace. See
https://stackoverflow.com/a/37723265 .
2018-05-13 23:11:13 -07:00
Thad House
f07799c67b
Disables unstable and failing unit tests ( #1057 )
2018-05-13 21:59:45 -07:00
Tyler Veness
6729a7d6b1
Run wpiformat on merged repo ( #1021 )
2018-05-13 17:09:56 -07:00
Peter Johnson
7a34f5d17d
Check for nullptr return from malloc, calloc, and realloc. ( #1023 )
...
These are used in ntcore and cscore. Add inline null-checking versions
to wpi/memory.h and use them throughout.
2018-05-04 17:55:46 -07:00
Peter Johnson
5c2c5ccd07
Remove atomic static shim. ( #1020 )
...
This was only useful for pre-VS2015 and was only being used in one place.
2018-05-04 02:07:27 -07:00
Thad House
954f8c40f5
Adds CMake Builds ( #1015 )
2018-05-02 21:15:30 -07:00
Peter Johnson
a28832e52f
Add backwards compatibility shims for old wpiutil headers.
...
These generate a warning when included, then include the old header.
Note for GCC, #warning is used; this requires -std=gnu++14 instead of
-std=c++14 (otherwise the warning is treated as an error because #warning is
a GNU extension). On MSVC, #pragma message is used, which is a bit
unsatisfactory as the message doesn't say where it was included from.
The llvm shim headers also include a llvm namespace shim.
2018-04-30 10:22:54 -07:00