private unsafe void BroCompactEventCallBack(IntPtr bc, IntPtr user_data, bro_ev_meta *meta) #endif { // Bail out if we didn't get a meta structure or event name if (meta == null || meta->ev_name == IntPtr.Zero) { return; } // Create new BroEventArgs from call-back metadata BroEventArgs args = new BroEventArgs(); bro_ev_arg arg; args.EventName = Marshal.PtrToStringAnsi(meta->ev_name); args.EventTime = new BroTime(meta->ev_ts); // Get any user data passed to the call-back for the specified event name lock (m_userData) { object userData; if (m_userData.TryGetValue(args.EventName, out userData)) { args.UserData = userData; } } args.Parameters = new BroValue[meta->ev_numargs]; for (int i = 0; i < args.Parameters.Length; i++) { arg = meta->ev_args[i]; args.Parameters[i] = BroValue.CreateFromPtr(arg.arg_data, arg.arg_type); } OnReceivedEvent(args); }
// Call-back handler for Bro compact event function #if USE_SAFE_HANDLES private unsafe void BroCompactEventCallBack(BroConnectionPtr bc, IntPtr user_data, bro_ev_meta *meta)