Russian Qt Forum
Ноябрь 26, 2024, 05:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Помощь в проэктирование модульной программы.  (Прочитано 9284 раз)
s200999900
Гость
« : Июль 26, 2010, 17:58 »

Всем привет!
Я новичек в программировании и недавно начал изучать QT.
Подскажите где можно почитать и прилизительные примеры исходников(для новичка) о том как написать модульное приложение.
Есть ядро программы, которое скорее всего будет работать в режиме демона/сервиса(вариант для виндовса на будущее), его задача только поиск плагинов и перенарпавление запросов от одного плагина к другому.
Весь функционал программы выполняется в плагинах они же должны выполнятся в отдельных процессах.
Основные плагины которые должны быть:
    GUI самого приложения в котором должны отображаться список плагинов и их настроек и отображения функционала в gui.
    интерфейс командной строки функционал почти тот же что и в gui но из ком.строки.
    доступ к бд (mysql,sqlite)
В общем покаместь все, подскажите с чего начать, что можно почитать по этому поводу? или может есть что-то готовое как шаблон или заготовка для анализа ? Улыбающийся
Спасибо!
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Июль 26, 2010, 20:48 »

вряд ли можно посоветовать что-то лучше, чем примеры и демки идущие в комплекте с Qt
Записан

Юра.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Июль 26, 2010, 21:50 »

Весь функционал программы выполняется в плагинах они же должны выполнятся в отдельных процессах.
Может быть в отдельных нитках (потоках)? Потому что "плагин" обычно выполняется в процессе хоста.

А вообще респект Вашему ВУЗу и преподавателям - хорошие задания дают!
Записан
BlackTass
Гость
« Ответ #3 : Июль 26, 2010, 23:38 »

я думаю что отдельный процесс имеется в виду fork(), а не отдельное приложение.
Записан
s200999900
Гость
« Ответ #4 : Июль 27, 2010, 09:18 »

вряд ли можно посоветовать что-то лучше, чем примеры и демки идущие в комплекте с Qt
Можете подсказать на какую лучше посмотреть чтобы как можно более близко отобразил то что мне нужно?
Записан
s200999900
Гость
« Ответ #5 : Июль 27, 2010, 09:29 »

Весь функционал программы выполняется в плагинах они же должны выполнятся в отдельных процессах.
Может быть в отдельных нитках (потоках)? Потому что "плагин" обычно выполняется в процессе хоста.

А вообще респект Вашему ВУЗу и преподавателям - хорошие задания дают!
Спасибо!
" Может быть в отдельных нитках (потоках)? Потому что "плагин" обычно выполняется в процессе хоста. " - можно и в отдельных нитках, применительно к *nix это будут потоки (Qthreads?)  Мне бы понять концептуально как можно реализовать такую заготовку для програмки и если б был пример подобной разработки.
Записан
s200999900
Гость
« Ответ #6 : Июль 27, 2010, 09:40 »

я думаю что отдельный процесс имеется в виду fork(), а не отдельное приложение.
Я так и подозревал
Покаместь представляю в общем картинку: запускается ядро(демон в никсах), он просканирует каталог с плагинами и выделяет для себя бибилиотеки-плагины, которые потом подгружает, с проверкой подходят ли ему по версии эти плагины. Создает список всех доступных методов/классов с растановкой приоритетов нужно для того чтобы конект к БД mysql/sqllite произошел раньше чем пошла работа с данными из этой самой бд  .и затем по "требованию? запускает GUI" или лучше GUI/CLI как отдельную программу сделать которая конектится через tcp сокет к демону?

Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #7 : Июль 27, 2010, 09:43 »

зачем так усложнять? Сделайте просто несколько библиотек
[offtop]Хотя передача сигналов\слотов по сети была бы делом прикольным
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Июль 27, 2010, 11:29 »

Покаместь представляю в общем картинку: запускается ядро(демон в никсах), он просканирует каталог с плагинами и выделяет для себя бибилиотеки-плагины, которые потом подгружает, с проверкой подходят ли ему по версии эти плагины. Создает список всех доступных методов/классов с растановкой приоритетов нужно для того чтобы конект к БД mysql/sqllite произошел раньше чем пошла работа с данными из этой самой бд  .и затем по "требованию? запускает GUI" или лучше GUI/CLI как отдельную программу сделать которая конектится через tcp сокет к демону?
Здесь хватает работы с управлением разными dll даже в рамках 1 процесса и 1 нитки. Создавать больше процессов и/или ниток - неясно зачем. Прочитайте в Assistant про QDir и QLibrary, загрузите нужные модули и их ф-ции. Ну и вызывайте их в нужном порядке.
Записан
s200999900
Гость
« Ответ #9 : Июль 27, 2010, 12:59 »

Прочитайте в Assistant про QDir и QLibrary, загрузите нужные модули и их ф-ции. Ну и вызывайте их в нужном порядке.
Спасибо! почитаем.
Записан
crossly
Гость
« Ответ #10 : Июль 27, 2010, 15:11 »

вариантов решения может быть несколько... сначала надо определится с задачей и архитектурой.... а потом искать решение... а не на оборот...
Записан
s200999900
Гость
« Ответ #11 : Июль 27, 2010, 15:39 »

вариантов решения может быть несколько... сначала надо определится с задачей и архитектурой.... а потом искать решение... а не на оборот...
С задачей определился нужна для начала заготовка программы функциональность которой будет располагаться в плагинах, а ядро программы (демон) будет только загружать(подключать)/выгружать(отключать) плагины и реализовывать связи между плагинами
Если я правильно понимаю понятие архитектуры программы то это модульная.
Можете подсказать какой нибудь вариант решения подобной задачи? или где можно почитать о том как подобные программы проэктируются или реализуются? желательно чотбы было не сильно сложно было Улыбающийся
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #12 : Июль 27, 2010, 15:41 »

да не нужен там демон
Записан
Sahab
Гость
« Ответ #13 : Июль 27, 2010, 15:56 »

а почему нет?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #14 : Июль 27, 2010, 15:58 »

и захотим мы написать гуи плагин и обломаемся
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 23.