VSM C++ SDK
Vehicle Specific Modules SDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
overlapped_io_controller.h
Go to the documentation of this file.
1 // Copyright (c) 2018, Smart Projects Holdings Ltd
2 // All rights reserved.
3 // See LICENSE file for license details.
4 
9 #ifndef _UGCS_VSM_OVERLAPPED_IO_CONTROLLER_H_
10 #define _UGCS_VSM_OVERLAPPED_IO_CONTROLLER_H_
11 
13 
14 namespace ugcs {
15 namespace vsm {
16 namespace internal {
17 
20 public:
22 
23  virtual
25 
27  virtual void
28  Enable() override;
29 
31  virtual void
32  Disable() override;
33 
35  virtual void
37 
39  virtual void
41 
42 private:
44  HANDLE completion_port;
46  std::thread dispatcher_thread;
47 
49  void
50  Dispatcher_thread();
51 };
52 
53 } /* namespace internal */
54 } /* namespace vsm */
55 } /* namespace ugcs */
56 
57 #endif /* _UGCS_VSM_OVERLAPPED_IO_CONTROLLER_H_ */
virtual void Enable() override
Enable the controller.
virtual void Register_handle(File_processor::Stream::Native_handle &handle) override
Register new opened file handle.
Windows-specific implementation for I/O controller.
Definition: overlapped_io_controller.h:19
Interface for platform native file handle.
Definition: file_processor.h:109
virtual void Disable() override
Disable the controller.
virtual void Unregister_handle(File_processor::Stream::Native_handle &handle) override
Unregister previously registered file handle.
Interface for native I/O controller which manages I/O operations for all native handles.
Definition: file_processor.h:515