Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-22992

Refactor VIO to be proper C++

    XMLWordPrintable

    Details

      Description

      VIO still has a C+ architecture, oversized structs with function pointers.

      There is no reason for that, abstract class(pure virtual) would do better, and allow easiler changes and more functionality.

      Abstract class could have read(),write(),has_data(), shutdown(), make_blocking() and read/write async to support (Windows or other systems AIO) .

      Vio classes could be stacked/layered, to support e.g buffering and in some cases SSL (I'm thinking of native Schannel ssl for example which would need undelying read and write functions). Currently neither SSL nor buffering work for named pipe.

      Note, that there is a tiny client included into the server, that would be using C++ vio as well.
      It is currently C, but there is nothing that prevents it to be compiled in C++ (export functions must be properly declared extern "C" though).

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              wlad Vladislav Vaintroub
              Reporter:
              wlad Vladislav Vaintroub
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated: