Make struct CapIOManager be fully opaque
Provide an opaque (forward) definition in Capability.h (since the cap contains a *CapIOManager) and then only provide a full definition in a new file IOManagerInternals.h. This new file is only supposed to be included by the IOManager implementation, not by its users. So that means IOManager.c and individual I/O manager implementations. The posix/Signals.c still needs direct access, but that should be eliminated. Anything that needs direct access either needs to be clearly part of an I/O manager (e.g. the sleect() one) or go via a proper API.
Showing
- rts/Capability.c 1 addition, 1 deletionrts/Capability.c
- rts/Capability.h 9 additions, 1 deletionrts/Capability.h
- rts/IOManager.c 20 additions, 9 deletionsrts/IOManager.c
- rts/IOManager.h 18 additions, 41 deletionsrts/IOManager.h
- rts/IOManagerInternals.h 54 additions, 0 deletionsrts/IOManagerInternals.h
- rts/RtsFlags.c 1 addition, 0 deletionsrts/RtsFlags.c
- rts/Schedule.c 3 additions, 3 deletionsrts/Schedule.c
- rts/posix/Select.c 1 addition, 1 deletionrts/posix/Select.c
- rts/posix/Signals.c 6 additions, 0 deletionsrts/posix/Signals.c
- rts/win32/AsyncMIO.c 1 addition, 0 deletionsrts/win32/AsyncMIO.c
Loading
Please register or sign in to comment