eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingEmbedded HTTP Server › Re: Embedded HTTP Server
  • X-Received: by 2002:ac8:7296:: with SMTP id v22mr16815147qto.239.1591480967887; Sat,
    06 Jun 2020 15:02:47 -0700 (PDT)
    X-Received: by 2002:ac8:7296:: with SMTP id v22mr16815147qto.239.1591480967887; Sat,
    06 Jun 2020 15:02:47 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin1!goblin.stu.neva.r
    u!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googleg
    roups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Sat, 6 Jun 2020 15:02:47 -0700 (PDT)
    In-Reply-To: <rbgtv9$vuf$1@dont-email.me>
    Complaints-To: g...@g...com
    Injection-Info: google-groups.googlegroups.com; posting-host=213.108.152.51;
    posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
    NNTP-Posting-Host: 213.108.152.51
    References: <d...@g...com>
    <rbg2hb$ebs$1@dont-email.me>
    <4...@g...com>
    <rbgtv9$vuf$1@dont-email.me>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <6...@g...com>
    Subject: Re: Embedded HTTP Server
    From: Maciej Sobczak <s...@g...com>
    Injection-Date: Sat, 06 Jun 2020 22:02:48 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:214951
    [ ukryj nagłówki ]


    > Ogólnie abstrakcja na wątki była by też przydatna, w końcu może ktoś
    > będzie chciał zmienić bibliotekę wątków na inną, tak jak właśnie w
    > FreeRTOS gdzie to nie jest ani win ani posix.

    Szkoda prądu. Przecież to jest open-source. Jak ktoś bedzie chciał wymienić
    standardowe wątki na jakieś inne, to zmienia dosłownie w jednym miejscu to:

    std::thread th(connection_thread, sock);

    na co tam potrzebuje, no i może jeszcze sygnaturę wołanej funkcji. Robienie
    abstrakcji na coś, co jest w jednej linijce, jest po prostu niepotrzebne. Łatwiej
    zmienić tą jedną linijkę.

    A jeszcze łatwiej zauważyć, że std::thread już jest tą abstrakcją - właśnie
    abstrakcją czegoś natywnego, bez narzucania konkretnego rozwiązania. I dokładnie taki
    jest sens istnienia tej klasy w std::. Więc jest też opcja podstawienia innej
    implementacji tejże standardowej klasy.

    Znowu - prawdziwy cyrk to stos TCP. To tam są smoki. Przerobienie tego serwera na
    inne wątki to pikuś, ale przestawienie go na inny stos - i to tak, żeby zachować
    abstrakcję IOStreams (które są z założenia *blokujące*), to już zupełnie inna zabawa.

    > brakuje bibliotek w logiką na cooroutines,

    To jest ciekawa uwaga. Pytanie, czy takie podejście ma swoją niszę rynkową, w której
    mieści się taki przykładowy serwer HTTP.
    Bo ja nie jestem przekonany, czy zawsze cały program trzeba robić jedną metodą. Może
    raczej jest tak, że np. komunikację z urządzeniami fizycznymi można zrobić na
    coroutinach, ale interfejsu użytkownika już nie warto.

    --
    Maciej Sobczak * http://www.inspirel.com

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: