/// <summary>
 /// Concurrent threads may ask us to handle an unsolicited alert.
 /// Push the alert to the RateController for threadsafe callback on our CallBackAlert() routine.
 /// The alert is serialized at source as if the caller was remote and TCP delivered the message.
 /// </summary>
 /// <param name="alertType"></param>
 /// <param name="args"></param>
 /// 
 public override void PostAlert(OktoAlertType alertType, ulong[] args)
 {
     rateController.PostAlert(alertType, args);
 }
Esempio n. 2
0
 public abstract void PostAlert(OktoAlertType alertType, ulong[] args);
 public void PostAlert(OktoAlertType alertType, ulong[] args)
 {
     // Push message to the sequential work queue for upcall into Policy Module.
     MessageAlert mAlert = new MessageAlert(alertType,args);
     RcWorkItem rcWorkItem = new RcWorkItem(RcWorkItemType.Alert, mAlert, 0, null);
     RcWorkQueue.Enqueue(rcWorkItem);
 }
Esempio n. 4
0
 public abstract void PostAlert(OktoAlertType alertType, ulong[] args);
Esempio n. 5
0
 /// <summary>
 /// Concurrent threads may ask us to handle an unsolicited alert.
 /// Push the alert to the RateController for threadsafe callback on our CallBackAlert() routine.
 /// The alert is serialized at source as if the caller was remote and TCP delivered the message.
 /// </summary>
 /// <param name="alertType"></param>
 /// <param name="args"></param>
 ///
 public override void PostAlert(OktoAlertType alertType, ulong[] args)
 {
     rateController.PostAlert(alertType, args);
 }
Esempio n. 6
0
 public MessageAlert()
     : base(0, 0, (byte)MessageTypes.MessageTypeAlert)
 {
     this.alertType = OktoAlertType.AlertUnused;
     Length = 0;
 }
Esempio n. 7
0
 public MessageAlert(OktoAlertType alertType, ulong[] args)
     : base(0, 0, (byte)MessageTypes.MessageTypeAlert)
 {
     this.alertType = alertType;
     this.args = args;
     // Message body is <AlertVec,argsLen,UInt64[argsLen]>.
     Length = (uint) ( 8 + 4 + (args.Length * 8));
 }