Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Libuv Asys Implementation #1022

Draft
wants to merge 164 commits into
base: master
Choose a base branch
from
Draft

Libuv Asys Implementation #1022

wants to merge 164 commits into from

Conversation

Aidan63
Copy link
Contributor

@Aidan63 Aidan63 commented Dec 23, 2022

WIP Libuv based asys api implementation. Trying to hide the libuv-ness behind a generic asys header so someone could provide an alternative asys implementation for platforms which might not support libuv but have their own. Also going to add a "NotImplementedException" asys implementation for non desktop platforms.

I've tried a base object approach instead of differing implementations behind #ifdef checks so typed objects can be passed around instead of Dynamic. I'm also using some c++ 14 features (make_unique and nested namespaces), not sure if there's a c++ version that hxcpp tries to target. I'm not married to any of this so I'm happy to change any of it.

  • Event Loop
  • File
  • Directory
  • File System
  • Net
    • Dns
    • Ip
    • Socket
    • Server
    • UdpSocket
    • SecureSocket
    • SecureServer
  • Processes
    • stdio pipe to file paths.
  • Signals
  • Streams

Other TODO:

  • Ensure all uv_handle_t's are cleaned up when things fail (look into custom unique_ptr's to automate this)
  • Move some stuff out of C++ and into haxe (I would like to move all the queuing stuff into haxe, easier than faffing around with state in a C API).
  • Double check all GC and heap object cleanup
  • Change all uses of Dynamic to typed callables (depends on [cpp] Generate Typed Functions haxe#11151)
  • Reduce dependency to C++ 11.
  • Revive branch I experimented on a while ago to mark hx::Throw as no-return.

@skial skial mentioned this pull request Jan 4, 2023
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants