UniSet  2.2.1
Открытые типы | Открытые члены | Защищенные члены
Шаблон класса OmniThreadCreator< ThreadMaster >

#include <OmniThreadCreator.h>

Полный список членов класса

Открытые типы

typedef void(ThreadMaster::* Action )()

Открытые члены

 OmniThreadCreator (const std::shared_ptr< ThreadMaster > &m, Action a, bool undetached=false)
bool isRunning ()
void stop ()
pid_t getTID ()
void join ()

Защищенные члены

void * run_undetached (void *x)
virtual void run (void *arg)

Подробное описание

template<class ThreadMaster>
class OmniThreadCreator< ThreadMaster >

Шаблон для создания потоков с указанием функции вызова. Пример использования:
        class MyClass
        {
            public:
                MyClass();
                ~MyClass();

                execute();

            protected:
                void thread();

            private:
                OmniThreadCreator<MyClass>* thr;
        };

        MyClass::MyClass()
        {
            thr = new OmniThreadCreator<MyClass>(this, &MyClass::thread);
        }
        MyClass::~MyClass()
        {
            delete thr;
        }

        void MyClass::thread()
        {
            while(active)
            {
                //что-то делать
            }
        }

        void MyClass::execute()
        {
            // создаем поток
            thr->start();

            // делаем что-то еще
        }

        main()
        {
            MyClass* mc = new MyClass();
            mc->execute();

            // или так
            OmniThreadCreator<MyClass>*  th = new OmniThreadCreator<TestClass>(&mc, &MyClass::thread);
            th->start();
            // делаем что-то еще
        }

Определения типов

template<class ThreadMaster>
typedef void(ThreadMaster::* OmniThreadCreator< ThreadMaster >::Action)()

прототип функции вызова


Объявления и описания членов класса находятся в файле: