Я решил переделать библиотеку так, чтобы она "соответствовала" идеологии QT4.
За основу взял реализацию QAbstractSocket и т.п. . Решил пока что начать реализацию библиотеки "чисто" для Unix. (хотя и для Windows есть куски)
Реализовал "с горем пополам" это:
abstractserialengine.cpp
nativeserialengine.cpp
nativeserialengine_unix.cpp
nativeserialengine_win.cpp
abstractserialengine_p.h
nativeserialengine_p.h
datatypes.h
(архив прилагается)
Но застопорился на реализации :
abstractserial_p.h
abstractserial.h
abstractserial.cpp
(назвал по аналогии с сокетами)
Как видно, я старался придерживаться структуры файлов такой же как и в реализации сокетов
Стопор у меня в том, что у меня нет сил больше разбираться в исходниках сокетов, т.к. тролли нагородили и навертели там так, что я не могу отсеять уже лишнее и добавить то что нужно..
Меня интересуют следующие вопросы:
1. Зачем они и в qabstractsocketengine_p.h и в qabstractsocket_p.h два раза определяют одни и теже переменные:
..
QString hostName;
quint16 port;
QHostAddress host;
QList<QHostAddress> addresses;
quint16 localPort;
quint16 peerPort;
QHostAddress localAddress;
QHostAddress peerAddress;
QString peerName;
..
??
2. Для чего используется метод : static QAbstractSocketEngine *createSocketEngine(int socketDescripter, QObject *parent); ?
Он меня вводит в ступор ...
И вообще, чо-то я в себе разочаровался
Не знаю как разгрести всё это.
Помогите хто нить в чем нить! На путь истинный наставте!
ЗЫ: решил занятся переделкой для того чтобы иметь возможность получения сигналов readyRead из евент лоопа. Но т.к. то что мне советовали на этом форуме в части использования нотификаторов - это мне показалось слишком простым, т.к. нужно еще и блокировать сообщения при вызове waitForReadyRead и т.п. В общем хотел сделать "все правильно"