#ifndef TAPCONTROLLER_H #define TAPCONTROLLER_H #include #include #include #define IPv6_DEBUG //! The TapController class verifies Windows Tap Controller for existence on Windows platform. class TapController { public: static TapController& Instance(); static bool checkAndSetup(); static QString getOpenVpnPath(); bool checkInstaller(); static QStringList getTapList(); static bool enableTapAdapter(const QString &tapInstanceId); static bool disableTapAdapter(const QString &tapInstanceId); private: explicit TapController(); TapController(TapController const &) = delete; TapController& operator= (TapController const&) = delete; static bool checkDriver(const QString& tapInstanceId); static bool checkOpenVpn(); static QString getTapInstallPath(); static QString getTapDriverDir(); static bool setupDriver(); static bool setupDriverCertificate(); static bool removeDriver(const QString& tapInstanceId); static bool oldDriversRequired(); static bool restartTapService(); }; #endif // TAPCONTROLLER_H