/// <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); }
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); }
public MessageAlert() : base(0, 0, (byte)MessageTypes.MessageTypeAlert) { this.alertType = OktoAlertType.AlertUnused; Length = 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)); }