NotifyFilter.cpp
上传用户:czjinwang
上传日期:2007-01-12
资源大小:2484k
文件大小:4k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. /*============================================================================
  2.   Copyright (c) 1996
  3.   Hewlett-Packard Company
  4.   ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
  5.   Permission to use, copy, modify, distribute and/or sell this software 
  6.   and/or its documentation is hereby granted without fee. User agrees 
  7.   to display the above copyright notice and this license notice in all 
  8.   copies of the software and any documentation of the software. User 
  9.   agrees to assume all liability for the use of the software; Hewlett-Packard 
  10.   makes no representations about the suitability of this software for any 
  11.   purpose. It is provided "AS-IS without warranty of any kind,either express 
  12.   or implied. User hereby grants a royalty-free license to any and all 
  13.   derivatives based upon this software code base. 
  14. =============================================================================*/
  15. #include "stdafx.h"
  16. #include "browser.h"
  17. #include "NotifyFilter.h"
  18. #ifdef _DEBUG
  19. #define new DEBUG_NEW
  20. #undef THIS_FILE
  21. static char THIS_FILE[] = __FILE__;
  22. #endif
  23. /////////////////////////////////////////////////////////////////////////////
  24. // NotifyFilter dialog
  25. NotifyFilter::NotifyFilter(CWnd* pParent /*=NULL*/)
  26. : CDialog(NotifyFilter::IDD, pParent)
  27. {
  28. //{{AFX_DATA_INIT(NotifyFilter)
  29. m_authfail = FALSE;
  30. m_coldstart = FALSE;
  31. m_egploss = FALSE;
  32. m_linkdown = FALSE;
  33. m_linkup = FALSE;
  34. m_specific = FALSE;
  35. m_warmstart = FALSE;
  36. //}}AFX_DATA_INIT
  37. }
  38. void NotifyFilter::DoDataExchange(CDataExchange* pDX)
  39. {
  40. CDialog::DoDataExchange(pDX);
  41. //{{AFX_DATA_MAP(NotifyFilter)
  42. DDX_Check(pDX, IDC_AUTHFAIL, m_authfail);
  43. DDX_Check(pDX, IDC_COLDSTART, m_coldstart);
  44. DDX_Check(pDX, IDC_EGPLOSS, m_egploss);
  45. DDX_Check(pDX, IDC_LINKDOWN, m_linkdown);
  46. DDX_Check(pDX, IDC_LINKUP, m_linkup);
  47. DDX_Check(pDX, IDC_WARMSTART, m_warmstart);
  48. //}}AFX_DATA_MAP
  49. }
  50. BEGIN_MESSAGE_MAP(NotifyFilter, CDialog)
  51. //{{AFX_MSG_MAP(NotifyFilter)
  52. //}}AFX_MSG_MAP
  53. END_MESSAGE_MAP()
  54. /////////////////////////////////////////////////////////////////////////////
  55. // NotifyFilter message handlers
  56. BOOL NotifyFilter::OnInitDialog() 
  57. {
  58. Oid coldStart("1.3.6.1.6.3.1.1.5.1");
  59.     Oid warmStart("1.3.6.1.6.3.1.1.5.2");
  60.     Oid linkUp("1.3.6.1.6.3.1.1.5.4");
  61.     Oid linkDown("1.3.6.1.6.3.1.1.5.3");
  62.     Oid authenticationFailure("1.3.6.1.6.3.1.1.5.5");
  63.     Oid egpNeighborLoss("1.3.6.1.6.3.1.1.5.6");
  64. CDialog::OnInitDialog();
  65. // TODO: Add extra initialization here
  66. // look at the filter param and check the appropriate boxes
  67.     // look for specific ones
  68.     if ( filters.find( coldStart))
  69.       m_coldstart = TRUE;
  70.     else
  71.       m_coldstart = FALSE;
  72.    
  73.     if ( filters.find( warmStart))
  74.       m_warmstart = TRUE;
  75.     else
  76.       m_warmstart = FALSE;
  77.     if ( filters.find( linkUp))
  78.       m_linkup = TRUE;
  79.     else
  80.       m_linkup = FALSE;
  81.     if ( filters.find( linkDown))
  82.       m_linkdown = TRUE;
  83.     else
  84.       m_linkdown = FALSE;
  85.     if ( filters.find( authenticationFailure))
  86.       m_authfail = TRUE;
  87.     else
  88.       m_authfail = FALSE;
  89.     if ( filters.find( egpNeighborLoss))
  90.       m_egploss = TRUE;
  91.     else
  92.       m_egploss = FALSE;
  93.     UpdateData( FALSE);
  94.     return TRUE;          // return TRUE unless you set the focus to a control
  95.                       // EXCEPTION: OCX Property Pages should return FALSE
  96. }
  97. void NotifyFilter::OnOK() 
  98. {
  99. // TODO: Add extra validation here
  100. OidCollection new_filter;
  101. Oid coldStart("1.3.6.1.6.3.1.1.5.1");
  102.     Oid warmStart("1.3.6.1.6.3.1.1.5.2");
  103.     Oid linkUp("1.3.6.1.6.3.1.1.5.4");
  104.     Oid linkDown("1.3.6.1.6.3.1.1.5.3");
  105.     Oid authenticationFailure("1.3.6.1.6.3.1.1.5.5");
  106.     Oid egpNeighborLoss("1.3.6.1.6.3.1.1.5.6");
  107. // assign the new values
  108. UpdateData( TRUE);
  109.     if ( m_coldstart)
  110. new_filter += coldStart;
  111. if ( m_warmstart)
  112. new_filter += warmStart;
  113. if ( m_linkup)
  114. new_filter += linkUp;
  115. if ( m_linkdown)
  116. new_filter += linkDown;
  117. if ( m_authfail)
  118. new_filter += authenticationFailure;
  119. if ( m_egploss)
  120. new_filter += egpNeighborLoss;
  121. filters = new_filter;
  122. CDialog::OnOK();
  123. }