LINUX.ORG.RU

Опубликована библиотека CntmLib (C++)

 , ,


0

0

CntmLib предоставляет средства для:

  • управления временем жизни объектов с помощью подсчета ссылок;
  • синхронизации в многопоточных системах. Есть интеграция с библиотекой Qt3 в области синхронизации;
  • взаимодействия объектов через механизм событий/подписки на события. Реализованы синхронные и асинхронные события;
  • асинхронного выполнения методов объектов. Имеется возможность передавать произвольные аргументы и получать результат выполнения;
  • работы с потоками.
  • имеется довольно подробная документация.

>>> Описание

anonymous

Проверено: Shaman007 ()

Re: Опубликована библиотека CntmLib (C++)

> Есть интеграция с библиотекой QT3

Закапывайте обратно.

Sikon ★★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от Sikon

Re: Опубликована библиотека CntmLib (C++)

Ага, а кроме как с QT эту библеотеку юзать нельзя? Интеграция с куте3 фича опциональная. Надо будет - прикрутят для qt4.

И вообще, гик перелогнись.

mono ★★★★★ ()

Re: Опубликована библиотека CntmLib (C++)

это qt для бедных?

Voker57 ★★ ()

Re: Опубликована библиотека CntmLib (C++)

Не смотря на то, что я знаю что такое C++, Qt и вообще библиотеки, я так и не понял из анонса что это такое и зачем оно надо.

Casus ★★★★★ ()

Re: Опубликована библиотека CntmLib (C++)

Я не понял, а чем разработчикам сего велосипеда boost не понравился? Да и в Qt все эти механизмы давно есть...

anonymous ()

Re: Опубликована библиотека CntmLib (C++)

чем лучше boost'a?

anonymous ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от Casus

Re: Опубликована библиотека CntmLib (C++)

>Не смотря на то, что я знаю что такое C++, Qt и вообще библиотеки, я так и не понял из анонса что это такое и зачем оно надо.

+1. Ну и да, кого они хотят удивить с Qt3, я тоже не понял.

JackYF ★★★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от Voker57

Re: Опубликована библиотека CntmLib (C++)

>это qt для бедных?

Это очередной 2.5-колесный велосипед. Сидят вот люди, руки чешутся, дай, думают, нахерачу самую крутую библиотеку для всего на свете. Нахерачили, протестировали на паре usecase'ов - вроде работает. а потом шаг вправо, не работает, подопрем костылем, шаг влево, опять не работает, еще костыль, потом все перехерачили заново, что бы костыли убрать, так она до размеров ACE выросла, который компиляется дольше, чем ядро... Таких библиотек, как собак нерезаных, без знания их внутренностей использовать их в проекте себе дороже оказывается. Писать их дело, конечно, полезное, но для внутреннего использования и для саморазвития, но точно не для публикования, что бы поведать о себе миру. Будет в составе какого-нибудь продукта - можно оформить в виде отдельной библиотеки и выкладывать их вместе... А если сам не используешь, то и других не мучай...

anonymous ()

Re: Опубликована библиотека CntmLib (C++)

> Платформа ОС: GNU/Linux, в будущем, возможно, Windows

В топку!

anonymous ()

нафиг надо?

Разработчики лучше бы потратили свое время на улучшение boost
нафик очередной велосипед нагородил...
а из текста новости ваще почти нифика непонятно :)

Niki ()

Re: Опубликована библиотека CntmLib (C++)

Жесть, описание boost на английском проще читать, чем на русском описание этой либы...

Niki ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от Sikon

Re: Опубликована библиотека CntmLib (C++)

> Закапывайте обратно.

Чем не устраивает QT? Вы пробывали писать на GTK? Сколько времени без перерыва вы можете на этом писать? Я попробовал -- не пошло.

localstorm ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от localstorm

Re: Опубликована библиотека CntmLib (C++)

> Чем не устраивает QT? Вы пробывали писать на GTK? Сколько времени без перерыва вы можете на этом писать? Я попробовал -- не пошло.

Правильно писать "ниасилил"

anonymous ()

Re: Опубликована библиотека CntmLib (C++)

> Я не понял, а чем разработчикам сего велосипеда boost не понравился? Да и в Qt все эти механизмы давно есть...

> чем лучше boost'a?

1. Ничем boost'a не лучше, она его дополняет.

2. Отличия от boost'a:

- в boost'е есть механизмы умных указателей (smart_ptr), сигналов/слотов (signals), отложенных вызовов (function), синхронизации и потоков (thread). Однако эти механизмы слабо связаны друг с другом. В CntmLib эти механизмы работают вместе.

- Boost.Signal - не поддерживает многопоточность, Boost.Function - то поддерживает, то нет (http://lists.boost.org/Archives/boost/2007/03/117300.php). CntmLib - практически полностью многопоточная, по крайней мере все основные механизмы (для однопоточных приложений это недостаток, но библиотека и не особо расчитывалась на них).

3. Отличия от QT:

- QT не использует умные указатели (там есть GuardPtr, но они предохраняют, а не управляют);

- отложенные сигналы появились только в QT 4;

- QT расчитана на работу только с одним циклом обработки событий, который крутится в главном потоке. CntmLib позволяет создавать произвольное кол-во таких средств.

> +1. Ну и да, кого они хотят удивить с Qt3, я тоже не понял.

Мы никого не хотим удивить - просто сообщаем, что CntmLib может совместно использоваться с QT 3.

> Будет в составе какого-нибудь продукта - можно оформить в виде отдельной библиотеки и выкладывать их вместе...

Библиотека разрабатывалась прежде всего для себя, а не для кого-то. Поскольку библиотека использовалась исключительно в комерческих проектах, то выкладывать ее вмести с ними не представляется возможным.

Роман Овсеевич

anonymous ()

Re: Опубликована библиотека CntmLib (C++)

непонятно зачем это нужно, когда есть boost, в котором есть почти все, что тут реализовано, и сторонние проекты на базе буста, которые реализуют оставшуюся функциональность типа "активных объектов"

а учитывая С++0x, то вообще непонятно зачем это нужно

ott ★★★★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от anonymous

Re: Опубликована библиотека CntmLib (C++)

вот как раз и хорошо, что эти вещи достаточно слабо связаны друг с другом, иначе получаются монстры, которые умеют все, но которые реально трудно использовать

ott ★★★★★ ()

Re: Опубликована библиотека CntmLib (C++)

Это сборщег мусора для плюсофф?

anonymous ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от anonymous

Re: Опубликована библиотека CntmLib (C++)

>Это сборщег мусора для плюсофф?

В том числе и он тоже. Однако если нужен просто сборщик мусора, то Boost.SmartPtr подойдет больше.

anonymous ()

Re: Опубликована библиотека CntmLib (C++)

гавноподелка, ненужна

anonymous ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от anonymous

Re: Опубликована библиотека CntmLib (C++)

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

anonymous ()

Re: Опубликована библиотека CntmLib (C++)

90% отписавшихся плюсы знают на уровне полугода изучения в универе. 95% QT видели только пакеты в менеджере пакетов, 99,9% упоминают boost только потому, что знают о его существовании, но не знают его возможностей. Мало того, что тупизм сплошной, так еще и голословность. Читать комменты на ЛОРе - бред, больше этой ошибки не повторю...

anonymous ()

Re: Опубликована библиотека CntmLib (C++)

> После рассмотрения примеров их можно откомпилировать.

зачет!

Farcaller ★★ ()

Re: Опубликована библиотека CntmLib (C++)

> * управления временем жизни объектов с помощью подсчета ссылок;

Java-ссылка?

> * синхронизации в многопоточных системах.

synchronized{} ?

> * взаимодействия объектов через механизм событий/подписки на события. Реализованы синхронные и асинхронные события;

Interface?

* работы с потоками.

Java Tread?

Что только не придумают люди лишь бы не пользоваться Java...

DOKA ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от anonymous

Re: Опубликована библиотека CntmLib (C++)

Оп-па. :)

Спасибо за объяснение - это гораздо лучшие сведения, чем те, что в новости. Теперь мне стало хоть что-то понятно. Ну что ж, тогда удачи в развитии.

JackYF ★★★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от anonymous

Re: Опубликована библиотека CntmLib (C++)

детко, в бусте есть scoped_ptr, shared_ptr, intruisive_ptr, соотвесвенно scoped/shared_array, но никакого SmartPtr там нету.

anonymous ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от JackYF

Re: Опубликована библиотека CntmLib (C++)

> В Java нет typedef, поэтому Java-говно.

Приведи пример, когда без него нельзя жить.

> И ещё Java слишком многословна.

Ну да, x=++x++ рулит, коли любимый цвет глаз красный.

DOKA ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от anonymous

Re: Опубликована библиотека CntmLib (C++)

молодец, сходил по ссылке, не поленился, перечислил. Когда до тебя дойдет что Boost.SmartPtr - это название библиотеки работы с умными указателями - сам станешь таким же умным.

anonymous ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от DOKA

Re: Опубликована библиотека CntmLib (C++)

>>Приведи пример, когда без него нельзя жить.

Использование двух классов с одинаковыми именами, находящимися в разных пакетах от двух разных компаний.

alex_custov ★★★★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от alex_custov

Re: Опубликована библиотека CntmLib (C++)

> Использование двух классов с одинаковыми именами, находящимися в разных пакетах от двух разных компаний.

com.sun.MyClass com.myCompany.MyClass

чем так не устраивает?

DOKA ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от DOKA

Re: Опубликована библиотека CntmLib (C++)

>Что только не придумают люди лишь бы не пользоваться Java...

Если нужно очень активное взаимодействие с ОС, использование математических библиотек, работа с 3-х мерной графикой и.т.д., то без плюсов может не удастся обойтись. В таком случае лучше иметь хоть какие-то возможности Java, чем стреляться от чистого C++.

halyavin ()

Re: Опубликована библиотека CntmLib (C++)

"...В названии класса сказано, что это синхронное событие, это значит, что оно тесно связано с понятием синхропространства (ознакомтесь с документацие по классу Cntm::SynchroSpace). Каждый обработчик события выполняется внутри определенного синхропространства (которое указывается тем или иным способом при свзывании события с обработчиком), вход в которое произведен в реентерабельном режиме. Если событие сгенерировано в некотором синхропространстве, то гарантируется, что вход в это синхропространство из обработчиков события будет произведен только после выхода из него потока выполнения алгоритма, который сгенерировал событие, причем, не имеет значение, в каком синхропространстве выполняется обработчик (в этом-же или другом). Т.о. обеспечивается защита от реентерабельного входа в объект, сгенерировавший событие (т.к. вход невозможен во все синхропространство, к которому принадлежит объект). Это правило имеет исключение, когда поток выполнения алгоритма вошел в синхропространство в реентерабельном режиме и произвел реентерабельный вход в синхропространство. В этом случае обработчики могут произвести свой вход в синхропространство в момент реентерабельного входа. Т.о. ход выполнения алгоритма может быть нарушен, но только при жестко определенных условиях: режим входа в синхропространство - реентерабельный и выполнение реентерабельного входа в синхропространство. Еще раз подчеркнем, что обработчик выполняется не в том синхропространстве, в котором сгенерировано событие (оно м.б. сгенерировано и вне синхропространства), а в указанном при связывании."

это кусок из http://cntmlib.sourceforge.net/reference/classCntm_1_1DeferEvent.html

KISS

:(

filin ★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от DOKA

Re: Опубликована библиотека CntmLib (C++)

>>com.sun.MyClass com.myCompany.MyClass

>>чем так не устраивает?

Удлинни этот пример раза в три, чтобы не отрываться от реальности ;)

alex_custov ★★★★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от DOKA

Re: Опубликована библиотека CntmLib (C++)

А, да, чуть не забыл. Ещё и операторы нельзя перегружать :)

В Java есть несколько удачных решений, имхо, например, обязательная обработка исключений. Но при этом программить на ней я не хочу.

А, ещё. Вот смеху было, когда была функция типа

"void f(short param);"

дык "f(5)" компилятор не принимал, надо было "f((short)5)" писать :)

JackYF ★★★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от alex_custov

Re: Опубликована библиотека CntmLib (C++)

+1.

Дальше:

ну-ка, аналог мне, пожалуйста, вот этого:

---
typedef std::multimap< std::string, std::vector< std::pair<size_t, std::string> > > my_container_t;

typename my_container::iterator it;
typename my_container::const_iterator cit;
typename my_container::value_type find_object;
---

и вот этого:

---
for (size_t i = 0; i < n; ++i)
for (size_t j = 0; j < m; ++j)
{
const MyObject& obj_ref = values[i]->second[j].myObject;

f1(obj_ref);
f2(obj_ref);
obj_ref.setParam(2, i);
}
}
---
Заметь, во втором примере не происходит никакого копирования - это конструкция уровня компилятора.

JackYF ★★★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от filin

Re: Опубликована библиотека CntmLib (C++)

> "... синхропространства ... "

Это интересно, и может быть лучше явы, где только одно синхропространство.

> KISS

Вопрос надо по-другому ставить: как книжка называется, где об этом подробно пишут, с примерами?

_______________________________

Автору библиотеки:

надо было сразу сказать, чем это лучше явы, и сразу дать побольше незнакомых слов, а то тупицы будут и уже пишут "что только люди не придумают чтобы на яве не писать".

www_linux_org_ru ★★★★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от DOKA

Re: Опубликована библиотека CntmLib (C++)

>> * взаимодействия объектов через механизм событий/подписки на события. Реализованы синхронные и асинхронные события;

>Interface?

Ты и яву не знаешь. Там это называется ActionListener и в том же духе (java.awt.event.*).

www_linux_org_ru ★★★★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от DOKA

Re: Опубликована библиотека CntmLib (C++)

>> * управления временем жизни объектов с помощью подсчета ссылок;

> Java-ссылка?

Придуманная санками Панацея В Виде Автоматического Подсчета Ссылок оказалось совсем не панацеей... и санкам пришлось ввести weak reference. И теперь, если мне в моей специфичной проге нужен еще какой особый reference, что, бежать лиза^W просить санки ввести его в яву?

Нет, я лучше заюзаю какую-нить либу по типу CntmLib.

www_linux_org_ru ★★★★★ ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от DOKA

Re: Опубликована библиотека CntmLib (C++)

>> * управления временем жизни объектов с помощью подсчета ссылок;

>Java-ссылка?

Да, но сборщик мусора простой - не разрешает кольцевые ссылки объектов друг на друга, но зато и не тормозит.

>> * синхронизации в многопоточных системах

>synchronized{} ?

Не только. В яве каждый объект, использующий synchronized, имеет свой собственный мьютекс, что может приводить к взаимоблокировкам при взаимодействии объектов. CntmLib позволяет группе оъектов задать общий мьютекс, что облегчает борьбу с взаимоблокировками. Одновременно с синхронизацией решается задача диспетчерезации отложенных вызовов.

>> * взаимодействия объектов через механизм событий/подписки на события. Реализованы синхронные и асинхронные события;

> Interface?

Мне кажется, что в сишных библиотеках (QT, boost, libsig, CntmLib) сигналы/события более гибкие, чем в яве (по крайней мере, в качестве обработчика можно использовать произвольный метод с требуемой сигнатурой), да и дополнительные классы/интерфейсы не плодятся.

>>* работы с потоками.

>Java Tread?

Да, только для запуска потока не нужно ничего наследовать и вводить дополнительные поля, достаточно метода, реализующего поток. Пример: Thread(&Class1::ProcessUser)(firstName, lastName);

>Что только не придумают люди лишь бы не пользоваться Java...

Может я плохо искал, но, например, на платформе ARM джав не так уж и много, качество их неизвестно, и свободных среди них как-то нет. Опять же быстродействие.

>> KISS

> Вопрос надо по-другому ставить: как книжка называется, где об этом подробно пишут, с примерами?

Не знаю, не читал :). Вообще же синхронизация и события в CntmLib имеют близкое сходство с QT - QApplication, цикл обработки событий, сигналы/слоты.

> надо было сразу сказать, чем это лучше явы, и сразу дать побольше незнакомых слов...

Насчет незнакомых слов. Набрал в гугле "Синхропространство", выдал один результат, зато какой :)

СИНХРОПРОСТРАНСТВО: Я способен к выражению Знания. Возможно, существуют другие Познающие, которые хотели бы выразить свое Знание подобным образом.

Роман Овсеевич

anonymous ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от www_linux_org_ru

Re: Опубликована библиотека CntmLib (C++)

>>Interface?

> Ты и яву не знаешь. Там это называется ActionListener и в том же духе (java.awt.event.*).

Лол. ActionListener - это и есть интерфейс.

DOKA ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от halyavin

Re: Опубликована библиотека CntmLib (C++)

> Если нужно очень активное взаимодействие с ОС, использование математических библиотек, работа с 3-х мерной графикой и.т.д., то без плюсов может не удастся обойтись. В таком случае лучше иметь хоть какие-то возможности Java, чем стреляться от чистого C++.

Согласен. Просто я к тому, что есть множество повседневных задач, которые проще и удобнее решить в Java, но по инерции они пишутся на С++.

DOKA ()
Ответ на: Re: Опубликована библиотека CntmLib (C++) от DOKA

Re: Опубликована библиотека CntmLib (C++)

> Согласен. Просто я к тому, что есть множество повседневных задач, которые проще и удобнее решить в Java, но по инерции они пишутся на С++.

Ага... стали мы задачу в яве решать, решили, сделали первый релиз, а потом выяснилось, что для расширения нам нужны перегруженные операторы и нормальные шаблоны, БЕЗ type erasure.

www_linux_org_ru ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.