int QXmppMucRoom::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { if (_id < 32) qt_static_metacall(this, _c, _id, _a); _id -= 32; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< QXmppMucRoom::Actions*>(_v) = allowedActions(); break; case 1: *reinterpret_cast< bool*>(_v) = isJoined(); break; case 2: *reinterpret_cast< QString*>(_v) = jid(); break; case 3: *reinterpret_cast< QString*>(_v) = name(); break; case 4: *reinterpret_cast< QString*>(_v) = nickName(); break; case 5: *reinterpret_cast< QStringList*>(_v) = participants(); break; case 6: *reinterpret_cast< QString*>(_v) = password(); break; case 7: *reinterpret_cast< QString*>(_v) = subject(); break; } _id -= 8; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 4: setNickName(*reinterpret_cast< QString*>(_v)); break; case 6: setPassword(*reinterpret_cast< QString*>(_v)); break; case 7: setSubject(*reinterpret_cast< QString*>(_v)); break; } _id -= 8; } else if (_c == QMetaObject::ResetProperty) { _id -= 8; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 8; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 8; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 8; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 8; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 8; } #endif // QT_NO_PROPERTIES return _id; }
int ACE_TMAIN(int argc, ACE_TCHAR *argv[]) { bool ok = true; bool generated_config = false; try { //Look to see if the config file (.ini) was generated //for rtps participant processing for(int i = 0; i < argc; ++i) { if(ACE_OS::strstr(argv[i], ACE_TEXT("generated"))) { generated_config = true; } } // Initialize DomainParticipantFactory DDS::DomainParticipantFactory_var dpf = TheParticipantFactoryWithArgs(argc, argv); // handle test performance issue on one platform #if defined (sun) const char* udpTransName = "udp"; OpenDDS::DCPS::TransportInst_rch inst = OpenDDS::DCPS::TransportRegistry::instance()->get_inst(udpTransName); if (inst != 0) { OpenDDS::DCPS::UdpInst_rch udp_inst = OpenDDS::DCPS::dynamic_rchandle_cast<OpenDDS::DCPS::UdpInst>(inst); if (udp_inst == 0) { ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l main()") ACE_TEXT(" ERROR: retrieving transport config for: %C failed!\n"), udpTransName), -1); } udp_inst->rcv_buffer_size_ = 0x40000; } #endif const Options options(argc, argv); // Create DomainParticipant typedef std::vector<DDS::DomainParticipant_var> Participants; Participants participants(options.num_sub_participants); // Register Type (Messenger::Message) Messenger::MessageTypeSupport_var ts = new Messenger::MessageTypeSupportImpl(); CORBA::String_var type_name = ts->get_type_name(); typedef std::vector<DataReaderListenerImpl*> ListenerServants; ListenerServants listener_servants; std::vector<DDS::DataReaderListener_var> listeners; std::stringstream ss; ss << std::setw(5) << ACE_OS::getpid(); const std::string pid = ss.str(); ACE_DEBUG((LM_DEBUG, ACE_TEXT("%T (%P|%t) Created dpf\n"))); unsigned int part_index = 0; for (Participants::iterator part = participants.begin(); part != participants.end(); ++part, ++part_index) { ACE_DEBUG((LM_DEBUG, ACE_TEXT("%T (%P|%t) Creating participant\n"))); *part = dpf->create_participant(411, PARTICIPANT_QOS_DEFAULT, DDS::DomainParticipantListener::_nil(), OpenDDS::DCPS::DEFAULT_STATUS_MASK); if (CORBA::is_nil(part->in())) { ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l main()") ACE_TEXT(" ERROR: create_participant() failed!\n")), -1); } if (generated_config) { std::stringstream domain_config_stream; std::string config_name = "domain_part_"; domain_config_stream << config_name << part_index; std::string config; config = domain_config_stream.str(); TheTransportRegistry->bind_config(config, *part); } if (ts->register_type(part->in(), "") != DDS::RETCODE_OK) { ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l main()") ACE_TEXT(" ERROR: register_type() failed!\n")), -1); } // Create Topic (Movie Discussion List) DDS::Topic_var topic = (*part)->create_topic("Movie Discussion List", type_name.in(), TOPIC_QOS_DEFAULT, DDS::TopicListener::_nil(), OpenDDS::DCPS::DEFAULT_STATUS_MASK); if (CORBA::is_nil(topic.in())) { ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l main()") ACE_TEXT(" ERROR: create_topic() failed!\n")), -1); } // Create Subscriber DDS::Subscriber_var sub = (*part)->create_subscriber(SUBSCRIBER_QOS_DEFAULT, DDS::SubscriberListener::_nil(), OpenDDS::DCPS::DEFAULT_STATUS_MASK); if (CORBA::is_nil(sub.in())) { ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l main()") ACE_TEXT(" ERROR: create_subscriber() failed!\n")), -1); } DDS::DataReaderQos qos; sub->get_default_datareader_qos(qos); qos.liveliness.kind = DDS::AUTOMATIC_LIVELINESS_QOS; qos.liveliness.lease_duration.sec = 10; qos.liveliness.lease_duration.nanosec = 0; qos.history.kind = DDS::KEEP_ALL_HISTORY_QOS; if (options.reliable) { qos.reliability.kind = DDS::RELIABLE_RELIABILITY_QOS; } for (unsigned int reader = 0; reader < options.num_readers; ++reader) { ACE_DEBUG((LM_DEBUG, ACE_TEXT("%T (%P|%t) Creating reader\n"))); // Create DataReader listener_servants.push_back(new DataReaderListenerImpl(options, pid, part_index, reader)); listeners.push_back(DDS::DataReaderListener_var(listener_servants.back())); DDS::DataReader_var data_reader = sub->create_datareader(topic.in(), qos, listeners.back().in(), OpenDDS::DCPS::DEFAULT_STATUS_MASK); if (CORBA::is_nil(data_reader.in())) { ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l main()") ACE_TEXT(" ERROR: create_datareader() failed!\n")), -1); } } } const unsigned int sleep_delay_msec = 500; unsigned int delay = 0; while (delay < options.total_duration_msec) { bool complete = true; for (ListenerServants::const_iterator listener = listener_servants.begin(); listener != listener_servants.end(); ++listener) { if (!(*listener)->done()) { complete = false; } } if (complete) break; delay += sleep_delay_msec; ACE_OS::sleep(ACE_Time_Value(0, sleep_delay_msec * 1000)); } ACE_DEBUG((LM_DEBUG, ACE_TEXT("%T (%P|%t) Listeners done (ran for %d msec)\n"), delay)); if (delay >= options.total_duration_msec) { for (ListenerServants::const_iterator listener = listener_servants.begin(); listener != listener_servants.end(); ++listener) { (*listener)->report_errors(); } if (options.reliable) { ok = false; } } // Clean-up! for (Participants::iterator part = participants.begin(); part != participants.end(); ++part) { (*part)->delete_contained_entities(); dpf->delete_participant(*part); } TheServiceParticipant->shutdown(); ACE_Thread_Manager::instance()->wait(); } catch (const CORBA::Exception& e) { e._tao_print_exception("Exception caught in main():"); return -1; } catch (const OpenDDS::DCPS::Transport::Exception& e) { ACE_DEBUG((LM_ERROR, "Transport exception caught in subscriber main\n")); return -1; } ACE_DEBUG((LM_DEBUG, ACE_TEXT("%T (%P|%t) Subscriber exiting\n"))); return ok ? EXIT_SUCCESS : EXIT_FAILURE; }