| 745 | } |
| 746 | |
| 747 | void RedisDataUI::BackgroundWorkForRefreshValues(void) |
| 748 | { |
| 749 | DBClient* cli = Env()->GetDBClient(); |
| 750 | cli->SelectDB(m_oRedisData.db); |
| 751 | std::string key, type; |
| 752 | CEditUI* pKeyEdit = static_cast<CEditUI*>(GetPaintMgr()->FindControl(kKeyEditName)); |
| 753 | key = Base::CharacterSet::UnicodeToANSI(pKeyEdit->GetText().GetData()); |
| 754 | if (!cli->Exists(key)) |
| 755 | { |
| 756 | /// 如果该键已经不存在,则提示用户重新加载 |
| 757 | ::PostMessage(GetHWND(), WM_USER_DATAVERBOSE, 10030, NULL); |
| 758 | return; |
| 759 | } |
| 760 | m_oRedisData.key = Base::CharacterSet::ANSIToUnicode(key).c_str(); |
| 761 | |
| 762 | if (!cli->GetData(key, type, GetResult())) return; |
| 763 | m_oRedisData.type = Base::CharacterSet::ANSIToUnicode(type).c_str(); |
| 764 | m_oRedisData.size.Format(_T("%u"), GetResult().RowSize() ); |
| 765 | long long ttl = cli->TTL(key); |
| 766 | m_oRedisData.ttl.Format(_T("%lld"), ttl); |
| 767 | if (ttl > 0) |
| 768 | { |
| 769 | m_oRedisData.ttl.Append(_T(" ")); |
| 770 | m_oRedisData.ttl.Append(_T("(")); |
| 771 | m_oRedisData.ttl.Append(Base::CharacterSet::ANSIToUnicode(Base::Util::ConvertHumanTimeDuration(ttl)).c_str()); |
| 772 | m_oRedisData.ttl.Append(_T(")")); |
| 773 | } |
| 774 | /// 预先显示数据类型等信息 |
| 775 | ::PostMessage(GetHWND(), WM_USER_DATAVERBOSE, NULL, NULL); |
| 776 | |
| 777 | for (std::size_t idx=0; idx<GetResult().ColumnSize(); ++idx) |
| 778 | { |
| 779 | CListHeaderItemUI* pHeaderItem = new CListHeaderItemUI(); |
| 780 | |
| 781 | pHeaderItem->SetText(Base::CharacterSet::ANSIToUnicode(GetResult().ColumnName(idx)).c_str()); |
| 782 | pHeaderItem->SetHotImage(_T("file='list_header_hot.png'")); |
| 783 | pHeaderItem->SetPushedImage(_T("file='list_header_pushed.png'")); |
| 784 | pHeaderItem->SetSepImage(_T("file='list_header_sep.png'")); |
| 785 | pHeaderItem->SetSepWidth(1); |
| 786 | |
| 787 | /// list在插入值时会根据listhead来作响应判断,所以需要在head完全update后再插入值 |
| 788 | LPARAM lparam = 0; |
| 789 | if (idx+1 == GetResult().ColumnSize()) lparam = 1; |
| 790 | ::PostMessage(GetHWND(), WM_USER_DATAADD, (WPARAM)pHeaderItem, lparam); |
| 791 | } |
| 792 | m_oEventListHeader.wait(); |
| 793 | SetPageValues(); |
| 794 | } |
| 795 | |
| 796 | void RedisDataUI::SetPageValues( ) |
| 797 | { |
nothing calls this directly
no test coverage detected