public static ClaimPredicate Decode(XdrDataInputStream stream) { ClaimPredicate decodedClaimPredicate = new ClaimPredicate(); ClaimPredicateType discriminant = ClaimPredicateType.Decode(stream); decodedClaimPredicate.Discriminant = discriminant; switch (decodedClaimPredicate.Discriminant.InnerValue) { case ClaimPredicateType.ClaimPredicateTypeEnum.CLAIM_PREDICATE_UNCONDITIONAL: break; case ClaimPredicateType.ClaimPredicateTypeEnum.CLAIM_PREDICATE_AND: int andPredicatessize = stream.ReadInt(); decodedClaimPredicate.AndPredicates = new ClaimPredicate[andPredicatessize]; for (int i = 0; i < andPredicatessize; i++) { decodedClaimPredicate.AndPredicates[i] = ClaimPredicate.Decode(stream); } break; case ClaimPredicateType.ClaimPredicateTypeEnum.CLAIM_PREDICATE_OR: int orPredicatessize = stream.ReadInt(); decodedClaimPredicate.OrPredicates = new ClaimPredicate[orPredicatessize]; for (int i = 0; i < orPredicatessize; i++) { decodedClaimPredicate.OrPredicates[i] = ClaimPredicate.Decode(stream); } break; case ClaimPredicateType.ClaimPredicateTypeEnum.CLAIM_PREDICATE_NOT: int NotPredicatePresent = stream.ReadInt(); if (NotPredicatePresent != 0) { decodedClaimPredicate.NotPredicate = ClaimPredicate.Decode(stream); } break; case ClaimPredicateType.ClaimPredicateTypeEnum.CLAIM_PREDICATE_BEFORE_ABSOLUTE_TIME: decodedClaimPredicate.AbsBefore = Int64.Decode(stream); break; case ClaimPredicateType.ClaimPredicateTypeEnum.CLAIM_PREDICATE_BEFORE_RELATIVE_TIME: decodedClaimPredicate.RelBefore = Int64.Decode(stream); break; } return(decodedClaimPredicate); }
public static void Encode(XdrDataOutputStream stream, ClaimPredicateType value) { stream.WriteInt((int)value.InnerValue); }