当前位置: 首页>>代码示例>>C++>>正文


C++ Tx::setState方法代码示例

本文整理汇总了C++中Tx::setState方法的典型用法代码示例。如果您正苦于以下问题:C++ Tx::setState方法的具体用法?C++ Tx::setState怎么用?C++ Tx::setState使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Tx的用法示例。


在下文中一共展示了Tx::setState方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

void WT0420RT0430::apply(Tx& a_tx)
{
  string id = a_tx.getId();
  try
	{
	  Message* currentIn_sp = a_tx.getCurrentIn();
	  {
		QueryManager queryManager;
		queryManager.begin();
		queryManager.updateTx(
							  id
							  ,ecc::pp::txs::state::ABORT
							  ,ecc::pp::txs::evolve::PASIVE
							  );
		queryManager.isCommit(true);
	  }
	  a_tx.setState( Tx::END );
	  a_tx.setEvent( Tx::UNDEFINED );
	}catch(Exception& e){
	  e
		<< "catch in WT0420RT0430::apply\n"
		;
	  a_tx.setState( Tx::END );
	  a_tx.setEvent( Tx::EXCEPTION );
	  throw;
	}catch(...){
	  a_tx.setState( Tx::END );
	  a_tx.setEvent( Tx::EXCEPTION );
	  throw;
	}
}
开发者ID:edgarinformaticamodular,项目名称:mtx-transactional-monitor,代码行数:31,代码来源:WT0420RT0430.cpp

示例2: apply

void Default::apply(Tx& a_tx)
{
  stringstream sstream;
  sstream
	<< "Tx::evolve_default !!! este estado es inalcanzalbe !!! "
	<< endl
	<< "estado actual: -"<< a_tx.getState() << "-, evento: -"<< a_tx.getEvent() <<"-."<< endl;
  Log::instance().log( sstream.str().c_str() );
  a_tx.setEvent( Tx::UNDEFINED );
  a_tx.setState( Tx::END );
}
开发者ID:edgarinformaticamodular,项目名称:mtx-transactional-monitor,代码行数:11,代码来源:Default.cpp

示例3:

void InitialRT0420::apply(Tx& a_tx)
{
  a_tx.timedWait();//parra quitar el primer counter del semaforo
  try
	{
	  bool result;
	  Message* message_p = a_tx.getCurrentIn();

	  string authorisationCode = message_p->getAuthorisationCode();
	  string responseCode = message_p->getResponseCode();
	  string telephone = message_p->getTelephone();
	  string id = message_p->getTxId();
	  {
		QueryManager queryManager;
		queryManager.begin();
		QueryManager::AcceptState acceptState;
		acceptState = queryManager.delayReverseTx(
												  id
												  ,ecc::pp::txs::state::ABORT
												  ,ecc::pp::txs::evolve::PASIVE
												  ,authorisationCode
												  ,telephone
												  );
		//aqui cacho los valores que voy a utilizar despues
		a_tx
		  .messageFactory()
		  .setCacheOriginalDataElements(
										queryManager
										.createOriginalDataElements( a_tx.getId() )
										);
		cach( a_tx.messageFactory(), queryManager );
		
		if( acceptState = QueryManager::ACCEPTED )
		  wt0430(a_tx);//checar que esta funcion solo puede mandar excepciones antes de mandar el mensaje
		else
		  {
			stringstream sstring;
			sstring
			  << "InitialRT0420::info:\n\t< MSG 522 >: La peticion de reverso, para la transaccion:-"
			  << id
			  << "-, y codigo de authorisacion: -"
			  << authorisationCode
			  << "-; no corresponden a ninguna transaccion autorizada.";
			Log::instance().log( sstring.str().c_str() );
		  }
		queryManager.isCommit(true);
		a_tx.setEvent( Tx::DONE );
		a_tx.setState( Tx::END );
	  }
	}catch(Exception& e){
	  a_tx.setState( Tx::END );
	  a_tx.setEvent( Tx::EXCEPTION );
	  e
		<< "catch in InitialRT0420::apply\n"
		;
	  throw;
	}catch(...){
	  a_tx.setState( Tx::END );
	  a_tx.setEvent( Tx::EXCEPTION );
	  throw;
	}
}
开发者ID:edgarinformaticamodular,项目名称:mtx-transactional-monitor,代码行数:62,代码来源:InitialRT0420.cpp


注:本文中的Tx::setState方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。