Von boost::asio::tcp::socket erben



  • Hoi,
    ich möchte in meinem Projekt eine Verbindung über einen Socks4-Proxyserver aufbauen und ungern eine Library dafür nutzen, möchte keine neuen Abhängigkeiten.

    Spricht etwas dagegen einfach von boost::asio::tcp::socket zu erben und die connect Memberfunktionen zu überladen bzw zu überschreiben? Virtuell sind sie ja.

    Grüße,
    Ethon



  • Ja. Dass sie eben nicht virtuell ist...



  • *Kopfkratz*

    Höh, jetzt bin ich verwirrt, sind sie ja wirklich nicht.



  • Hey di ho,

    warum willste na von der Klasse erben.
    Bau dir doch einfach was in der Art:

    Pseudo Code:

    class proxy
    {
    public:
       proxy();   
       init(tcp::connection);
       send();
       recv();
       end();
    };
    
    class socks4 : public proxy {};
    class socks5 : public proxy {};
    class httpProxy : public proxy {};
    
    class connection
    {
       connection(proxy* p) : m_proxy(p) {
          m_proxy.init(m_sock);
       }
       send(data) {
          m_proxy.send(data)
       }
    /* .... */
    
    private:
       std::unique_ptr<proxy> m_proxy;
       tcp::socket m_sock;
    };
    

    Gibt auch nen Namen fuer das Pattern weiss ihn aber grad ned :(.

    Gruessle



  • proxy pattern oder adapter oder delegation


Anmelden zum Antworten