コード例 #1
0
void MyModuleInit(RTC::Manager* manager)
{
    RGB2GrayInit(manager);
    RTC::RtcBase* comp;

    // Create a component
    comp = manager->createComponent("RGB2Gray");


    // Example
    // The following procedure is examples how handle RT-Components.
    // These should not be in this function.

    // Get the component's object reference
    RTC::RTObject_var rtobj;
    rtobj = RTC::RTObject::_narrow(manager->getPOA()->servant_to_reference(comp));

    // Get the port list of the component
    PortServiceList* portlist;
    portlist = rtobj->get_ports();

    // getting port profiles
    std::cout << "Number of Ports: ";
    std::cout << portlist->length() << std::endl << std::endl;
    for (CORBA::ULong i(0), n(portlist->length()); i < n; ++i)
    {
        PortService_ptr port;
        port = (*portlist)[i];
        std::cout << "Port" << i << " (name): ";
        std::cout << port->get_port_profile()->name << std::endl;

        RTC::PortInterfaceProfileList iflist;
        iflist = port->get_port_profile()->interfaces;
        std::cout << "---interfaces---" << std::endl;
        for (CORBA::ULong i(0), n(iflist.length()); i < n; ++i)
        {
            std::cout << "I/F name: ";
            std::cout << iflist[i].instance_name << std::endl;
            std::cout << "I/F type: ";
            std::cout << iflist[i].type_name << std::endl;
            const char* pol;
            pol = iflist[i].polarity == 0 ? "PROVIDED" : "REQUIRED";
            std::cout << "Polarity: " << pol << std::endl;
        }
        std::cout << "---properties---" << std::endl;
        NVUtil::dump(port->get_port_profile()->properties);
        std::cout << "----------------" << std::endl << std::endl;
    }

    return;
}