예제 #1
0
        public CodeRequirementBlob(byte[] buffer, int offset)
        {
            uint length = BigEndianConverter.ToUInt32(buffer, offset + 4);

            Kind       = BigEndianConverter.ToUInt32(buffer, offset + 8);
            offset    += 12;
            Expression = RequirementExpression.ReadExpression(buffer, ref offset);
        }
예제 #2
0
 public void WriteBytes(byte[] buffer, ref int offset)
 {
     BigEndianWriter.WriteUInt32(buffer, ref offset, (uint)MatchOperation);
     if (MatchOperation != MatchOperationName.Exists)
     {
         RequirementExpression.WriteAnsiString(buffer, ref offset, MatchValue);
     }
 }
예제 #3
0
 public MatchSuffix(byte[] buffer, ref int offset)
 {
     MatchOperation = (MatchOperationName)BigEndianReader.ReadUInt32(buffer, ref offset);
     if (MatchOperation != MatchOperationName.Exists)
     {
         MatchValue = RequirementExpression.ReadAnsiString(buffer, ref offset);
     }
 }
예제 #4
0
 public OrExpression(byte[] buffer, ref int offset)
 {
     Expression1 = ReadExpression(buffer, ref offset);
     Expression2 = ReadExpression(buffer, ref offset);
 }
예제 #5
0
 public OrExpression(RequirementExpression expression1, RequirementExpression expression2)
 {
     Expression1 = expression1;
     Expression2 = expression2;
 }
예제 #6
0
 public NotExpression(byte[] buffer, ref int offset)
 {
     Expression = ReadExpression(buffer, ref offset);
 }
예제 #7
0
 public NotExpression(RequirementExpression expression)
 {
     Expression = expression;
 }