Commit Graph

70 Commits (46baa54f759de738926f4e155ebb48256cc19291)

Author SHA1 Message Date
Bradlee Speice 46baa54f75 Add bors.toml 2019-10-07 22:57:27 -04:00
Bradlee Speice 419cbf158c Refactor workspace build 2019-10-07 22:17:14 -04:00
Bradlee Speice 9f086c5965 Fix the Travis build 2019-10-07 19:26:33 -04:00
Bradlee Speice faf7fd33e4 Move to workspace builds 2019-10-07 19:20:14 -04:00
bspeice a348e90d36
Merge pull request #6 from bspeice/driver_terminate
Driver Terminate
2019-10-07 19:12:49 -04:00
Bradlee Speice 5156f48dd4 Fix two last unused Result types 2019-10-07 07:49:20 -04:00
Bradlee Speice 2b8e32abb7 More temporary directory fixes 2019-10-07 07:34:00 -04:00
Bradlee Speice 1a3d67f02c Fix a variable name 2019-10-07 07:07:16 -04:00
Bradlee Speice 2cd2ae9995 Fix issues with delete on start
Seems like Windows doesn't handle it properly?
2019-10-07 07:02:02 -04:00
Bradlee Speice 7e8f49c347 Move `aeronmd` back out of -sys.
Clap/Ctrlc are still causing issues during static link.
2019-10-06 23:18:57 -04:00
Bradlee Speice dc9fd52e07 Able to successfully terminate a driver!!!
Needs a *ton* of work to be more Rust-idiomatic, but the basics are there.
2019-10-06 23:16:47 -04:00
Bradlee Speice a755382f24 Add dev-dependencies for `sys` crate 2019-10-06 21:38:38 -04:00
Bradlee Speice f4c2fcf0c5 Finally able to terminate a driver.
Need to write a test for it, but it's working locally.
2019-10-06 21:37:38 -04:00
Bradlee Speice 143e21bf0a Minor cleanup of CnC descriptor test 2019-10-06 20:54:11 -04:00
Bradlee Speice adfa401245 Add duty cycle functionality to the media driver
Eventually want to receive term events in tests
2019-10-06 20:45:57 -04:00
Bradlee Speice 61a02711c0 Remove the termination validator
As was pointed out in the main Aeron project, should use an environment variable instead.
2019-10-06 19:12:35 -04:00
Bradlee Speice 6e1645a7c1 Formatting fix 2019-10-06 18:42:38 -04:00
Bradlee Speice 730252127b Add a termination validator hook
Explains why `aeronmd` never actually shut down
2019-10-06 18:17:28 -04:00
Bradlee Speice b548c867c8 Theoretically able to shut down a driver?
In practice, I can't get any combination of C's aeronmd, C++'s DriverTool, Rust's `aeronmd`, and `do_terminate`.
2019-10-05 22:01:17 -04:00
Bradlee Speice a92f7e6416 One more question I need to eventually track down 2019-10-05 20:30:28 -04:00
Bradlee Speice 9373f04b48 Add buffer write support 2019-10-05 20:28:35 -04:00
Bradlee Speice 8174f0cde1 Fix formatting 2019-10-05 00:24:47 -04:00
Bradlee Speice 3ae7e6176c Implement `claim_capacity`
Pretty close to having write support ready
2019-10-04 23:53:58 -04:00
Bradlee Speice 818d2ad821 Struct overlay, handle negative offsets 2019-10-04 20:26:15 -04:00
Bradlee Speice a40a71d4a8 Fix formatting and warnings 2019-10-03 22:55:02 -04:00
Bradlee Speice 38eea0224f Fix the bounds check 2019-10-03 22:40:10 -04:00
Bradlee Speice 4611034b7b Add a test for increment offset 2019-10-03 22:17:08 -04:00
Bradlee Speice c463c96170 Start work on the atomic buffer
C++ Aeron doesn't seem to care about alignment, so I guess I won't either?
2019-10-03 22:10:34 -04:00
Bradlee Speice 5527495b09 Reversion and cleanup
Moving the `aeronmd` example to the sys crate caused issues for static
linking because of the `tempfile` crate.

Revert "Install luuid for Linux"
Revert "Fix some Cargo.toml issues"
Revert "More minor cleanup"
2019-10-03 00:48:53 -04:00
Bradlee Speice c5b227f328 Install luuid for Linux 2019-10-03 00:32:37 -04:00
Bradlee Speice 0e1462fe9e Fix some Cargo.toml issues 2019-10-02 23:42:05 -04:00
Bradlee Speice c982a63cd9 More minor cleanup 2019-10-02 23:27:59 -04:00
Bradlee Speice 49bfb1edb9 Minor cleanup of the CnC version check 2019-10-02 23:11:44 -04:00
Bradlee Speice 27a8ce0dd4 Start reading the CnC file 2019-10-02 22:54:44 -04:00
Bradlee Speice 4085574b91 Add all the control protocol enums 2019-09-25 23:02:28 -04:00
Bradlee Speice dcb0af4f5e Make the macro look like an enum declaration
Interestingly enough, `cargo fmt` now recognizes and formats it
2019-09-25 22:31:10 -04:00
Bradlee Speice cef3a17d55 Move the control protocol enum to main client lib
Side benefit: forcing documentation
2019-09-25 22:18:56 -04:00
Bradlee Speice 78730221d1 Fix a dumb mistake in null checking...
D'oh.
2019-09-25 22:09:18 -04:00
Bradlee Speice 8b0ee22e1b Clippy cleanup 2019-09-25 00:26:19 -04:00
Bradlee Speice 774a9a6b30 Doc fixes 2019-09-25 00:24:42 -04:00
Bradlee Speice 3cd0aa4f55 Add in Rust-y bindings for some of the `#define` constants 2019-09-25 00:19:04 -04:00
Bradlee Speice 8371b25638 Tweak to enum generation
No more gigantic weird names
2019-09-24 19:41:45 -04:00
Bradlee Speice 28900c330e Windows compatibility fixes 2019-09-24 00:25:12 -04:00
Bradlee Speice 941c18bf37 Clean up the client context a bit
We're not ready to make use of most of these options
2019-09-23 23:27:03 -04:00
Bradlee Speice 966db0767f Add a Rust-ier way of handling the MediaDriver 2019-09-23 23:04:59 -04:00
bors[bot] 1889a198b9
Merge #4
4: Start the Aeron media driver r=bspeice a=bspeice

Effectively runs the same code as [aeronmd.c](2afd9c6272/aeron-driver/src/main/c/aeronmd.h), but in Rust.

Note that this just demonstrates how to start the C Media Driver in-process; actual clients communicate through shared memory, so it's expected that actual client code will interface with the C bindings infrequently, if ever. That said, it's not a terrible idea to build more ergonomic bindings into the C layer; when testing the Rust client, we'll need a Media Driver running.

Co-authored-by: Bradlee Speice <bradlee@speice.io>
2019-09-22 23:04:37 +00:00
Bradlee Speice 8eaf6b81c6 Add the aeronmd example
I think I might be doing this the wrong way; if I want to embed the media driver, I'll need these bindings, but otherwise the clients just communicate through shared memory.
2019-09-22 18:58:34 -04:00
Bradlee Speice 1fdf79af8b Start work on the client context 2019-09-22 17:56:52 -04:00
Bradlee Speice 646d58fd1b Whitelist driver bindings
Much cleaner namespace to work with
2019-09-22 15:30:17 -04:00
Bradlee Speice 4310eb7e73 Project documentation files 2019-09-21 23:15:48 -04:00