|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2021 nono project ! 4: // Licensed under nono-license.txt ! 5: // ! 6: ! 7: #pragma once ! 8: ! 9: #include "object.h" ! 10: #include "netdriver.h" ! 11: ! 12: class EthernetDevice; ! 13: ! 14: // NetDriver セレクタ ! 15: class NetDriverSelector : public Object ! 16: { ! 17: using inherited = Object; ! 18: public: ! 19: NetDriverSelector(EthernetDevice *parent_); ! 20: ~NetDriverSelector() override; ! 21: ! 22: NetDriver *InitDriver(); ! 23: ! 24: // コンパイル済みのドライバ名一覧を返す ! 25: static std::vector<std::string> GetDrivers(); ! 26: ! 27: private: ! 28: NetDriver *InitNone(); ! 29: NetDriver *InitTap(); ! 30: NetDriver *InitBPF(); ! 31: NetDriver *InitAFPacket(); ! 32: ! 33: EthernetDevice *parent {}; ! 34: ! 35: std::string errmsg {}; ! 36: }; ! 37: ! 38: extern std::unique_ptr<NetDriverSelector> gNetDriverSelector;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.