Commit Graph

49 Commits

Author SHA1 Message Date
Jack Andersen b8e1e4673e Exclude CMake CXX standard from MSVC 2020-04-10 19:00:51 -10:00
Phillip Stephens d72163ad27
Merge pull request #8 from lioncash/bind
Listener: Remove unnecessary bind() within start()
2019-09-03 19:55:03 -07:00
Phillip Stephens fb3d880b63
Merge pull request #7 from lioncash/assignment
Listener: Simplify assignment within accept()
2019-09-03 19:54:45 -07:00
Phillip Stephens ebe78edac7
Merge pull request #6 from lioncash/constexpr
Listener: Move port constants into cpp file
2019-09-03 19:54:27 -07:00
Phillip Stephens 092f7dd0f2
Merge pull request #5 from lioncash/array
Endpoint: Use std::array where applicable
2019-09-03 19:54:02 -07:00
Lioncash be121a1bb9 Listener: Remove unnecessary bind() within start()
std::thread already handles execution of member functions
out-of-the-box.
2019-09-03 10:18:52 -04:00
Lioncash 33908dd86a Listener: Simplify assignment within accept()
We can just assign to the ret variable directly.
2019-09-03 10:15:33 -04:00
Lioncash 4538b20e73 Listener: Use C++17 deduction guides for mutex locks
Same thing, but without hardcoding the mutex type.
2019-09-03 10:13:30 -04:00
Lioncash 04ea97ac8e Listener: Move port constants into cpp file
These are a complete internal detail, so we can hide them from the
header entirely.
2019-09-03 10:07:14 -04:00
Lioncash 5a97e587b6 Endpoint: Use std::array where applicable
Makes the interface a little more strongly-typed, and in some cases
makes it less likely to pass in invalid data.
2019-09-03 09:54:50 -04:00
Phillip Stephens dff87c2c6a
Merge pull request #3 from lioncash/include
General: Amend includes where applicable
2019-09-03 00:36:09 -07:00
Phillip Stephens 417e79f924
Merge pull request #4 from lioncash/zero
General: Use list initialization where applicable
2019-09-03 00:35:57 -07:00
Lioncash 9f7c855acd General: Use list initialization where applicable
Same behavior, but without the need for separating the assignment from
the declaration
2019-09-03 00:55:06 -04:00
Lioncash 714e88bb7a Socket: Add missing noexcept specifier to LastWSAError()
This is used within a noexcept function, so it needs the noexcept
specifier.
2019-09-03 00:27:30 -04:00
Lioncash d4891f187f General: Amend includes where applicable 2019-09-03 00:26:08 -04:00
Phillip Stephens a79aeacfb9 Add missing `noexcept` decorators 2019-08-23 01:32:16 -07:00
Phillip Stephens 876c4dcde4
Merge pull request #2 from lioncash/noexcept
Socket: Mark interface noexcept where applicable
2019-08-22 18:35:49 -07:00
Lioncash 0e24aad20e Socket: Mark interface noexcept where applicable
Move constructors should always be marked noexcept, otherwise the object
cannot be placed into most standard library containers (as they
generally use std::move_if_noexcept to enforce strong exception
guarantees), and if this is false, then the container will fallback to
attempting to copy construct the object. Naturally, this cannot occur
without compilation errors for objects that have their copy constructor
and copy-assignment operators deleted (like Socket).

While we're at it, we can make most of the socket interface noexcept,
given they just forward to the POSIX socket functions.
2019-08-14 10:16:44 -04:00
Phillip Stephens 87cbb52a33
Merge pull request #1 from lioncash/explicit
General: Make operator bool overloads and single-arg constructors exp…
2019-08-14 07:04:02 -07:00
Lioncash 6ce7c38e24 General: Make operator bool overloads and single-arg constructors explicit
Prevents various error-prone cases of implicit conversion to bool, while
retaining general conversions within conditional statements. We also
disable implicit conversions with constructors that may be ambiguous to
enforce being clear with intentions.
2019-08-14 10:00:01 -04:00
Jack Andersen 8d356cb3da Make stuff constexpr 2019-07-19 18:23:46 -10:00
Jack Andersen e61237209d Better CMake dependency handling 2019-06-11 16:03:39 -10:00
Jack Andersen 9dd968dd66 Ensure time.h is included 2019-04-06 19:00:24 -10:00
Jack Andersen e28b6551d0 New code style refactor 2018-12-07 19:20:55 -10:00
Jack Andersen 500f88d7a7 Convert to pragma once 2018-10-06 17:42:04 -10:00
Jack Andersen 349263a88c Logging changes 2018-02-04 20:55:20 -10:00
Jack Andersen c06141af1e Stack reference bug fix 2018-01-13 20:43:00 -10:00
Jack Andersen 8593e06fa5 Update copyright date 2018-01-02 14:25:24 -10:00
Jack Andersen 2098e8da29 Isolate WinSock2 header to translation unit 2017-12-29 15:08:45 -10:00
Jack Andersen 3b94b2d400 Huge compile performance refactor 2017-12-28 22:05:42 -10:00
Jack Andersen 34860de248 Remove optional.hpp dependency 2017-12-06 18:09:57 -10:00
Jack Andersen b1f9b08d25 Require CMake 3.10 2017-11-13 18:52:22 -10:00
Jack Andersen ec0589ec23 string_view refactor 2017-11-12 20:18:02 -10:00
Jack Andersen 3c4a99fbe8 apply CMAKE_CXX_STANDARD 2017-06-17 16:51:58 -10:00
Jack Andersen b8c42676ce Minor reorganization; bind to localhost to prevent Windows Firewall alert 2017-01-21 15:38:02 -10:00
Jack Andersen 9db987d3dd Merge branch 'master' of https://github.com/AxioDL/jbus 2017-01-07 16:52:15 -10:00
Jack Andersen 0153e0ee6a Add ability to change SI channel and detect disconnections 2017-01-07 16:51:38 -10:00
Jack Andersen d7147cd3f7 Typo Fix 2017-01-07 14:22:49 -10:00
Phillip Stephens b82c928e45 FreeBSD fix 2017-01-07 16:20:46 -08:00
Jack Andersen 4699542f93 Add Doxygen comments 2017-01-07 13:55:41 -10:00
Phillip Stephens a3fe0a3a25 Fix compiling on linux 2017-01-07 15:31:23 -08:00
Jack Andersen 42f1b86627 Use blocking I/O for transfer thread 2017-01-07 11:19:25 -10:00
Jack Andersen e161ef15fa Remove unnecessary setBlocking calls 2017-01-06 22:50:40 -10:00
Jack Andersen e65f42c843 Disable logging macros 2017-01-06 22:28:58 -10:00
Jack Andersen c34b81ad6c Win32 compatibility fixes 2017-01-06 22:24:16 -10:00
Jack Andersen ed1adfee0d More lenient timeout 2017-01-06 19:26:13 -10:00
Jack Andersen 9b2b1fd1e6 Use /lib rather than /src 2017-01-06 19:00:40 -10:00
Jack Andersen 52eae7421b Add general-purpose JoyBoot utility 2017-01-06 18:57:28 -10:00
Jack Andersen ab163e856a Initial commit 2017-01-06 17:13:23 -10:00