Russian Qt Forum
Ноябрь 25, 2024, 09:44
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Как заставить QDirIterator сотрудничать с QFtp?
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как заставить QDirIterator сотрудничать с QFtp? (Прочитано 7348 раз)
niXman
Гость
Как заставить QDirIterator сотрудничать с QFtp?
«
:
Май 21, 2009, 10:35 »
Дарова!
Можно как-то заставить их сотрудничать? )
Или может есть какаянить альтернатива?
Записан
ритт
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #1 :
Май 21, 2009, 19:21 »
перегрузить QAbstractFileEngine и реализовать в нём "прозрачную" поддержку фтп.
или подождать когда это сделаю я
Записан
niXman
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #2 :
Май 21, 2009, 21:58 »
"или подождать когда это сделаю я" -
Ждать долго то?
Я так и думал что придется перегружать его. Еще думал что возможно как-то это можно сделать иначе...
Записан
ритт
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #3 :
Май 21, 2009, 23:42 »
Цитата: niXman от Май 21, 2009, 21:58
Я так и думал что придется перегружать его. Еще думал что возможно как-то это можно сделать иначе...
иначе никак.
Цитата: niXman от Май 21, 2009, 21:58
"или подождать когда это сделаю я" -
Ждать долго то?
ближайшие неделю-полторы времени не будет и я буду недоступен.
назови свои сроки - если нужно срочно, могу помочь с теорией, а потом воспользоваться результатами (пусть даже и неполными); иначе подожди моих результатов и воспользуешься ими сам.
в любом случае, моя реализация будет лучше
Записан
niXman
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #4 :
Май 22, 2009, 00:27 »
Цитировать
в любом случае, моя реализация будет лучше
Как это понимать?!
Думаете уровень моих знаний ниже?
«
Последнее редактирование: Май 22, 2009, 08:23 от niXman
»
Записан
ритт
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #5 :
Май 22, 2009, 02:28 »
"лучше для меня"
зы. интересно что скрывается под точками)
Записан
ритт
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #6 :
Май 22, 2009, 02:51 »
хорошо, вижу, вызвал негативные эмоции
поэтому поясню: в данный момент асбтрактфайлэнджине подходит для написания вфс-ок лишь по документации. на самом же деле нужно пересматривать реализацию в целом, т.к. текущая реализация достаточна лишь для кутэшного движка - абстрактфайлэнджинеитератор писался на пару лет позже, чем абстрактфайлэнджине - связать их между собой не представляется возможным по причинам бинарной совместимости...и т.д., и т.п. т.е. до 5.0 реализацию никто пересматривать не будет.
сейчас у меня уже есть наработанный набор костылей, есть набор патчей, которые я намерен продвигать в мэйн, вдобавок имеется опыт в написании (в)фс на базе абстрактфайлэнджины.
надеюсь, этих разъяснений достаточно?)
Записан
niXman
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #7 :
Май 22, 2009, 08:23 »
Благо есть над чем поразмыслить...
Записан
ритт
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #8 :
Май 22, 2009, 09:36 »
niXman, предлагаю эксперимент:)
вводные: наша вфс будет иметь предопределённыую структуру пути (урл) -
http://ftp://username:userpass@hostname/path/to/somefile
. при получении пути, начинающегося с "ftp://", метод QAbstractFileEngine::create(...) создаст нам экземпляр класса FtpFileEngine (назовём его так).
разрешается: пользоваться любыми костылями в меру фантазии.
запрещается: модифицировать классы с префиксом "Q", функции с префиксом "q" и макросы с префиксом "Q_"
требуется: одновременно может быть открыто более одного фтп-соединения (сессии), но фактическое соединение для каждой сессии должно быть уникальным - т.е., для любой отдельной сессии перечисление каталога (FtpFileEngineIterator) и файловые операции (FtpFileEngine) должны происходить с использованием одного и того же экземпляра класса QFtp - без разрыва соединения между операциями. при завершении работы с сессией соединение должно быть разорвано и отпущены использованные ресурсы (внешних признаков окончания сессии нет - вероятно, их потребуется определить по использованию ресурсов).
какие будут идеи?
«
Последнее редактирование: Май 22, 2009, 09:42 от Константин
»
Записан
niXman
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #9 :
Май 22, 2009, 19:24 »
Увлекательное предложение.
Но дело в том, что у меня сейчас проект, и мне не нужна такая "крутая" реализация.
Вы недели-полторы будите заняты? Постараюсь к этому времени освободиться.
P.S.
Предложение принято.
Записан
ритт
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #10 :
Май 22, 2009, 20:02 »
к сожалению, задачка с фтпфс более простая, чем задачка с зипфс, которой я сейчас мучаюсь. наверное, есть какой-то обходной способ упростить мои мучения, но для этого мне нужен свежий взгляд и пинок под зад
сегодня услышал мнение, что QAbstractFileEngine уже не покрывает потребности нативной QFSFIleEngine. но сделать с этим до 5.0 они всё-равно ничего не могут (помним про source compatibility?)
прискорбно, конечно, но выбора нет - костыли и патчи...
зы. не нужно на "вы" - мы же здесь в одном котле
Записан
niXman
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #11 :
Май 22, 2009, 21:09 »
Цитировать
наверное, есть какой-то обходной способ упростить мои мучения
Есть же много готовых реализаций. Даже, где видел STL compatible.
Цитировать
сегодня услышал мнение, что QAbstractFileEngine уже не покрывает потребности нативной QFSFIleEngine
А в чем причина?
Цитировать
помним про source compatibility?
Да.
Цитировать
не нужно на "вы" - мы же здесь в одном котле
Ок.
Записан
ритт
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #12 :
Май 23, 2009, 16:05 »
Цитировать
Цитировать
наверное, есть какой-то обходной способ упростить мои мучения
Есть же много готовых реализаций. Даже, где видел STL compatible.
готовые не подойдут, т.к. перестраивать интерфейс нельзя. а писать свой набор контейнеров и моделей - тоже не вариант.
Цитировать
Цитировать
сегодня услышал мнение, что QAbstractFileEngine уже не покрывает потребности нативной QFSFIleEngine
А в чем причина?
причина не называлась, но по косвенным признакам могу сделать предположение, что какие-то новые идеи также приходится реализовывать через костыли (мап/анмап, например)
моя задача - сделать фвс, прозрачную для приложения (в идеале любого на кутэ). т.е. в моём случае QFile("file.zip") - это файл, но QDir("file.zip") - это папка. это победил уже - написал пару патчей. но проблема в том, что без контекста невозможно определить что же требуется от пути: QFileInfo("file.zip") - это файл или папка? сейчас это файл и сделать его папкой можно лишь так: QFileInfo("file.zip/"), но тогда файлинфо будет возвращать другие filePath() и т.п., чем QFileInfo("file.zip")...
буду всю поездку ломать над этим голову...надеюсь, что-нибудь придумается
Записан
niXman
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #13 :
Май 24, 2009, 07:09 »
По реализации ВФС опыт имеется(не большой). Думаю что ЗИП ФС, было бы проще реализовать на Кутэ, а не в Кутэ(мне так кажеться).
Записан
ритт
Гость
Re: Как заставить QDirIterator сотрудничать с QFtp?
«
Ответ #14 :
Май 24, 2009, 07:36 »
zipfs я уже реализовал через ZipFileEngine (пока только на чтение). вот только хочется "прозраности"...
но я в принципе согласен - если за время поездки ничего умного не придумается, придётся отказаться от "прозрачности" и сделать что-нть вроде регистрации расширений для различных вфс (.zip, .iso и т.п.). это создаст массу неудобств и боюсь, придётся тогда клепать какие-нибудь промежуточные костыли для прозрачности файловых операций
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...