bool NFCMysqlModule::Query(const std::string& strRecordName, const std::string& strKey, const std::vector<std::string>& fieldVec, std::vector<std::string>& valueVec) { NFIMysqlDriver* pDriver = m_pMysqlDriverManager->GetMysqlDriver(); if (pDriver) { return pDriver->Query(strRecordName, strKey, fieldVec, valueVec); } return false; }
bool NFCMysqlModule::Delete(const std::string& strRecordName, const std::string& strKey) { NFIMysqlDriver* pDriver = m_pMysqlDriverManager->GetMysqlDriver(); if (pDriver) { return pDriver->Delete(strRecordName, strKey); } return false; }
bool NFCMysqlModule::Exists(const std::string& strRecordName, const std::string& strKey, bool& bExit) { NFIMysqlDriver* pDriver = m_pMysqlDriverManager->GetMysqlDriver(); if (pDriver) { return pDriver->Exists(strRecordName, strKey, bExit); } return false; }
bool NFCMysqlDriverManager::AddMysqlServer(const int nServerID, const std::string& strDns, const std::string& strIP, const int nPort, const std::string strDBName, const std::string strDBUser, const std::string strDBPwd, const int nRconnectTime/* = 10*/, const int nRconneCount/* = -1*/) { std::string strDnsIp; if (!strDns.empty()) { strDnsIp = GetIPByHostName(strDns); } if (strDnsIp.empty()) { strDnsIp = strIP; } if (strDnsIp.empty()) { return false; } if (strDnsIp.empty()) { return false; } NFIMysqlDriver* pMysqlDriver = mvMysql.GetElement(nServerID); if (pMysqlDriver) { return false; } NFIMysqlDriver* pInvalidRedisDriver = mvInvalidMsyql.GetElement(nServerID); if (pInvalidRedisDriver) { return false; } pMysqlDriver = NF_NEW NFCMysqlDriver(nRconnectTime, nRconneCount); if (pMysqlDriver->Connect(strDBName, strDnsIp, nPort, strDBUser, strDBPwd)) { mvMysql.AddElement(nServerID, pMysqlDriver); } else { mvInvalidMsyql.AddElement(nServerID, pMysqlDriver); } return true; }
void NFCMysqlConnectMgrModule::CheckMysql() { if (mnLastCheckTime + 10 > GetPluginManager()->GetNowTime()) { return; } mnLastCheckTime = GetPluginManager()->GetNowTime(); ////////////////////////////////////////////////////////////////////////// int nServerID = 0; std::vector<int> xIntVec; for (NFIMysqlDriver* pMysqlDriver = mvMysql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvMysql.Next(nServerID)) { if (!pMysqlDriver->Enable()) { xIntVec.push_back(nServerID); mvInvalidMsyql.AddElement(nServerID, pMysqlDriver); } } for (int i = 0; i < xIntVec.size(); ++i) { mvMysql.RemoveElement(xIntVec[i]); } ////////////////////////////////////////////////////////////////////////// xIntVec.clear(); nServerID = 0; for (NFIMysqlDriver* pMysqlDriver = mvInvalidMsyql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvInvalidMsyql.Next(nServerID)) { if (!pMysqlDriver->Enable() && pMysqlDriver->CanReconnect()) { pMysqlDriver->Reconnect(); if (pMysqlDriver->Enable()) { xIntVec.push_back(nServerID); mvMysql.AddElement(nServerID, pMysqlDriver); } } } for (int i = 0; i < xIntVec.size(); ++i) { mvInvalidMsyql.RemoveElement(xIntVec[i]); } }
void NFCMysqlDriverManager::CheckMysql() { ////////////////////////////////////////////////////////////////////////// int nServerID = 0; std::vector<int> xIntVec; for (NFIMysqlDriver* pMysqlDriver = mvMysql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvMysql.Next(nServerID)) { if (!pMysqlDriver->Enable()) { xIntVec.push_back(nServerID); mvInvalidMsyql.AddElement(nServerID, pMysqlDriver); } } for (int i = 0; i < xIntVec.size(); ++i) { mvMysql.RemoveElement(xIntVec[i]); } ////////////////////////////////////////////////////////////////////////// xIntVec.clear(); nServerID = 0; for (NFIMysqlDriver* pMysqlDriver = mvInvalidMsyql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvInvalidMsyql.Next(nServerID)) { if (!pMysqlDriver->Enable() && pMysqlDriver->CanReconnect()) { pMysqlDriver->Reconnect(); if (pMysqlDriver->Enable()) { xIntVec.push_back(nServerID); mvMysql.AddElement(nServerID, pMysqlDriver); } } } for (int i = 0; i < xIntVec.size(); ++i) { mvInvalidMsyql.RemoveElement(xIntVec[i]); } }
int NFCMysqlComponent::OnASyUseMysqlEvent(const NFGUID& self, const int event, std::string& arg) { SMysqlParam xparam; if (!xparam.UnPackParam(arg)) { return -1; } if (!m_pMysqlDriverManager.get()) { return -2; } NFIMysqlDriver* pDriver = m_pMysqlDriverManager->GetMysqlDriver(); if (NULL == pDriver) { return -3; } switch (xparam.eType) { case SMysqlParam::EMYSQLOPRTYPE_UPDATA: { if (pDriver->Updata(xparam.strRecordName, xparam.strKey, xparam.fieldVec, xparam.valueVec)) { xparam.nRet = -1; } } break; case SMysqlParam::EMYSQLOPRTYPE_QUERY : { if (pDriver->Query(xparam.strRecordName, xparam.strKey, xparam.fieldVec, xparam.valueVec)) { xparam.nRet = -1; } } break; case SMysqlParam::EMYSQLOPRTYPE_SELECT: { if (pDriver->Select(xparam.strRecordName, xparam.strKey, xparam.fieldVec, xparam.valueVec)) { xparam.nRet = -1; } } break; case SMysqlParam::EMYSQLOPRTYPE_DELETE: { if (pDriver->Delete(xparam.strRecordName, xparam.strKey)) { xparam.nRet = -1; } } break; case SMysqlParam::EMYSQLOPRTYPE_EXISTS: { bool bExit = false; if (pDriver->Exists(xparam.strRecordName, xparam.strKey, bExit)) { xparam.bExit = bExit; xparam.nRet = -1; } } break; case SMysqlParam::EMYSQLOPRTYPE_KEYS : { if (pDriver->Keys(xparam.strRecordName, xparam.strKey, xparam.valueVec)) { xparam.nRet = -1; } } break; default: break; } xparam.PackParam(arg); return 0; }