Кресты / Говнокод #25185 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
class TcpClient
{
public:
    //...
    enum ErrCode{
        REZ_OK = 0,
        REZ_ERR,
        REZ_NO_NEW_DATA,
        REZ_NEW_DATA
    };
    //...
};
...
class UdpPort
{
public:
    //...
    enum ErrCode{
        REZ_OK = 0,
        REZ_ERR,
        REZ_NO_NEW_DATA,
        REZ_NEW_DATA
    };
    //...
};
    //...
    // Потом в коде:
    ErrCode rez = (rtcPort_.setupPort(portSettings) == WrapperSystemSockets::UdpPort::ErrCode::REZ_OK) ? ErrCode::REZ_OK : ErrCode::REZ_ERR;

Enum головного мозга.

Запостил: elapidae elapidae, (Updated )

Комментарии (8) RSS

  • Ненуачо. У каждого протокола свои енумы, и смешивать их не стоит. А вдруг в один придется что-то собственное добавить?
    Ответить
  • На самом деле, там еще интереснее: методы open(), close() в случае успеха возвращают REZ_OK, а в случае провала -- REZ_ERR. А метод read() в случае успеха возвращает REZ_NEW_DATA, а в случае провала может вернуть и REZ_ERR и REZ_NO_NEW_DATA.
    А что, логично.
    Ответить
    • > А метод read() в случае успеха возвращает REZ_NEW_DATA, а в случае провала может вернуть и REZ_ERR и REZ_NO_NEW_DATA.

      EOF vs no new data?

      без кода сложно сказать. но на первый взгляд не говно.

      даже что два энума - это тоже на первый взгляд не говно. потому что у TCP и UDP разные семантики, и как следствие разные реакции на ошибки. хотя факт что у обоих не хватает кодов ошибок, настораживает.

      в общем случае: все прокладки над BSD сокетами - они все говно. бсд сокеты они уже сами по себе прокладки, и еще больше прокладок к ним не надо (исключение: винды и WinSockets). все прокладки какие видел все говно потому что: либо фич не хватает, либо обработка ошибок кривая, либо все вместе.
      Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8