本文整理汇总了C++中pmdGetKRCB函数的典型用法代码示例。如果您正苦于以下问题:C++ pmdGetKRCB函数的具体用法?C++ pmdGetKRCB怎么用?C++ pmdGetKRCB使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pmdGetKRCB函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: pmdModuleLoader
INT32 _pmdController::loadForeignModule()
{
INT32 rc = SDB_OK ;
const CHAR *MONGO_MODULE_NAME = "fapmongo" ;
const CHAR *MONGO_MODULE_PATH = "./bin/fap/" ;
_fapMongo = SDB_OSS_NEW pmdModuleLoader() ;
if ( NULL == _fapMongo )
{
PD_LOG( PDERROR, "Failed to alloc foreign access protocol module" ) ;
rc = SDB_OOM ;
goto error ;
}
rc = _fapMongo->load( MONGO_MODULE_NAME, MONGO_MODULE_PATH ) ;
PD_RC_CHECK( rc, PDERROR, "Failed to load module: %s, path: %s"
" rc: %d", MONGO_MODULE_NAME, MONGO_MODULE_PATH, rc ) ;
rc = _fapMongo->create( _protocol ) ;
PD_RC_CHECK( rc, PDERROR, "Failed to create protocol service" ) ;
rc = _protocol->init( pmdGetKRCB() ) ;
PD_RC_CHECK( rc, PDERROR, "Failed to init protocol" ) ;
done:
return rc ;
error:
goto done ;
}
开发者ID:ArvinPatrick,项目名称:SequoiaDB,代码行数:25,代码来源:pmdController.cpp
示例2: pmdGetKRCB
INT32 rtnCoord2PhaseCommit::doPhase2( CHAR * pReceiveBuffer, SINT32 packSize,
CHAR * * ppResultBuffer, pmdEDUCB * cb,
MsgOpReply & replyHeader )
{
INT32 rc = SDB_OK;
pmdKRCB *pKrcb = pmdGetKRCB();
CoordCB *pCoordcb = pKrcb->getCoordCB();
netMultiRouteAgent *pRouteAgent = pCoordcb->getRouteAgent();
CHAR *pMsgReq = NULL;
MsgHeader *pMsgHead = NULL;
CoordGroupList groupLst;
CoordGroupList sendGroupLst;
rc = buildPhase2Msg( pReceiveBuffer, &pMsgReq );
PD_RC_CHECK( rc, PDERROR,
"failed to build the message on phase1(rc=%d)",
rc );
pMsgHead = (MsgHeader *)pMsgReq;
pMsgHead->TID = cb->getTID();
rc = executeOnDataGroup( pMsgReq, pRouteAgent, cb );
PD_RC_CHECK( rc, PDERROR,
"failed to execute on data-group on phase1(rc=%d)",
rc );
done:
if ( pMsgReq )
{
SDB_OSS_FREE( pMsgReq );
pMsgReq = NULL;
}
return rc;
error:
goto done;
}
开发者ID:ArvinPatrick,项目名称:SequoiaDB,代码行数:35,代码来源:rtnCoordTransaction.cpp
示例3: PD_TRACE_ENTRY
// PD_TRACE_DECLARE_FUNCTION ( SDB__SDB_DMSCB_DISPATCHPAGECLEANSU, "_SDB_DMSCB::dispatchPageCleanSU" )
_dmsStorageUnit *_SDB_DMSCB::dispatchPageCleanSU ( dmsStorageUnitID *suID )
{
PD_TRACE_ENTRY ( SDB__SDB_DMSCB_DISPATCHPAGECLEANSU ) ;
*suID = DMS_INVALID_SUID ;
pmdOptionsCB *optCB = pmdGetOptionCB() ;
_dmsStorageUnit *su = NULL ;
SDB_ASSERT ( suID, "suID can't be NULL" ) ;
_pageCleanHistory firstSU ;
ossTickDelta deltaTime ;
ossScopedLock _lock(&_mutex, EXCLUSIVE) ;
if ( _pageCleanHistoryList.size() == 0 )
goto done ;
firstSU = _pageCleanHistoryList.front() ;
deltaTime = pmdGetKRCB()->getCurTime () - firstSU.first ;
if ( deltaTime.toUINT64() / 1000 >
(UINT64)optCB->getPageCleanInterval() )
{
PD_TRACE1 ( SDB__SDB_DMSCB_DISPATCHPAGECLEANSU,
PD_PACK_ULONG ( firstSU.second ) ) ;
if ( NULL != _cscbVec[firstSU.second] )
{
*suID = firstSU.second ;
_latchVec[*suID]->lock_r() ;
su = _cscbVec[*suID]->_su ;
}
_pageCleanHistorySet.erase ( firstSU.second ) ;
_pageCleanHistoryList.pop_front () ;
}
done :
PD_TRACE_EXIT ( SDB__SDB_DMSCB_DISPATCHPAGECLEANSU ) ;
return su ;
}
开发者ID:Niwalker,项目名称:SequoiaDB,代码行数:35,代码来源:dmsCB.cpp
示例4: pmdGetKRCB
INT32 _rtnCoordSql::execute( MsgHeader *pMsg,
pmdEDUCB *cb,
INT64 &contextID,
rtnContextBuf *buf )
{
INT32 rc = SDB_OK ;
SQL_CB *sqlcb = pmdGetKRCB()->getSqlCB() ;
CHAR *sql = NULL ;
contextID = -1 ;
rc = msgExtractSql( (CHAR*)pMsg, &sql ) ;
if ( SDB_OK != rc )
{
PD_LOG( PDERROR, "failed to extract sql" ) ;
rc = SDB_SYS ;
goto error ;
}
// add last op info
MON_SAVE_OP_DETAIL( cb->getMonAppCB(), pMsg->opCode,
"%s", sql ) ;
rc = sqlcb->exec( sql, cb, contextID ) ;
done:
return rc ;
error:
goto done ;
}
开发者ID:Andrew8305,项目名称:SequoiaDB,代码行数:31,代码来源:rtnCoordSql.cpp
示例5: pmdGetKRCB
INT32 _pmdController::activeForeignModule()
{
INT32 rc = SDB_OK ;
pmdEDUParam *pProtocolData = NULL ;
pmdEDUMgr *pEDUMgr = pmdGetKRCB()->getEDUMgr() ;
EDUID eduID = PMD_INVALID_EDUID ;
if ( NULL == _fapMongo )
{
goto done ;
}
// listener for access protocol
pProtocolData = new pmdEDUParam() ;
pProtocolData->pSocket = (void *)_pMongoListener ;
pProtocolData->protocol = _protocol ;
rc = pEDUMgr->startEDU( EDU_TYPE_FAPLISTENER, (void*)pProtocolData,
&eduID ) ;
PD_RC_CHECK( rc, PDERROR, "Failed to start FAP listerner, rc: %d",
rc ) ;
pEDUMgr->regSystemEDU( EDU_TYPE_FAPLISTENER, eduID ) ;
// wait until protocol listener starts
rc = pEDUMgr->waitUntil ( eduID, PMD_EDU_RUNNING ) ;
PD_RC_CHECK( rc, PDERROR, "Wait FAP Listener active failed, rc: %d",
rc ) ;
done:
return rc ;
error:
goto done ;
}
开发者ID:Andrew8305,项目名称:SequoiaDB,代码行数:32,代码来源:pmdController.cpp
示例6: SDB_ASSERT
INT32 rtnCoordTransCommit::execute( CHAR * pReceiveBuffer, SINT32 packSize,
CHAR * * ppResultBuffer, pmdEDUCB * cb,
MsgOpReply & replyHeader,
BSONObj **ppErrorObj )
{
INT32 rc = SDB_OK;
rtnCoordOperator *pRollbackOperator = NULL;
rc = rtnCoord2PhaseCommit::execute( pReceiveBuffer, packSize, ppResultBuffer,
cb, replyHeader, ppErrorObj );
SDB_ASSERT( NULL == *ppErrorObj, "impossible" ) ;
PD_RC_CHECK( rc, PDERROR,
"failed to commit the transaction(rc=%d)",
rc );
cb->delTransaction();
done:
return rc;
error:
pRollbackOperator = pmdGetKRCB()->getCoordCB()->getProcesserFactory(
)->getOperator( MSG_BS_TRANS_ROLLBACK_REQ );
if ( pRollbackOperator )
{
pRollbackOperator->execute( pReceiveBuffer, packSize, ppResultBuffer,
cb, replyHeader, ppErrorObj );
SDB_ASSERT( NULL == *ppErrorObj, "impossible" ) ;
}
goto done;
}
开发者ID:ArvinPatrick,项目名称:SequoiaDB,代码行数:27,代码来源:rtnCoordTransaction.cpp
示例7: pmdGetKRCB
INT32 _coordOmOperatorBase::queryOnOmAndPushToVec( const rtnQueryOptions &options,
pmdEDUCB *cb,
vector< BSONObj > &objs,
rtnContextBuf *buf )
{
INT32 rc = SDB_OK ;
SINT64 contextID = -1 ;
rtnContextBuf bufObj ;
SDB_RTNCB *rtnCB = pmdGetKRCB()->getRTNCB() ;
rc = queryOnOm( options, cb, contextID, buf ) ;
if ( SDB_OK != rc )
{
PD_LOG( PDERROR, "Failed to query on om: %d", rc ) ;
goto error ;
}
do
{
rc = rtnGetMore( contextID, -1, bufObj, cb, rtnCB ) ;
if ( SDB_DMS_EOC == rc )
{
rc = SDB_OK ;
contextID = -1 ;
break ;
}
else if ( SDB_OK != rc )
{
contextID = -1 ;
PD_LOG( PDERROR, "Failed to getmore from context, rc: %d", rc ) ;
goto error ;
}
else
{
while ( !bufObj.eof() )
{
BSONObj obj ;
rc = bufObj.nextObj( obj ) ;
if ( SDB_OK != rc )
{
PD_LOG( PDERROR, "Failed to get obj from obj buf, rc: %d",
rc ) ;
goto error ;
}
objs.push_back( obj.getOwned() ) ;
}
}
} while( TRUE ) ;
done:
if ( -1 != contextID )
{
rtnCB->contextDelete( contextID, cb ) ;
}
return rc ;
error:
goto done ;
}
开发者ID:SequoiaDB,项目名称:SequoiaDB,代码行数:59,代码来源:coordOmOperator.cpp
示例8: pmdGetKRCB
void _monAppCB::startOperator()
{
_lastOpBeginTime = pmdGetKRCB()->getCurTime() ;
_lastOpEndTime.clear() ;
_lastOpType = MSG_NULL ;
_cmdType = CMD_UNKNOW ;
ossMemset( _lastOpDetail, 0, sizeof(_lastOpDetail) ) ;
}
开发者ID:2015520,项目名称:SequoiaDB,代码行数:8,代码来源:monCB.cpp
示例9: PD_TRACE_ENTRY
// PD_TRACE_DECLARE_FUNCTION( SDB__QGMPLDELETE__EXEC, "_qgmPlDelete::_execute" )
INT32 _qgmPlDelete::_execute( _pmdEDUCB *eduCB )
{
PD_TRACE_ENTRY( SDB__QGMPLDELETE__EXEC ) ;
INT32 rc = SDB_OK ;
_SDB_KRCB *krcb = pmdGetKRCB() ;
SDB_ROLE role = krcb->getDBRole() ;
CHAR *msg = NULL ;
if ( SDB_ROLE_COORD == role )
{
INT32 bufSize = 0 ;
MsgOpReply dummyReply ;
rtnCoordDelete del ;
rc = msgBuildDeleteMsg( &msg, &bufSize,
_collection.toString().c_str(),
0, 0,
_condition.isEmpty()?
NULL : &_condition ) ;
if ( SDB_OK != rc )
{
goto error ;
}
rc = del.execute( msg, *((SINT32 *)msg),
eduCB, dummyReply,
NULL ) ;
}
else
{
SDB_DPSCB *dpsCB = krcb->getDPSCB() ;
if ( dpsCB && eduCB->isFromLocal() && !dpsCB->isLogLocal() )
{
dpsCB = NULL ;
}
SDB_DMSCB *dmsCB = krcb->getDMSCB() ;
BSONObj empty ;
rc = rtnDelete( _collection.toString().c_str(),
_condition, empty, 0, eduCB,
dmsCB, dpsCB ) ;
}
if ( SDB_OK != rc )
{
goto error ;
}
done:
if ( NULL != msg )
{
SDB_OSS_FREE( msg ) ;
msg = NULL ;
}
PD_TRACE_EXITRC( SDB__QGMPLDELETE__EXEC, rc ) ;
return rc ;
error:
goto done ;
}
开发者ID:Niwalker,项目名称:SequoiaDB,代码行数:58,代码来源:qgmPlDelete.cpp
示例10: pmdGetKRCB
void _qgmPlCommand::_killContext()
{
if ( -1 != _contextID )
{
SDB_RTNCB *rtnCB = pmdGetKRCB()->getRTNCB() ;
rtnKillContexts( 1, &_contextID, _eduCB, rtnCB ) ;
_contextID = -1 ;
}
return ;
}
开发者ID:SequoiaDB,项目名称:SequoiaDB,代码行数:10,代码来源:qgmPlCommand.cpp
示例11: pmdGetKRCB
void _pmdCoordProcessor::_onDetach()
{
pmdDataProcessor::_onDetach() ;
_CoordCB *pCoordCB = pmdGetKRCB()->getCoordCB() ;
if ( eduCB() && pCoordCB )
{
netMultiRouteAgent *pRouteAgent = pCoordCB->getRouteAgent() ;
pRouteAgent->delSession( eduCB()->getTID() ) ;
}
}
开发者ID:Niwalker,项目名称:SequoiaDB,代码行数:10,代码来源:pmdProcessor.cpp
示例12: PD_TRACE_ENTRY
// PD_TRACE_DECLARE_FUNCTION ( SDB__CLSREPSET_INIT, "_clsReplicateSet::initialize" )
INT32 _clsReplicateSet::initialize ()
{
INT32 rc = SDB_OK ;
PD_TRACE_ENTRY ( SDB__CLSREPSET_INIT ) ;
if ( !_agent )
{
rc = SDB_INVALIDARG ;
goto error ;
}
g_startShiftTime = (INT32)pmdGetOptionCB()->startShiftTime() ;
_logger = pmdGetKRCB()->getDPSCB() ;
_clsCB = pmdGetKRCB()->getClsCB() ;
SDB_ASSERT( NULL != _logger, "logger should not be NULL" ) ;
_logger->regEventHandler( this ) ;
rc = _replBucket.init() ;
PD_RC_CHECK( rc, PDERROR, "Init repl bucket failed, rc: %d", rc ) ;
_totalLogSize = (UINT64)pmdGetOptionCB()->getReplLogFileSz()*
(UINT64)pmdGetOptionCB()->getReplLogFileNum() ;
{
UINT32 rate = 2 ;
UINT32 timeBase = CLS_SYNCCTRL_BASE_TIME ;
for ( UINT32 idx = 0 ; idx < CLS_SYNCCTRL_THRESHOLD_SIZE ; ++idx )
{
rate = 2 << idx ;
_sizethreshold[ idx ] = _totalLogSize * ( rate - 1 ) / rate ;
_timeThreshold[ idx ] = timeBase << idx ;
}
}
done:
PD_TRACE_EXITRC ( SDB__CLSREPSET_INIT, rc );
return rc ;
error:
goto done ;
}
开发者ID:SequoiaDB,项目名称:SequoiaDB,代码行数:43,代码来源:clsReplicateSet.cpp
示例13: pmdGetOptionCB
INT32 _CoordCB::init ()
{
INT32 rc = SDB_OK ;
CoordGroupInfo *pGroupInfo = NULL ;
UINT32 catGID = CATALOG_GROUPID ;
UINT16 catNID = SYS_NODE_ID_BEGIN + CLS_REPLSET_MAX_NODE_SIZE ;
MsgRouteID id ;
pmdOptionsCB *optCB = pmdGetOptionCB() ;
vector< _pmdAddrPair > catAddrs = optCB->catAddrs() ;
_pNetWork = SDB_OSS_NEW _netRouteAgent( &_multiRouteAgent ) ;
if ( !_pNetWork )
{
PD_LOG( PDERROR, "Failed to alloc memory for net agent" ) ;
rc = SDB_OOM ;
goto error ;
}
_multiRouteAgent.setNetWork( _pNetWork ) ;
pGroupInfo = SDB_OSS_NEW CoordGroupInfo( CAT_CATALOG_GROUPID ) ;
if ( !pGroupInfo )
{
PD_LOG( PDERROR, "Failed to alloc memory for group info" ) ;
rc = SDB_OOM ;
goto error ;
}
_catGroupInfo = CoordGroupInfoPtr( pGroupInfo ) ;
for ( UINT32 i = 0 ; i < catAddrs.size() ; ++i )
{
if ( 0 == catAddrs[i]._host[ 0 ] )
{
break ;
}
id.columns.groupID = catGID ;
id.columns.nodeID = catNID++ ;
id.columns.serviceID = MSG_ROUTE_CAT_SERVICE ;
addCatNodeAddr( id, catAddrs[i]._host, catAddrs[i]._service ) ;
}
pmdGetStartup().ok( TRUE ) ;
pmdGetKRCB()->setGroupName( COORD_GROUPNAME ) ;
{
MsgRouteID id ;
id.value = MSG_INVALID_ROUTEID ;
id.columns.groupID = COORD_GROUPID ;
pmdSetNodeID( id ) ;
}
done:
return rc ;
error:
goto done ;
}
开发者ID:hanjirui,项目名称:SequoiaDB,代码行数:54,代码来源:coordCB.cpp
示例14: pmdGetKRCB
void _pmdEDUCB::clearTransInfo()
{
_curTransID = DPS_INVALID_TRANS_ID ;
_relatedTransLSN = DPS_INVALID_LSN_OFFSET ;
_curTransLSN = DPS_INVALID_LSN_OFFSET ;
dpsTransCB *pTransCB = pmdGetKRCB()->getTransCB();
if ( pTransCB )
{
pTransCB->transLockReleaseAll( this );
}
}
开发者ID:jasonsungblog,项目名称:SequoiaDB,代码行数:11,代码来源:pmdEDU.cpp
示例15: PD_TRACE_ENTRY
// PD_TRACE_DECLARE_FUNCTION ( SDB__CLSCATCLR_HNDTMOUT, "_clsCatalogCaller::handleTimeout" )
void _clsCatalogCaller::handleTimeout( const UINT32 &millisec )
{
PD_TRACE_ENTRY ( SDB__CLSCATCLR_HNDTMOUT );
callerMeta::iterator itr = _meta.begin() ;
for ( ; itr != _meta.end(); itr++ )
{
if ( CLS_CALLER_NO_SEND != itr->second.timeout )
{
itr->second.timeout += millisec ;
if ( CLS_CALLER_INTERVAL <= itr->second.timeout )
{
pmdGetKRCB()->getClsCB()->updateCatGroup ( TRUE ) ;
pmdGetKRCB()->getClsCB()->sendToCatlog( itr->second.header) ;
itr->second.timeout = 0 ;
}
}
}
PD_TRACE_EXIT ( SDB__CLSCATCLR_HNDTMOUT );
return ;
}
开发者ID:2015520,项目名称:SequoiaDB,代码行数:21,代码来源:clsCatalogCaller.cpp
示例16: pmdBackgroundJobEntryPoint
// PD_TRACE_DECLARE_FUNCTION ( SDB_PMDBGJOBENTPNT, "pmdBackgroundJobEntryPoint" )
INT32 pmdBackgroundJobEntryPoint( pmdEDUCB *cb, void *pData )
{
SDB_ASSERT( NULL != pData, "impossible" ) ;
PD_TRACE_ENTRY ( SDB_PMDBGJOBENTPNT );
rtnJobMgr *jobMgr = rtnGetJobMgr () ;
pmdEDUMgr *pEDUMgr = pmdGetKRCB()->getEDUMgr() ;
rtnBaseJob *job = (rtnBaseJob*)pData ;
INT32 rc = SDB_OK ;
BOOLEAN reuseEDU = job->reuseEDU() ;
string expStr ;
PD_LOG( PDINFO, "Start a background job[%s]", job->name() ) ;
cb->setName( job->name() ) ;
job->attachIn( cb ) ;
try
{
pEDUMgr->activateEDU( cb ) ;
rc = job->doit () ;
if ( SDB_OK != rc )
{
PD_LOG ( PDWARNING, "Background job[%s] do failed, rc = %d",
job->name(), rc ) ;
}
else
{
PD_LOG ( PDINFO, "Background job[%s] finished", job->name() ) ;
}
}
catch( std::exception &e )
{
PD_LOG( PDERROR, "Occur exception: %s", e.what() ) ;
rc = SDB_SYS ;
expStr = e.what() ;
}
job->attachOut () ;
jobMgr->_removeJob ( cb->getID(), rc ) ;
if ( !reuseEDU )
{
pEDUMgr->forceUserEDU( cb->getID() ) ;
}
if ( !expStr.empty() )
{
throw pdGeneralException( rc, expStr ) ;
}
PD_TRACE_EXITRC ( SDB_PMDBGJOBENTPNT, rc );
return SDB_OK ;
}
开发者ID:SequoiaDB,项目名称:SequoiaDB,代码行数:54,代码来源:pmdBackgroundJob.cpp
示例17: pmdGetKRCB
_rtnContextLob::~_rtnContextLob()
{
if ( NULL != _stream && _stream->isOpened() )
{
pmdKRCB *krcb = pmdGetKRCB() ;
pmdEDUMgr *eduMgr = krcb->getEDUMgr() ;
pmdEDUCB *cb = eduMgr->getEDUByID( eduID() ) ;
_stream->closeWithException( cb ) ;
}
SAFE_OSS_DELETE( _stream ) ;
}
开发者ID:247687009,项目名称:SequoiaDB,代码行数:12,代码来源:rtnContextLob.cpp
示例18: pmdGetKRCB
/*
_coordOmStrategyAccessor implement
*/
_coordOmStrategyAccessor::_coordOmStrategyAccessor( INT64 timeout )
{
pmdKRCB *krcb = pmdGetKRCB() ;
CoordCB *pCoord = krcb->getCoordCB() ;
pmdOptionsCB *optionsCB = krcb->getOptionCB() ;
_pOmProxy = pCoord->getResource()->getOmProxy() ;
_oprTimeout = timeout ;
optionsCB->getFieldStr( PMD_OPTION_CLUSTER_NAME, _clsName, "" ) ;
optionsCB->getFieldStr( PMD_OPTION_BUSINESS_NAME, _bizName, "" ) ;
}
开发者ID:SequoiaDB,项目名称:SequoiaDB,代码行数:15,代码来源:coordOmStrategyAccessor.cpp
示例19: catSplitCheckConflict
INT32 catSplitCheckConflict( BSONObj & match, clsSplitTask & splitTask,
BOOLEAN & conflict, pmdEDUCB * cb )
{
INT32 rc = SDB_OK ;
pmdKRCB *krcb = pmdGetKRCB() ;
SDB_DMSCB *dmsCB = krcb->getDMSCB() ;
SDB_RTNCB *rtnCB = krcb->getRTNCB() ;
BSONObj dummyObj ;
INT64 contextID = -1 ;
rtnContextBuf buffObj ;
INT64 startPos = 0 ;
rc = rtnQuery( CAT_TASK_INFO_COLLECTION, dummyObj, match, dummyObj,
dummyObj, 0, cb, 0, -1, dmsCB, rtnCB, contextID ) ;
PD_RC_CHECK ( rc, PDERROR, "Failed to perform query, rc = %d", rc ) ;
while ( SDB_OK == rc )
{
rc = rtnGetMore( contextID, -1, buffObj, startPos, cb, rtnCB ) ;
if ( rc )
{
if ( SDB_DMS_EOC == rc )
{
contextID = -1 ;
rc = SDB_OK ;
break ;
}
PD_LOG( PDERROR, "Failed to retreive record, rc = %d", rc ) ;
goto error ;
}
rc = _checkSplitTaskConflict( &buffObj, conflict, &splitTask ) ;
PD_RC_CHECK( rc, PDERROR, "Check split task conflict error, rc: %d",
rc ) ;
if ( conflict )
{
break ;
}
}
done:
if ( -1 != contextID )
{
rtnCB->contextDelete ( contextID, cb ) ;
}
return rc ;
return rc ;
error:
goto done ;
}
开发者ID:jasonsungblog,项目名称:SequoiaDB,代码行数:52,代码来源:catSplit.cpp
示例20: SDB_ASSERT
void _dpsLogWrapper::regEventHandler( dpsEventHandler *pHandler )
{
SDB_ASSERT( pHandler, "Handle can't be NULL" ) ;
SDB_ASSERT( FALSE == pmdGetKRCB()->isActive(),
"Can't register handle when pmd actived" ) ;
for ( UINT32 i = 0 ; i < _vecEventHandler.size() ; ++i )
{
SDB_ASSERT( pHandler != _vecEventHandler[ i ],
"Handle can't be same" ) ;
}
_vecEventHandler.push_back( pHandler ) ;
_buf.regEventHandler( pHandler ) ;
}
开发者ID:hanjirui,项目名称:SequoiaDB,代码行数:13,代码来源:dpsLogWrapper.cpp
注:本文中的pmdGetKRCB函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论