Ejemplo n.º 1
0
 int singlethreaded::execute(unsigned niter)
 {
   boost::mutex::scoped_lock l(iface_mtx);
   int j;
   j = execute_impl(niter);
   return j;
 }
Ejemplo n.º 2
0
    pointer operator()(U& operand) const
    {
        // MSVC6 finds normal implementation (above) ambiguous,
        // so we must explicitly disambiguate

        typedef typename mpl::or_<
        is_same<U, T>
        , is_same<const U, T>
        >::type U_is_T;

        return execute_impl(operand, U_is_T());
    }
Ejemplo n.º 3
0
 static bool execute(const TEvent& event, SM& sm, TDeps& deps, TSubs& subs, typename SM::state_t& current_state) {
   return execute_impl(event, sm, deps, subs, current_state);
 }
Ejemplo n.º 4
0
    bool group_proccessor::operator()() {

        boost::xtime xt;
        while (!terminated()) {
            try {
                if (init()) {
                    while (getmessage(message)) {
                        if (terminated()) break;
                        switch (strategy()) {
                            case STRATEGY_TYPE_REPORT:
                            {
                                if (message.mess == MSG_DVNCITAGREPORT) {
                                    if (message.some) {
                                        addtag(message.id);
                                    } else {
                                        removetag(message.id);
                                    }
                                }
                                break;
                            }
                            default:
                            {
                                if (selector->group_included(message.some)) {
                                    switch (message.mess) {
                                        case MSG_DVNCTAGDELFROMGR:
                                        case MSG_DVNCIREMREF:
                                        {
                                            removetag(message.id);
                                            break;
                                        }
                                        case MSG_DVNCTAGADDTOGR:
                                        case MSG_DVNCINEWREF:
                                        {
                                            addtag(message.id);
                                            break;
                                        }
                                        default:
                                        {
                                            if ((message.mess != MSG_DVNCIREMREF) && (message.mess != MSG_DVNCINEWREF))
                                                optinalchangeid(message.id);
                                        }
                                    }
                                } else {
                                    if ((message.mess != MSG_DVNCIREMREF) && (message.mess != MSG_DVNCINEWREF))
                                        optinalchangeid(message.id);
                                }
                                break;
                            }
                        }
                    }
                    execute_impl();
                    addmillisec_to_now(xt, 1);
                } else
                    addmillisec_to_now(xt, 1000);
                boost::thread::sleep(xt);
            }            catch (boost::system::system_error& boosterr) {
                if (intf) intf->debugerror("group_proccessor error what=" + std::string(boosterr.what()));
            }            catch (...) {
                if (intf) intf->debugerror("group_proccessor NODEF error ");
            }
        }
        uninit();
        return true;
    }