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

              wlad Vladislav Vaintroub
              wlad Vladislav Vaintroub
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.