| Index: mojo/edk/system/handle_signals_state.h
|
| diff --git a/mojo/edk/system/handle_signals_state.h b/mojo/edk/system/handle_signals_state.h
|
| index f2412787cbf61ce31d1c8d16997d6981bb12c4e5..1c47a288c1e27914798e2f8395f2122b873a5172 100644
|
| --- a/mojo/edk/system/handle_signals_state.h
|
| +++ b/mojo/edk/system/handle_signals_state.h
|
| @@ -5,9 +5,45 @@
|
| #ifndef MOJO_EDK_SYSTEM_HANDLE_SIGNALS_STATE_H_
|
| #define MOJO_EDK_SYSTEM_HANDLE_SIGNALS_STATE_H_
|
|
|
| -#include "mojo/public/cpp/system/handle_signals_state.h"
|
| +#include "mojo/edk/system/system_impl_export.h"
|
| +#include "mojo/public/c/system/types.h"
|
|
|
| -// TODO(rockot): Remove this header and use the C++ system library type
|
| -// directly inside the EDK.
|
| +namespace mojo {
|
| +namespace edk {
|
| +
|
| +// Just "add" some constructors and methods to the C struct
|
| +// |MojoHandleSignalsState| (for convenience). This should add no overhead.
|
| +struct MOJO_SYSTEM_IMPL_EXPORT HandleSignalsState final
|
| + : public MojoHandleSignalsState {
|
| + HandleSignalsState() {
|
| + satisfied_signals = MOJO_HANDLE_SIGNAL_NONE;
|
| + satisfiable_signals = MOJO_HANDLE_SIGNAL_NONE;
|
| + }
|
| + HandleSignalsState(MojoHandleSignals satisfied,
|
| + MojoHandleSignals satisfiable) {
|
| + satisfied_signals = satisfied;
|
| + satisfiable_signals = satisfiable;
|
| + }
|
| +
|
| + bool equals(const HandleSignalsState& other) const {
|
| + return satisfied_signals == other.satisfied_signals &&
|
| + satisfiable_signals == other.satisfiable_signals;
|
| + }
|
| +
|
| + bool satisfies(MojoHandleSignals signals) const {
|
| + return !!(satisfied_signals & signals);
|
| + }
|
| +
|
| + bool can_satisfy(MojoHandleSignals signals) const {
|
| + return !!(satisfiable_signals & signals);
|
| + }
|
| +
|
| + // (Copy and assignment allowed.)
|
| +};
|
| +static_assert(sizeof(HandleSignalsState) == sizeof(MojoHandleSignalsState),
|
| + "HandleSignalsState should add no overhead");
|
| +
|
| +} // namespace edk
|
| +} // namespace mojo
|
|
|
| #endif // MOJO_EDK_SYSTEM_HANDLE_SIGNALS_STATE_H_
|
|
|