示例#1
0
void CLogWindow::OnBnClickedButton1()
{
	// TODO: Add your control notification handler code here
	// 请求服务器拉取日志
	CguiconsoleDlg* dlg = static_cast<CguiconsoleDlg*>(theApp.m_pMainWnd);
	
	HTREEITEM item = dlg->hasCheckApp(MESSAGELOG_TYPE);
	if(item == NULL)
	{
		::AfxMessageBox(L"messagelog no select!");
		return;
	}

	Mercury::Address addr = dlg->getTreeItemAddr(item);

	Mercury::Channel* pChannel = dlg->networkInterface().findChannel(addr);
	if(pChannel == NULL)
	{
		::AfxMessageBox(L"messagelog is error!");
		return;
	}

	Mercury::Bundle bundle;
	bundle.newMessage(MessagelogInterface::registerLogWatcher);

	bundle << getSelLogTypes();
	
	CString apporder;
	m_appIDEdit.GetWindowTextW(apporder);

	char* cs = KBEngine::strutil::wchar2char(apporder.GetBuffer(0));
	COMPONENT_ORDER order = atoi(cs);
	free(cs);

	bundle << order;

	int8 count = 0;
	std::vector<KBEngine::COMPONENT_TYPE> vec = getSelComponents();
	count = vec.size();
	bundle << count;
	std::vector<KBEngine::COMPONENT_TYPE>::iterator iter = vec.begin();
	for(; iter != vec.end(); iter++)
	{
		bundle << (*iter);
	}

	bundle.send(dlg->networkInterface(), pChannel);
}
void CLogWindow::updateSettingToServer()
{
    Network::Bundle* pBundle = Network::Bundle::createPoolObject();
    (*pBundle).newMessage(LoggerInterface::updateLogWatcherSetting);

    CguiconsoleDlg* dlg = static_cast<CguiconsoleDlg*>(theApp.m_pMainWnd);
    int32 uid = dlg->getSelTreeItemUID();
    (*pBundle) << uid;

    (*pBundle) << getSelLogTypes();

    CString apporder;
    m_appIDEdit.GetWindowTextW(apporder);

    char* cs = KBEngine::strutil::wchar2char(apporder.GetBuffer(0));
    COMPONENT_ORDER order = atoi(cs);
    free(cs);

    (*pBundle) << order;

    m_appIDEdit1.GetWindowTextW(apporder);
    cs = KBEngine::strutil::wchar2char(apporder.GetBuffer(0));
    order = atoi(cs);
    free(cs);

    (*pBundle) << order;

    CString date;
    m_dateEdit.GetWindowTextW(date);
    cs = KBEngine::strutil::wchar2char(date.GetBuffer(0));
    (*pBundle) << cs;
    free(cs);

    CString keystr;
    m_findEdit.GetWindowTextW(keystr);
    cs = KBEngine::strutil::wchar2char(keystr.GetBuffer(0));
    (*pBundle) << cs;
    free(cs);

    int8 count = 0;
    std::vector<KBEngine::COMPONENT_TYPE> vec = getSelComponents();
    count = vec.size();
    (*pBundle) << count;
    std::vector<KBEngine::COMPONENT_TYPE>::iterator iter = vec.begin();
    for(; iter != vec.end(); iter++)
    {
        (*pBundle) << (*iter);
    }

    HTREEITEM item = dlg->hasCheckApp(LOGGER_TYPE);
    if(item == NULL)
    {
        ::AfxMessageBox(L"logger no select!");
        Network::Bundle::reclaimPoolObject(pBundle);
        return;
    }

    dlg = static_cast<CguiconsoleDlg*>(theApp.m_pMainWnd);
    Network::Address addr = dlg->getTreeItemAddr(item);
    Network::Channel* pChannel = dlg->networkInterface().findChannel(addr);
    if(pChannel == NULL)
    {
        ::AfxMessageBox(L"logger is error!");
        Network::Bundle::reclaimPoolObject(pBundle);
        return;
    }

    bool first = m_loglist.GetCount() <= 0;
    (*pBundle) << first;
    pChannel->send(pBundle);
}
void CLogWindow::pullLogs(KBEngine::Network::Address addr)
{
    CguiconsoleDlg* dlg = static_cast<CguiconsoleDlg*>(theApp.m_pMainWnd);
    Network::Channel* pChannel = dlg->networkInterface().findChannel(addr);
    if(pChannel == NULL)
    {
        ::AfxMessageBox(L"logger is error!");
        return;
    }

    if(!pulling)
    {
        Network::Bundle* pBundle = Network::Bundle::createPoolObject();
        (*pBundle).newMessage(LoggerInterface::registerLogWatcher);

        int32 uid = dlg->getSelTreeItemUID();
        (*pBundle) << uid;

        (*pBundle) << getSelLogTypes();

        CString apporder;
        m_appIDEdit.GetWindowTextW(apporder);

        char* cs = KBEngine::strutil::wchar2char(apporder.GetBuffer(0));
        COMPONENT_ORDER order = atoi(cs);
        free(cs);

        (*pBundle) << order;

        m_appIDEdit1.GetWindowTextW(apporder);
        cs = KBEngine::strutil::wchar2char(apporder.GetBuffer(0));
        order = atoi(cs);
        free(cs);

        (*pBundle) << order;

        CString date;
        m_dateEdit.GetWindowTextW(date);
        cs = KBEngine::strutil::wchar2char(date.GetBuffer(0));
        (*pBundle) << cs;
        free(cs);

        CString keystr;
        m_findEdit.GetWindowTextW(keystr);
        cs = KBEngine::strutil::wchar2char(keystr.GetBuffer(0));
        (*pBundle) << cs;
        free(cs);

        int8 count = 0;
        std::vector<KBEngine::COMPONENT_TYPE> vec = getSelComponents();
        count = vec.size();
        (*pBundle) << count;
        std::vector<KBEngine::COMPONENT_TYPE>::iterator iter = vec.begin();
        for(; iter != vec.end(); iter++)
        {
            (*pBundle) << (*iter);
        }

        (*pBundle) << isfind_;

        bool first = m_loglist.GetCount() <= 0;
        (*pBundle) << first;
        pChannel->send(pBundle);

        m_autopull.SetWindowTextW(L"stop");
    }
    else
    {
        m_autopull.SetWindowTextW(L"auto");

        Network::Bundle* pBundle = Network::Bundle::createPoolObject();
        (*pBundle).newMessage(LoggerInterface::deregisterLogWatcher);
        pChannel->send(pBundle);
    }

    pulling = !pulling;
}