Архив: Технология создания плагинов

Здесь обсуждаются технические аспекты создания дополнений.
KGB
Сообщения: 659
Зарегистрирован: 08:54, 13.07.2010
Откуда: Чебоксары, Россия
Контактная информация:

Re: Технология создания плагинов

Сообщение KGB »

Artur писал(а):Очень не хватает события как наложение/снятие ограничения(серверному плагину) :( . Сравнивать весь список довольно громоздко... Есть ли в планах добавление такой функции? :roll:
Эти функции и так есть. ID 1040, 1041.
Artur
Сообщения: 23
Зарегистрирован: 15:26, 06.10.2010
Контактная информация:

Re: Технология создания плагинов

Сообщение Artur »

KGB писал(а): Эти функции и так есть. ID 1040, 1041.
Извини, сформулировал не правильно...

Это наложить и снять ограничение из инициирования событий... а охота прием таких событий как "X наложил ограничение на Y", ну такого типа...
Maxim Mirgorodsky
Администратор
Сообщения: 6871
Зарегистрирован: 09:56, 27.06.2005

Re: Технология создания плагинов

Сообщение Maxim Mirgorodsky »

@serg@ писал(а):Максим, хотел бы уточнить насчёт CommFortProcess ID 51 (Отправить изображение в общий канал). Возникло подозрение, что у вас есть небольшая утечка памяти на ней. Сначала думал, что утечка была у меня, но после долгих мучений закомментировал функцию передачи этого изображения (CommFortProcess), оставив всю остальную обработку данных и потеря пропала. Даже если учесть, что изображение в клиенте тоже занимает память, то каждое обходится более мегобайта
И параллельно несколько вопросов:
1) какой максимальный размер (в байтах) изображения, которые может принь клиент?
2) какой максимальный размер для текстовых сообщений?
3) нет-ли ошибки в "число(формат изображения)" для данного ID, оно осталось как было в 4 и 3 версии?
Спасибо за информацию, проверим.

1) Не ограничено (ограничено только ресурсами клиента).
2) Указывается на сервере в настройках производительности.
3) ID такой же как и в предыдущих версиях.
Maxim Mirgorodsky
Администратор
Сообщения: 6871
Зарегистрирован: 09:56, 27.06.2005

Re: Технология создания плагинов

Сообщение Maxim Mirgorodsky »

Artur писал(а):Извини, сформулировал не правильно...

Это наложить и снять ограничение из инициирования событий... а охота прием таких событий как "X наложил ограничение на Y", ну такого типа...
Сделаем.
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

Maxim Mirgorodsky писал(а):
Спасибо за информацию, проверим.

1) Не ограничено (ограничено только ресурсами клиента).
2) Указывается на сервере в настройках производительности.
3) ID такой же как и в предыдущих версиях.
1) это выходит я могу отправить изображение весом и в 5 и в 20 мегабайт?
2) что-то вылетел из головы этот параметр.

P.s. Отпишитесь, когда проверите про возможною утечку памяти.
Аватара пользователя
SV
Сообщения: 797
Зарегистрирован: 00:11, 06.09.2010
Откуда: Киров

Re: Технология создания плагинов

Сообщение SV »

Подскажите как плагином можно обновить канал,суть такова мой плеер находиться в окне канала при нажатии кнопки он увеличиваеться в размере соответственно он закрывает сообщения,если его развернуть чуть побольше.Я пишу в Delphi.
Maxim Mirgorodsky
Администратор
Сообщения: 6871
Зарегистрирован: 09:56, 27.06.2005

Re: Технология создания плагинов

Сообщение Maxim Mirgorodsky »

@serg@ писал(а):1) это выходит я могу отправить изображение весом и в 5 и в 20 мегабайт?
2) что-то вылетел из головы этот параметр.

P.s. Отпишитесь, когда проверите про возможною утечку памяти.
1) Да. Масштабирование будет лежать на плечах клиента, так что в случае перегрузок проблемы будут на клиентской стороне. В следующей версии будет возможность публикации изображений серверными плагинами, и в той ситуации считать нагрузку от масштабирования будет очень важно.

> P.s. Отпишитесь, когда проверите про возможною утечку памяти.

Действительно обнаружилась утечка памяти в коде масштабирования изображения (т.е. проявляется при публикации больших изображений). Спасибо за информацию, разумеется исправим в кратчайшие сроки.
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

Maxim, если выходит ограничений на размер нет то это сильная дыра, к примеру я могу картинку превратить в 10-50 метровую версию и начать публиковать в общаке, тогда получится я смогу наглухо забить канал как сервера, так и некоторым клиентам, не правильней проводить масштабирование до отправки на сервер?
KGB
Сообщения: 659
Зарегистрирован: 08:54, 13.07.2010
Откуда: Чебоксары, Россия
Контактная информация:

Re: Технология создания плагинов

Сообщение KGB »

@serg@ писал(а):Maxim, если выходит ограничений на размер нет то это сильная дыра, к примеру я могу картинку превратить в 10-50 метровую версию и начать публиковать в общаке, тогда получится я смогу наглухо забить канал как сервера, так и некоторым клиентам, не правильней проводить масштабирование до отправки на сервер?
Масштабирование как раз производится клиентом до отправки на сервер, насколько я знаю
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

тогда извиняюсь, немного неправильно интерпретировал фразу :oops: , сбила с панталыки система бота публикатора картинок, где картинка сначала сжималась одной программой, а потом ботом публиковалась сжатая версия.
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

А нельзя ли добавить в систему плагинов новое событие, позволяющее очистить окно сообщений чата для конкретного канала, а то чтоб много памяти не хавал приходится отключать отображение картинок, а таковое бывает нужно только на конкретном канале.
Аватара пользователя
supermet
Сообщения: 245
Зарегистрирован: 02:35, 19.07.2009

Re: Технология создания плагинов

Сообщение supermet »

Yaroslav писал(а):Какую IDE брать, чтобы гарантировано подошли примеры?
CodeGear C++ Builder 2007 Enterprise Edition подойдёт?
Есть ли свободные IDE для разработки на cpp builder?
В 2007 CodeGear «воскресила» марку «Turbo» и выпустилаTurbo C++ Explorer (бесплатный)
Компиляторы от Borland'а (CodeGear), плохо оптимизируют генерируемый код, builder не способен создавать 64х битные приложения и плохо поддерживает стандарты.
Я советую бесплатные Microsoft Visual C++ Express Edition, Eclipse с плагином CDT, Netbeans и Code::Blocks 10.05.
Чтобы подошли примеры, нужно заменить UnicodeString на std::wstring, AnsiString на std::string.
В реализации процедур PluginStart, PluginStop, PluginProcess, PluginGetData, PluginShowOptions, PluginShowAbout нужно добавить перед их именем слово "__stdcall" и подключить к проекту def файл с именами функций.
Эти функции тоже могут понадобиться для преобразования строк:

Код: Выделить всё

std::wstring strtows(const std::string str, UINT codePage)
{
	std::wstring ws;
	int n = MultiByteToWideChar(codePage, 0, str.c_str(), str.size()+1, /*dst*/NULL, 0);
	if(n)
	{
		ws.resize(n-1);
		if(MultiByteToWideChar(codePage, 0, str.c_str(), str.size()+1, /*dst*/&ws[0], n) == 0)
			ws.clear();
	}
	return ws;
}
std::string wstostr(const std::wstring ws, UINT codePage)
{
	std::string str;
	int n = WideCharToMultiByte(codePage, 0, ws.c_str(), ws.size()+1, /*dst*/NULL, 0, /*defchr*/0, NULL);
	if(n)
	{
		str.resize(n-1);
		if(WideCharToMultiByte(codePage, 0, ws.c_str(), ws.size()+1, /*dst*/&str[0], n, /*defchr*/0, NULL) == 0)
			str.clear();
	}
	return str;
}
std::string chcp(const std::string str, UINT codePageSrc, UINT codePageDst)
{
	return wstostr(strtows(str, codePageSrc), codePageDst);
}
//  Пример
//std::string strAcpSrc = "";
//std::string strUtf = chcp(strAcpSrc, CP_ACP, CP_UTF8);
//std::string strAcp = chcp(strUtf, CP_UTF8, CP_ACP);
//std::cout << ((strAcpSrc == strAcp) ? "success" : "error");
//std::cin.get();
livemen
Сообщения: 13
Зарегистрирован: 11:18, 27.10.2010

Re: Технология создания плагинов

Сообщение livemen »

а спомощью какой программы и как делать плагины дайте ссылку на урок чтоли
Гомельский чат - Ultimatum.local
Artur
Сообщения: 23
Зарегистрирован: 15:26, 06.10.2010
Контактная информация:

Re: Технология создания плагинов

Сообщение Artur »

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

Пишутся плагины на Delphi/C++... Для начала советую почитать учебники, текстовые уроки, мб даже видео уроки найдешь, по этим языкам программирования...
Maxim Mirgorodsky
Администратор
Сообщения: 6871
Зарегистрирован: 09:56, 27.06.2005

Re: Технология создания плагинов

Сообщение Maxim Mirgorodsky »

Некоторые пожелания которые мы обещали на новую версию в 5.03 не были реализованы, но это не значит что от них отказались. 5.03 - это промежуточная версия, развитие системы плагинов продолжится и далее.
@serg@ писал(а):А нельзя ли добавить в систему плагинов новое событие, позволяющее очистить окно сообщений чата для конкретного канала, а то чтоб много памяти не хавал приходится отключать отображение картинок, а таковое бывает нужно только на конкретном канале.
Возможно реализуем.
Закрыто