TransSSSubscriptions.cpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:7k
源码类别:
MySQL数据库
开发平台:
Visual C++
- /* Copyright (C) 2003 MySQL AB
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
- #include "TransSS.hpp"
- #include <signaldata/SumaImpl.hpp>
- #include <GrepError.hpp>
- /*****************************************************************************
- * CREATE SUBSCRIPTION ID
- *****************************************************************************/
- void
- TransSS::execGREP_CREATE_SUBID_CONF(NdbApiSignal* signal)
- {
- CreateSubscriptionIdConf const * conf =
- (CreateSubscriptionIdConf *)signal->getDataPtr();
- Uint32 subId = conf->subscriptionId;
- Uint32 subKey = conf->subscriptionKey;
- /** @todo Fix this */
- #if 0
- signal->theData[0] = EventReport::GrepSubscriptionInfo;
- signal->theData[1] = GrepEvent::GrepSS_CreateSubIdConf;
- signal->theData[2] = subId;
- signal->theData[3] = subKey;
- sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 4 ,JBB);
- #endif
- m_repState->eventSubscriptionIdCreated(subId, subKey);
- }
- void
- TransSS::execGREP_CREATE_SUBID_REF(NdbApiSignal* signal)
- {
- CreateSubscriptionIdRef const * ref =
- (CreateSubscriptionIdRef *)signal->getDataPtr();
- Uint32 subId = ref->subscriptionId;
- Uint32 subKey = ref->subscriptionKey;
- GrepError::Code err = (GrepError::Code) ref->err;
- #if 0
- signal->theData[0] = EventReport::GrepSubscriptionAlert;
- signal->theData[1] = GrepEvent::GrepSS_CreateSubIdRef;
- signal->theData[2] = subId;
- signal->theData[3] = subKey;
- signal->theData[4] = err;
- sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 5 ,JBB);
- #endif
- m_repState->eventSubscriptionIdCreateFailed(subId, subKey, err);
- }
- /*****************************************************************************
- * CREATE SUBSCRIPTION
- *****************************************************************************/
- void
- TransSS::execGREP_SUB_CREATE_CONF(NdbApiSignal* signal)
- {
- GrepSubCreateConf * const conf = (GrepSubCreateConf *)signal->getDataPtr();
- Uint32 noOfNodeGroups = conf->noOfNodeGroups;
- Uint32 subId = conf->subscriptionId;
- Uint32 subKey = conf->subscriptionKey;
- m_repState->setNoOfNodeGroups(noOfNodeGroups);
- #if 0
- signal->theData[0] = EventReport::GrepSubscriptionInfo;
- signal->theData[1] = GrepEvent::GrepSS_SubCreateConf;
- signal->theData[2] = subId;
- signal->theData[3] = subKey;
- signal->theData[4] = noOfNodeGroups;
- sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 5, JBB);
- #endif
- m_repState->eventSubscriptionCreated(subId, subKey);
- }
- void
- TransSS::execGREP_SUB_CREATE_REF(NdbApiSignal* signal)
- {
- GrepSubCreateRef * const ref = (GrepSubCreateRef *)signal->getDataPtr();
- Uint32 subId = ref->subscriptionId;
- Uint32 subKey = ref->subscriptionKey;
- GrepError::Code err = (GrepError::Code)ref->err;
- #if 0
- signal->theData[0] = EventReport::GrepSubscriptionAlert;
- signal->theData[1] = GrepEvent::GrepSS_SubCreateRef;
- signal->theData[2] = subId;
- signal->theData[3] = subKey;
- sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 4, JBB);
- #endif
- m_repState->eventSubscriptionCreateFailed(subId, subKey, err);
- }
- /*****************************************************************************
- * START SUBSCRIPTION
- *****************************************************************************/
- void
- TransSS::execGREP_SUB_START_CONF(NdbApiSignal* signal)
- {
- GrepSubStartConf * const conf = (GrepSubStartConf *)signal->getDataPtr();
- Uint32 subId = conf->subscriptionId;
- Uint32 subKey = conf->subscriptionKey;
- SubscriptionData::Part part = (SubscriptionData::Part) conf->part;
- switch(part) {
- case SubscriptionData::MetaData:
- RLOG(("Metalog started. Subscription %d-%d", subId, subKey));
- m_repState->eventMetaLogStarted(signal, subId, subKey);
- #if 0
- signal->theData[0] = EventReport::GrepSubscriptionInfo;
- signal->theData[1] = GrepEvent::GrepSS_SubStartMetaConf;
- signal->theData[2] = m_requestor.getSubId();
- signal->theData[3] = m_requestor.getSubKey();
- sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 4, JBB);
- #endif
- break;
- case SubscriptionData::TableData:
- RLOG(("Datalog started. Subscription %d-%d", subId, subKey));
- m_repState->eventDataLogStarted(signal, subId, subKey);
- #if 0
- signal->theData[0] = EventReport::GrepSubscriptionInfo;
- signal->theData[1] = GrepEvent::GrepSS_SubStartDataConf;
- signal->theData[2] = m_requestor.getSubId();
- signal->theData[3] = m_requestor.getSubKey();
- sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 4, JBB);
- #endif
- break;
- default:
- REPABORT("Illegal type of subscription");
- }
- }
- void
- TransSS::execGREP_SUB_START_REF(NdbApiSignal* signal)
- {
- GrepSubStartRef * const ref = (GrepSubStartRef *)signal->getDataPtr();
- Uint32 subId = ref->subscriptionId;
- Uint32 subKey = ref->subscriptionKey;
- GrepError::Code err = (GrepError::Code)ref->err;
- SubscriptionData::Part part = (SubscriptionData::Part) ref->part;
- switch(part) {
- case SubscriptionData::MetaData:
- m_repState->eventMetaLogStartFailed(subId, subKey, err);
- #if 1
- ndbout_c("Requestor: Subscription FAILED to start on Meta Data");
- ndbout_c("Error code : %d. Error message: %s",
- err, GrepError::getErrorDesc(err));
- #endif
- #if 0
- signal->theData[0] = EventReport::GrepSubscriptionAlert;
- signal->theData[1] = GrepEvent::GrepSS_SubStartMetaRef;
- signal->theData[2] = subId; //@todo. manage subscriptions.
- signal->theData[3] = subKey; //@todo. manage subscriptions.
- sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 4, JBB);
- #endif
- break;
- case SubscriptionData::TableData:
- m_repState->eventDataLogStartFailed(subId, subKey, err);
- #if 0
- signal->theData[0] = EventReport::GrepSubscriptionAlert;
- signal->theData[1] = GrepEvent::GrepSS_SubStartDataRef;
- signal->theData[2] = subId; //@todo. manage subscriptions.
- signal->theData[3] = subKey; //@todo. manage subscriptions.
- sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 4, JBB);
- #endif
- #if 1
- ndbout_c("Requestor: Subscription FAILED to start on Table Data");
- #endif
- ndbout_c("Error code : %d. Error message: %s",
- err, GrepError::getErrorDesc(err));
- break;
- default:
- REPABORT("Illegal type of subscription");
- }
- }