Beispiel #1
0
void ThirdServerScene::myInit() {
    
    CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("bgm_server.mp3",true);
    
    cacheServerId = CCUserDefault::sharedUserDefault()->getIntegerForKey("serverId",-1);
    
    loginTrigger = LoginTrigger::create(this);
    loginTrigger->retain();
    MyMessageManage::getInstance()->registerTrigger(loginTrigger);
    
    CCLayer* backLayer = CCLayer::create();
    CCSprite* background = CCSprite::create("loading.jpg");
    //    background->setScale(winSize.height/background->getContentSize().height);
    background->setAnchorPoint(ccp(0.5,0));
    background->setPositionX(winSize.width/2);
    backLayer->addChild(background);
    CCSprite* logo = CCSprite::create("logo.png");
    logo->setPosition(ccp(winSize.width-190,winSize.height-120));
    backLayer->addChild(logo,2);
    
    
    CCSprite* shadow = CCSprite::createWithSpriteFrameName("serverShadow.png");
    shadow->setScale((winSize.height+10)/shadow->getContentSize().height);
    shadow->setPosition(ccp(winSize.width-138,winSize.height/2));
    backLayer->addChild(shadow);
    
    CCSprite* listLabel = CCSprite::createWithSpriteFrameName("serverListLabel.png");
    listLabel->setAnchorPoint(ccp(0,1));
    listLabel->setPosition(ccp(winSize.width-270,100));
    backLayer->addChild(listLabel,1);
    
    
    if (beans->count() == 0) {
        this->addChild(MyUtil::getInstance()->getServerTipDialog("连接服务器失败,\n请检测网络!",this,menu_selector(ServerScene::exitGame)),5);
        return;
    }
    
    SeverInfoBean* bean = NULL;
    CCObject* obj;
    CCARRAY_FOREACH(beans,obj) {
        if (cacheServerId == ((SeverInfoBean*)obj)->serverId) {
            bean = (SeverInfoBean*)obj;
            break;
        }
    }
    if (bean == NULL) {
        bean =(SeverInfoBean*) beans->objectAtIndex(beans->count()-1);
    }
    
    initServerInfo(bean);
    
    this->addChild(backLayer);
    
    
}
Beispiel #2
0
int
initAgent( int processType, rsComm_t *rsComm ) {
    int status;
    rsComm_t myComm;
    ruleExecInfo_t rei;

    initProcLog();

    status = initServerInfo( rsComm );
    if ( status < 0 ) {
        rodsLog( LOG_ERROR,
                 "initAgent: initServerInfo error, status = %d",
                 status );
        return status;
    }

    initL1desc();
    initSpecCollDesc();
    status = initFileDesc();
    if ( status < 0 ) {
        rodsLog( LOG_ERROR,
                 "initAgent: initFileDesc error, status = %d",
                 status );
        return status;
    }
#ifdef TAR_STRUCT_FILE
//    initStructFileDesc ();
//    initTarSubFileDesc ();
#endif
    status = initRuleEngine( processType, rsComm, reRuleStr, reVariableMapStr, reFuncMapStr );
    if ( status < 0 ) {
        rodsLog( LOG_ERROR,
                 "initAgent: initRuleEngine error, status = %d", status );
        return status;
    }

    memset( &rei, 0, sizeof( rei ) );
    rei.rsComm = rsComm;

    if ( ProcessType == AGENT_PT ) {
        status = applyRule( "acChkHostAccessControl", NULL, &rei,
                            NO_SAVE_REI );

        if ( status < 0 ) {
            rodsLog( LOG_ERROR,
                     "initAgent: acChkHostAccessControl error, status = %d",
                     status );
            return status;
        }
    }

    /* Initialize the global quota */

    GlobalQuotaLimit = RESC_QUOTA_UNINIT;
    GlobalQuotaOverrun = 0;
    RescQuotaPolicy = RESC_QUOTA_UNINIT;

#ifndef windows_platform
    if ( rsComm->reconnFlag == RECONN_TIMEOUT ) {
        rsComm->reconnSock = svrSockOpenForInConn( rsComm, &rsComm->reconnPort,
                             &rsComm->reconnAddr, SOCK_STREAM );
        if ( rsComm->reconnSock < 0 ) {
            rsComm->reconnPort = 0;
            rsComm->reconnAddr = NULL;
        }
        else {
            rsComm->cookie = ( int )( getRandomInt() >> 1 );
        }
        try {
            rsComm->thread_ctx->lock      = new boost::mutex;
            rsComm->thread_ctx->cond      = new boost::condition_variable;
            rsComm->thread_ctx->reconnThr = new boost::thread( reconnManager, rsComm );
        }
        catch ( boost::thread_resource_error& ) {
            rodsLog( LOG_ERROR, "boost encountered thread_resource_error." );
            return SYS_THREAD_RESOURCE_ERR;
        }
    }