示例#1
0
        /// <summary>
        /// Asynchronously validate the Interest.
        /// </summary>
        ///
        /// <param name="interest">The Interest to validate, which is copied.</param>
        /// <param name="successCallback"></param>
        /// <param name="failureCallback">ValidationError.</param>
        public void validate(Interest interest,
                             InterestValidationSuccessCallback successCallback,
                             InterestValidationFailureCallback failureCallback)
        {
            InterestValidationState state = new InterestValidationState(interest,
                                                                        successCallback, failureCallback);

            logger_.log(ILOG.J2CsMapping.Util.Logging.Level.FINE, "Start validating interest {0}", interest
                        .getName().toUri());

            policy_.checkPolicy(interest, state,
                                new Validator.Anonymous_C2(this));
        }
        /// <summary>
        /// Create an InterestValidationState for the Data packet.
        /// The caller must ensure that the state instance is valid until the validation
        /// finishes (i.e., until validateCertificateChain() and
        /// validateOriginalPacket() have been called).
        /// </summary>
        ///
        /// <param name="interest">The Interest packet being validated, which is copied.</param>
        /// <param name="successCallback"></param>
        /// <param name="failureCallback">Interest validation, where error is a ValidationError.</param>
        public InterestValidationState(Interest interest,
                                       InterestValidationSuccessCallback successCallback,
                                       InterestValidationFailureCallback failureCallback)
        {
            this.successCallbacks_ = new ArrayList <InterestValidationSuccessCallback>();
            // Make a copy.
            interest_ = new Interest(interest);
            ILOG.J2CsMapping.Collections.Collections.Add(successCallbacks_, successCallback);
            failureCallback_ = failureCallback;

            if (successCallback == null)
            {
                throw new ArgumentException("The successCallback is null");
            }
            if (failureCallback_ == null)
            {
                throw new ArgumentException("The failureCallback is null");
            }
        }