IFieldAccessor.cs 1019 B

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace Google.ProtocolBuffers.FieldAccess {
  5. internal interface IFieldAccessor<TMessage, TBuilder>
  6. where TMessage : IMessage<TMessage>
  7. where TBuilder : IBuilder<TMessage> {
  8. void AddRepeated(IBuilder<TMessage> builder, object value);
  9. bool Has(IMessage<TMessage> message);
  10. int GetRepeatedCount(IMessage<TMessage> message);
  11. void Clear(TBuilder builder);
  12. TBuilder CreateBuilder();
  13. /// <summary>
  14. /// Accessor for single fields
  15. /// </summary>
  16. object this[IMessage<TMessage> message] { get; }
  17. /// <summary>
  18. /// Mutator for single fields
  19. /// </summary>
  20. object this[IBuilder<TMessage> builder] { set; }
  21. /// <summary>
  22. /// Accessor for repeated fields
  23. /// </summary>
  24. object this[IMessage<TMessage> message, int index] { get; }
  25. /// <summary>
  26. /// Mutator for repeated fields
  27. /// </summary>
  28. object this[IBuilder<TMessage> builder, int index] { set; }
  29. }
  30. }