Dart.Snmp Namespace : NotificationReceived Delegate |
Public Delegate Sub NotificationReceived( _ ByVal manager As Manager, _ ByVal receivedMessage As MessageBase, _ ByVal state As Object _ )
Dim instance As New NotificationReceived(AddressOf HandlerMethod)
public delegate void NotificationReceived( Manager manager, MessageBase receivedMessage, object state )
public: __gc __delegate void NotificationReceived( Manager* manager, MessageBase* receivedMessage, Object* state )
public delegate void NotificationReceived( Manager^ manager, MessageBase^ receivedMessage, Object^ state )
The encapsulated method is called as each message is received by the Manager. The user will normally construct a default message to be sent after receiving an InformMessage. No response is required for traps and notifications.
private void button1_Click(object sender, EventArgs e) { //Start listening for notifications manager1.Start(manager1_NotificationReceived, null); } private void manager1_NotificationReceived(Manager manager, MessageBase message, object state) { //Marshal message to the UI thread using the Message event if (message is Trap1Message) manager.Marshal(new MessageBase[] { message }, "trap1", null); else if (message is Trap2Message) manager.Marshal(new MessageBase[] { message }, "trap2", null); else if (message is InformMessage) { manager.Marshal(new MessageBase[] { message }, "inform", null); //Send response to inform message origin manager.Send(new ResponseMessage(message as InformMessage, null), message.Origin); } } private void manager1_Message(object sender, MessageEventArgs e) { //Update interface according to message type received switch (e.Message) { case "trap1": Trap1Message trap = e.Messages[0] as Trap1Message; label1.Text = "Trap1 received with Enterprise(" + trap.Enterprise + "), Generic Type (" + trap.GenericTrap.ToString() + "), Specific Type(" + trap.SpecificTrap.ToString() + ")"; break; case "trap2": Trap2Message notification = e.Messages[0] as Trap2Message; label2.Text = "Trap2 received with OID (" + notification.Oid + ")"; break; case "inform": InformMessage inform = e.Messages[0] as InformMessage; label3.Text = "Inform received with " + inform.Variables.Count.ToString() + " variable(s)."; break; } }
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) 'Start listening for notifications manager1.Start(AddressOf manager1_NotificationReceived, Nothing) End Sub Private Sub manager1_NotificationReceived(ByVal manager As Manager, ByVal message As MessageBase, ByVal state As Object) 'Marshal message to the UI thread using the Message event If TypeOf message Is Trap1Message Then manager.Marshal(New MessageBase() { message }, "trap1", Nothing) ElseIf TypeOf message Is Trap2Message Then manager.Marshal(New MessageBase() { message }, "trap2", Nothing) ElseIf TypeOf message Is InformMessage Then manager.Marshal(New MessageBase() { message }, "inform", Nothing) 'Send response to inform message origin manager.Send(New ResponseMessage(TryCast(message, InformMessage), Nothing), message.Origin) End If End Sub Private Sub manager1_Message(ByVal sender As Object, ByVal e As MessageEventArgs) 'Update interface according to message type received Select Case e.Message Case "trap1" Dim trap As Trap1Message = TryCast(e.Messages(0), Trap1Message) label1.Text = "Trap1 received with Enterprise(" & trap.Enterprise & "), Generic Type (" & trap.GenericTrap.ToString() & "), Specific Type(" & trap.SpecificTrap.ToString() & ")" Case "trap2" Dim notification As Trap2Message = TryCast(e.Messages(0), Trap2Message) label2.Text = "Trap2 received with OID (" & notification.Oid & ")" Case "inform" Dim inform As InformMessage = TryCast(e.Messages(0), InformMessage) label3.Text = "Inform received with " & inform.Variables.Count.ToString() & " variable(s)." End Select End Sub