Beispiel #1
0
// on "init" you need to initialize your instance
bool PageTest::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    scheduleUpdate();
    
    percent = 0;
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();
    
    
    auto loadingBar = ui::LoadingBar::create("sliderProgress.png");
    loadingBar->setTag(0);
    loadingBar->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));
    loadingBar->setPercent(percent);
    this->addChild(loadingBar);
    
    
    
    
    auto checkBox = ui::CheckBox::create("check_box_normal.png", "check_box_normal_press.png", "check_box_active.png", "check_box_normal_disable.png", "check_box_active_disable.png");
    checkBox->setPosition(Vec2(visibleSize.width / 2.0f, visibleSize.height - 100));
    checkBox->addEventListener(CC_CALLBACK_2(PageTest::selectedEvent, this));
    this->addChild(checkBox);
    
    
    auto slider = ui::Slider::create();
    slider->loadBarTexture("sliderTrack.png");
    slider->loadSlidBallTextures("sliderThumb.png", "sliderThumb.png", "");
    slider->loadProgressBarTexture("sliderProgress.png");
    slider->setPosition(Vec2(visibleSize.width / 2.0f, visibleSize.height - 200));
    slider->addEventListener(CC_CALLBACK_2(PageTest::sliderEvent, this));
    this->addChild(slider);
    
    

    
    // auto recustom = ui::RichElementCustomNode::create(1, Color3B::WHITE, 255, pAr);
    // richText->pushBackElement(recustom);
    
    
    // androidだとバックグランドが緑がデフォ?
    // androidだと盤面全体が背景白になる
    // http://discuss.cocos2d-x.org/t/ui-pageview-bug-with-v3-rc1-green-background-on-android/12897
    //
    auto layout = ui::Layout::create();
    layout->setSize(Size(visibleSize.width, 200.0f));
    layout->setPosition(Vec2::ZERO);
    layout->setBackGroundColorType(ui::Layout::BackGroundColorType::SOLID);
    layout->setBackGroundColor(Color3B::BLUE);
    this->addChild(layout);
    
    auto pageView = ui::PageView::create();
    /*
    pageView->setBackGroundColorType(ui::Layout::BackGroundColorType::SOLID);
    pageView->setBackGroundColor(Color3B::RED);
    */
    pageView->setSize(Size(visibleSize.width, 130.0f));
    pageView->setPosition(Vec2::ZERO);
    pageView->setContentSize(Size(visibleSize.width, 130.0f));
    
    for (int i = 0; i < 3; ++i) {
        auto layout = ui::Layout::create();
        layout->setBackGroundImage("");
        layout->setBackGroundColor(Color3B::YELLOW);
        layout->setBackGroundColorType(ui::Layout::BackGroundColorType::SOLID);
        layout->setSize(Size(240.0f, 130.0f));
        // layout->addTouchEventListener(<#ccWidgetTouchCallback callback#>)

        
        auto imageView = ui::ImageView::create("HelloWorld.png");
        imageView->setScale9Enabled(true);
        imageView->setSize(Size(240, 130));
        imageView->setPosition(Vec2(layout->getSize().width / 2.0f, layout->getSize().height / 2.0f));
        layout->addChild(imageView);
        
        auto label = ui::Text::create(StringUtils::format("page %d",(i+1)), "Arial", 30);
        label->setColor(Color3B(192, 192, 192));
        label->setPosition(Vec2(layout->getSize().width / 2.0f, layout->getSize().height / 2.0f));
        layout->addChild(label);
        
        auto btn = ui::Button::create("");
        btn->setTitleText("");
        btn->setTitleFontSize(12);
        btn->setTitleFontName("");

        
        
        pageView->addPage(layout);
    }
    // pageView->scrollToPage(2);  // うまくいかない。handleReleaseLogicのboundaryのためだと思われる
    pageView->addEventListener(CC_CALLBACK_2(PageTest::pageViewEvent, this));
    
    
    layout->addChild(pageView);
    
    
    auto richText = ui::RichText::create();
    richText->ignoreContentAdaptWithSize(false);
    richText->setSize(Size(100, 100));
    richText->setPosition(Vec2(visibleSize.width / 2.0f, visibleSize.height - 300));
    this->addChild(richText);
    
    auto re1 = ui::RichElementText::create(1, Color3B::WHITE, 255, "This color is white. ", "Arial", 10);
    richText->pushBackElement(re1);
    
    auto re2 = ui::RichElementText::create(2, Color3B::YELLOW, 255, "This color is yellow. ", "Arial", 24);
    richText->insertElement(re2, 1);
    
    auto reimg = ui::RichElementImage::create(6, Color3B::WHITE, 255, "sliderballnormal.png");
    richText->pushBackElement(reimg);

    
    return true;
}
Beispiel #2
0
int Message_recv(XPlat_Socket sock_fd, vector_t* packets_in, Rank iinlet_rank)
{
    int retval;
    unsigned int i;
    uint32_t num_packets = 0;
    uint32_t num_buffers = 0;
    PDR pdrs;
    enum pdr_op op = PDR_DECODE;
    size_t psz, recv_total, total_bytes = 0;
    uint64_t buf_len = 0;
    ssize_t readRet;
    XPlat_NCBuf_t* ncbufs;
    Packet_t* new_packet;
    uint64_t *packet_sizes;
    char *buf = NULL;
    
    mrn_dbg_func_begin();
 
    mrn_dbg(5, mrn_printf(FLF, stderr, "sock_fd = %d\n", sock_fd));

    //
    // packet count
    //

    mrn_dbg(5, mrn_printf(FLF, stderr, "Calling sizeof ...\n"));
    pdr_sizeof((pdrproc_t)(pdr_uint32), &num_packets, &buf_len);
    assert(buf_len);
    buf = (char*) malloc(buf_len + 1);
    assert(buf);

    mrn_dbg(3, mrn_printf(FLF, stderr, "Reading packet count\n"));

    readRet = MRN_recv(sock_fd, buf, buf_len + 1);
    if( readRet != (ssize_t)buf_len + 1) {
        mrn_dbg(3, mrn_printf(FLF, stderr, "MRN_recv() of packet count failed\n"));
        free(buf);
        return -1;
    }
    
    mrn_dbg(5, mrn_printf(FLF, stderr, "Calling memcreate ...\n"));
    pdrmem_create(&pdrs, &(buf[1]), buf_len, op, (pdr_byteorder) buf[0]);
    mrn_dbg(5, mrn_printf(FLF, stderr, "Calling uint32 ...\n"));
    if( ! pdr_uint32(&pdrs, &num_packets) ) {
        error(ERR_PACKING, iinlet_rank, "pdr_uint32() failed\n");
        free(buf);
        return -1;
    } 
    free(buf);
    mrn_dbg(3, mrn_printf(FLF, stderr, "Will receive %u packets\n", num_packets));

    if( num_packets > 10000 )
        mrn_dbg(1, mrn_printf(FLF, stderr, "WARNING: Receiving more than 10000 packets\n"));
    if( num_packets == 0 )
        mrn_dbg(1, mrn_printf(FLF, stderr, "WARNING: Receiving zero packets\n"));

    num_buffers = num_packets * 2;

    //
    // packet size vector
    //
    
    //buf_len's value is hardcode, breaking pdr encapsulation barrier
    buf_len = (sizeof(uint64_t) * num_buffers) + 1; // 1 byte pdr overhead

    //mrn_dbg(5, mrn_printf(FLF, stderr, "Calling malloc(%u) ...\n", buf_len));
    buf = (char*) malloc( buf_len );
    if( buf == NULL ) {
        mrn_dbg(1, mrn_printf(FLF, stderr,
                              "malloc failed for buf\n"));
        return -1;
    }

    //mrn_dbg(5, mrn_printf(FLF, stderr, "Calling malloc ...\n"));
    packet_sizes = (uint64_t*) malloc( sizeof(uint64_t) * (size_t)num_buffers );
    if( packet_sizes == NULL ) {
        mrn_dbg(1, mrn_printf(FLF, stderr,
                              "malloc failed for packet_sizes\n"));
        return -1;
    }

    mrn_dbg(5, mrn_printf(FLF, stderr, 
                          "Calling read(%p, %"PRIu64") for %d buffer lengths.\n",
                          buf, buf_len, num_buffers));
    readRet = MRN_recv(sock_fd, buf, (size_t)buf_len);
    if( readRet != (ssize_t)buf_len ) {
        mrn_dbg(3, mrn_printf(FLF, stderr, "MRN_recv() %"PRIsszt" of %"PRIsszt" bytes received\n", readRet, buf_len));
        free(buf);
        //free(packet_sizes);
        return -1;
    }

    pdrmem_create(&pdrs, buf, buf_len, op, pdrmem_getbo());
    if( ! pdr_vector(&pdrs, (char*)packet_sizes, num_buffers,
                     (uint64_t) sizeof(uint64_t), (pdrproc_t)pdr_uint64) ) {
        mrn_dbg(1, mrn_printf(FLF, stderr, "pdr_vector() failed\n"));
        error(ERR_PACKING, iinlet_rank, "pdr_uint32() failed\n");
        free(buf);
        free(packet_sizes);
        return -1;
    }
    free(buf);

    //
    // packets
    //
    
    /* recv packet buffers */
    ncbufs = (XPlat_NCBuf_t*) malloc( sizeof(XPlat_NCBuf_t) * (size_t)num_buffers );
    assert(ncbufs);

    mrn_dbg(5, mrn_printf(FLF, stderr, "Reading %u packets:\n", num_packets));

    for( i = 0; i < num_buffers; i++ ) {
        psz = (size_t) packet_sizes[i];
        ncbufs[i].buf = (char*) malloc(psz);
        assert(ncbufs[i].buf);
        ncbufs[i].len = psz;
        total_bytes += psz;
        mrn_dbg(5, mrn_printf(FLF, stderr, "- buffer[%u] has size %"PRIsszt"\n", 
                              i, psz));
    }

    mrn_dbg(5, mrn_printf(FLF, stderr, 
                          "Reading num_buffers=%d\n", num_buffers));
    recv_total = 0;
    for(i = 0; i < num_buffers; i++ ) {
        readRet = MRN_recv( sock_fd, ncbufs[i].buf, ncbufs[i].len );
        if( readRet < 0 ) {
            mrn_dbg(1, mrn_printf(FLF, stderr, 
                                  "MRN_recv() failed for packet %u\n", i));
            break;
        }
        recv_total += (int) readRet;
    }
    if( recv_total != total_bytes ) {
        mrn_dbg(1, mrn_printf(FLF, stderr,
                              "%"PRIsszt" of %"PRIsszt" received\n", 
                              recv_total, total_bytes));

        for( i = 0; i < num_buffers; i++ )
            free((void*)(ncbufs[i].buf));
        free(ncbufs);
        free(packet_sizes);
        return -1;

    }

    //
    // post-processing
    //

    retval = 0;
    mrn_dbg(3, mrn_printf(FLF, stderr, "Creating Packets ...\n"));
    for( i = 0; i < num_buffers; i += 2 ) {
        mrn_dbg(5, mrn_printf(FLF, stderr, "creating packet[%d]\n",i));

        new_packet = new_Packet_t_3( ncbufs[i].len, ncbufs[i].buf, 
                                     ncbufs[i+1].len, ncbufs[i+1].buf, 
                                     iinlet_rank );
        if( new_packet == NULL ) {
            mrn_dbg(1, mrn_printf(FLF, stderr, "packet creation failed\n"));
            retval = -1;
            break;
        }   

        pushBackElement(packets_in, new_packet);
    }

    // release dynamically allocated memory

    // Note: on success return, don't release the packet buffers; 
    //       that memory was passed to the Packet object(s).
    if( retval == -1 ) {
        for (i = 0; i < num_buffers; i++) {
            char * b = ncbufs[i].buf;
            free(b);
        }
    }
    free( ncbufs );
    free( packet_sizes );

    mrn_dbg_func_end();
    return retval;
}