コード例 #1
0
ファイル: CwxMqRecvHandler.cpp プロジェクト: azureplus/flatq
///用户自定义事件处理函数
int CwxMqRecvHandler::onUserEvent(CwxMsgBlock*& msg, CwxTss* pThrEnv) {
  CWX_ASSERT(m_pApp->getConfig().getCommon().m_type == CwxMqConfigCmn::MQ_TYPE_ZK);
  CwxMqTss* pTss = (CwxMqTss*)pThrEnv;
  if (EVENT_ZK_LOCK_CHANGE == msg->event().getEvent()) { ///master发生切换
    CwxMqZkLock* pLock = NULL;
    memcpy(&pLock, msg->rd_ptr(), sizeof(&pLock));
    if (pTss->m_pZkLock) {
      if (pTss->m_pZkLock->m_ullVersion > pLock->m_ullVersion) { ///采用旧版本
        delete pLock;
      }else { ///采用新版本
        delete pTss->m_pZkLock;
        pTss->m_pZkLock = pLock;
      }
    }else { ///采用新版本
      pTss->m_pZkLock = pLock;
    }
    CWX_INFO(("CwxMqRecvHandler: lock changed.master[%s:%s:%d], prev[%s:%s:%d]",
        pTss->m_pZkLock->m_strMaster.c_str(), pTss->m_pZkLock->m_strMasterInnerDispHost.c_str(),
        pTss->m_pZkLock->m_unMasterInnerDispPort, pTss->m_pZkLock->m_strPrev.c_str(),
        pTss->m_pZkLock->m_strPrevInnerDispHost.c_str(), pTss->m_pZkLock->m_unPrevInnerDispPort));
    configChange(pTss);
  }else {
    CWX_ERROR(("CwxMqRecvHandler: unknown event type:%u", msg->event().getEvent()));
    return 0;
  }

  return 1;
}
コード例 #2
0
ファイル: AndroidMain.c プロジェクト: Gabriele91/Easy2D
//callback
extern void __android_handle_cmd(struct android_app* app, int32_t cmd) {
	switch(cmd){
		case APP_CMD_INIT_WINDOW: 
			setIsAndroidValidDevice(true);
			if(initAndroid) 
				initAndroid(app->userData);
		break;
		case APP_CMD_TERM_WINDOW: 
			if(termAndroid) 
				termAndroid(app->userData);
		break;
		case APP_CMD_PAUSE: 
			setIsAndroidValidDevice(false);
			if(pauseAndroid) 
				pauseAndroid(app->userData);
		break;
		case APP_CMD_WINDOW_RESIZED:
			if(windowResized){ 
				int32_t width = ANativeWindow_getWidth(getAndroidApp()->window);
				int32_t height = ANativeWindow_getHeight(getAndroidApp()->window);
				windowResized(app->userData,(int)width,(int)height);
			}
		break;
		case APP_CMD_RESUME: 
			if(resumeAndroid) 
				resumeAndroid(app->userData);
		break;  
		case APP_CMD_CONFIG_CHANGED:
			if(configChange) 
				configChange(app->userData);
        break;
		case APP_CMD_SAVE_STATE:			
			if(saveStateAndroid) 
				saveStateAndroid(app->userData);
        break;
		case APP_CMD_GAINED_FOCUS: 
			setEnableAccelerometer((1000L/60)*1000);
			if(getFocusAndroid) 
				getFocusAndroid(app->userData);
		break;  
		case APP_CMD_LOST_FOCUS: 
			setDisableAccelerometer();
			if(lostFocusAndroid) 
				lostFocusAndroid(app->userData);
		break;
		default:break;
	}
	
}