Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax

Ответ
 
Опции темы
Старый 30.06.2010, 21:16   #1
Черный крыс
 
Сообщений: n/a
Вопрос Вопрос по организации менеджера ресурсов

Вобсчем ситуевина такая...

У меня есть менеджер ресурсов.
На этапе загрузки, все обьекты, которые грузят медию обращаются к этому менеджеру за потоком, менеджер в свою очередь определяет откуда грузить ресурс (из обычного файла или же из архива) и в итоге передает обьекту поток.

Вопрос такой...
Кто должен закрыть поток? менеджер, который передал поток или обьект который прочитал из потока данные?
 
Ответить с цитированием
Старый 30.06.2010, 22:02   #2
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,354
Написано 2,470 полезных сообщений
(для 6,850 пользователей)
Ответ: Вопрос по организации менеджера ресурсов

На мой взгляд это должен делать менеджер.
(Offline)
 
Ответить с цитированием
Старый 30.06.2010, 22:13   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Вопрос по организации менеджера ресурсов

Солидарен
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 01.07.2010, 04:50   #4
Черный крыс
 
Сообщений: n/a
Ответ: Вопрос по организации менеджера ресурсов

А можно как-то аргументировать свои утверждения?

По логике - да. Закрываться должно там, где оно отрывается. Ну а если мы грузим звук, который не грузится полностью, а берет данные из потока по мере надобности?
 
Ответить с цитированием
Старый 01.07.2010, 04:58   #5
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Вопрос по организации менеджера ресурсов

это уже вопрос организации хранения и использования. Закрывать всёравно должен менеджер, когда обьектом перестают пользоватся и/или сказали чтобы закрыть поток.
(Offline)
 
Ответить с цитированием
Старый 01.07.2010, 08:13   #6
Черный крыс
 
Сообщений: n/a
Ответ: Вопрос по организации менеджера ресурсов

Вобщем тут решил посмотреть как к этому подходят другие люди...(в плане управления потоками).

Взял звуковую библиотеку Squall. В функции SQUALL_SetFileCallBacks присутствуют 4 функции-каллбэка, а именно :
- Получить поток
- Прочесть
- Отпозиционировать
- Закрыть

Так вот, мне же кажется, что закрывание потока это прерогатива обьекта, который читает данные. Менеджер только дает поток, а что будет делать с ним обьект (читать, писать, закрывать) ему побарабану. ИМХО. Так как обьект лучше менеджера знает, как поступить с полученным потоком.

Вобсчем вопрос снят. Всем спасибо за ответы!
 
Ответить с цитированием
Старый 01.07.2010, 12:35   #7
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Вопрос по организации менеджера ресурсов

Люблю я таких людей. Сами задали вопрос - сами на него ответили
(c)DanFi
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 08.09.2010, 18:16   #8
cyberblut
Знающий
 
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений
(для 257 пользователей)
Ответ: Вопрос по организации менеджера ресурсов

У меня менеджер ресурсов более высокого уровня. Отдаёт не raw результат, а готовый объект TSprite/TSound/Tanimation etc. Потому потоки сам себе открывает и сам же закрывает, кроме случая когда из архива нужно прочитать что-то очень большое и распарсить по дороге. Но это квалифицируется не как загрузка ресурса, но как прямое чтение raw. В этом случае нужно сказать, что читать закончил. Но и тут подстраховка в виде таймаута доступа. Если ничего не делали в течение определённого количества итераций - автозакрытие.
(Offline)
 
Ответить с цитированием
Старый 08.09.2010, 23:45   #9
BlackOut
Кодер "win" ЭВМ
 
Аватар для BlackOut
 
Регистрация: 10.11.2009
Адрес: ЖуковSKY
Сообщений: 194
Написано 77 полезных сообщений
(для 155 пользователей)
Ответ: Вопрос по организации менеджера ресурсов

@cyberblut было бы интересно на него посмотреть, не так давно начал избавляться от "говнокода"
__________________
Жизнь игра, задумка дурацкая но графика ...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 17:54.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com