NOT: Bu site kullanımdan kaldırılmıştır. Site 31 Ocak 2023'ten sonra kapatılacak ve trafik https://protobuf.dev adresindeki yeni siteye yönlendirilecek. Bu sırada, yalnızca protobuf.dev'de güncellemeler yapılacak.

Google.Protobuf.CodedÇıkış Akışı

Protokol mesajı alanlarını kodlayıp yazar.

Özet

Bu sınıf, oluşturulan kod tarafından genellikle akışa uygun temel öğeler yazmak için kullanılır. En düşük protokol arabelleği biçimi düzeylerini etkili şekilde kapsar. Diğer uygulamaların aksine bu seçenek birleşik etiket ve değer yazma yöntemlerini içermez. Oluşturulan kod, yazacak etiketlerin tam bayt temsillerini bilir. Dolayısıyla bunları her defasında yeniden kodlamanız gerekmez. Bu sınıfı çağıran manuel olarak yazılmış kod, her değerden önceki WriteTag aşırı yüklemelerinden birini çağırır.

Yinelenen alanlar ve harita alanları bu sınıf tarafından işlenmez. Bu tür alanları serileştirmek için RepeatedField ve MapField kullanın.

Devralma

Devralındığı kaynak: IDisposable

İnşaat Ustaları ve Yıkıcılar

CodedOutputStream(byte[] flatArray)
Doğrudan belirtilen bayt dizisine yazan yeni bir CodedExitStream oluşturur.
CodedOutputStream(Stream output)
Belirtilen akışa yazan yeni bir CodedExitStream oluşturur ve döndürülen CodedOutputStream imha edildiğinde söz konusu akışı yok eder.
CodedOutputStream(Stream output, int bufferSize)
Belirtilen akışa yazan ve belirtilen arabellek boyutunu kullanan yeni bir CodedExitStream oluşturur.
CodedOutputStream(Stream output, bool leaveOpen)
Belirtilen akışa yazan yeni bir CodedExitStream oluşturur.
CodedOutputStream(Stream output, int bufferSize, bool leaveOpen)
Belirtilen akışa yazan ve belirtilen arabellek boyutunu kullanan yeni bir CodedExitStream oluşturur.

Herkese açık statik özellikler

DefaultBufferSize = 4096
readonly int
CreateInstance(Stream) tarafından kullanılan arabellek boyutu.

Özellikler

Position
long
Akıştaki mevcut konumu veya çıkış arabelleğindeki konumu döndürür
SpaceLeft
int
Düz bir diziye yazıyorsanız dizide kalan alanı döndürür.

Herkese açık statik işlevler

ComputeBoolSize(bool value)
int
Etiket de dahil olmak üzere, bir Bool alanını kodlamak için gereken bayt sayısını hesaplar.
ComputeBytesSize(ByteString value)
int
Etiket dahil bir bayt alanını kodlamak için gereken bayt sayısını hesaplar.
ComputeDoubleSize(double value)
int
Etiket dahil olmak üzere bir çift alanı kodlamak için gereken bayt sayısını hesaplar.
ComputeEnumSize(int value)
int
Etiket dahil olmak üzere bir sıralama alanını kodlamak için gereken bayt sayısını hesaplar.
ComputeFixed32Size(uint value)
int
Etiket de dahil olmak üzere bir sabit 32 alanını kodlamak için gereken bayt sayısını hesaplar.
ComputeFixed64Size(ulong value)
int
Etiket dahil olmak üzere bir sabit 64 alanını kodlamak için gereken bayt sayısını hesaplar.
ComputeFloatSize(float value)
int
Bir kayan alanı kodlamak için gereken bayt sayısını (etiket dahil) hesaplar.
ComputeGroupSize(IMessage value)
int
Etiket de dahil olmak üzere bir grup alanını kodlamak için gereken bayt sayısını hesaplar.
ComputeInt32Size(int value)
int
Etiket dahil olmak üzere bir int32 alanını kodlamak için gereken bayt sayısını hesaplar.
ComputeInt64Size(long value)
int
Etiket dahil olmak üzere bir int64 alanını kodlamak için gereken bayt sayısını hesaplar.
ComputeLengthSize(int length)
int
WriteLength tarafından yazıldığı şekilde, bir uzunluğu kodlamak için gereken bayt sayısını hesaplar.
ComputeMessageSize(IMessage value)
int
Etiket dahil olmak üzere yerleştirilmiş bir mesaj alanını kodlamak için gereken bayt sayısını hesaplar.
ComputeRawVarint32Size(uint value)
int
Bir karakteri kodlamak için gereken bayt sayısını hesaplar.
ComputeRawVarint64Size(ulong value)
int
Bir karakteri kodlamak için gereken bayt sayısını hesaplar.
ComputeSFixed32Size(int value)
int
Sabit bir 32 alanını kodlamak için gereken bayt sayısını (etiket dahil) hesaplar.
ComputeSFixed64Size(long value)
int
Sabit bir 64 alanını kodlamak için gereken bayt sayısını (etiket dahil) hesaplar.
ComputeSInt32Size(int value)
int
Sint32 alanını kodlamak için gereken bayt sayısını (etiket dahil) hesaplar.
ComputeSInt64Size(long value)
int
Sint64 alanını kodlamak için gereken bayt sayısını (etiket dahil) hesaplar.
ComputeStringSize(String value)
int
Bir dize alanını (etiket dahil) kodlamak için gereken bayt sayısını hesaplar.
ComputeTagSize(int fieldNumber)
int
Bir etiketi kodlamak için gerekli olacak bayt sayısını hesaplar.
ComputeUInt32Size(uint value)
int
Etiket de dahil olmak üzere bir uint32 alanını kodlamak için gereken bayt sayısını hesaplar.
ComputeUInt64Size(ulong value)
int
Etiket dahil olmak üzere, bir uint64 alanını kodlamak için gereken bayt sayısını hesaplar.

Herkese açık işlevler

CheckNoSpaceLeft()
void
SpaceSol'un sıfır döndürdüğünü belirtir.
Dispose()
void
Arabelleğe alınan verileri temizler ve varsa temel akışı kapatır.
Flush()
void
Arabelleğe alınan verileri alttaki akışa temizler (varsa).
WriteBool(bool value)
void
Akışa etiket içermeyen bir Bool alan değeri yazar.
WriteBytes(ByteString value)
void
Akışa etiket içermeyen bir bayt dizesi yazın.
WriteDouble(double value)
void
Akışa etiket olmadan bir çift alan değeri yazar.
WriteEnum(int value)
void
Akışa enum değerini (etiket olmadan) yazar.
WriteFixed32(uint value)
void
Akışa etiket içermeyen sabit 32 alan değeri yazar.
WriteFixed64(ulong value)
void
Akışa etiket olmadan sabit bir 64 alan değeri yazar.
WriteFloat(float value)
void
Akışa etiket içermeyen bir kayan alan değeri yazar.
WriteInt32(int value)
void
Akışa etiket içermeyen bir int32 alan değeri yazar.
WriteInt64(long value)
void
Akışa etiket içermeyen bir int64 alan değeri yazar.
WriteLength(int length)
void
Uzunluk sınırı olan veriler için bir uzunluk (bayt cinsinden) yazar.
WriteMessage(IMessage value)
void
Akışa etiket olmadan bir mesaj yazar.
WriteRawTag(byte b1)
void
Belirtilen tek baytlık etiketi doğrudan akışa yazar.
WriteRawTag(byte b1, byte b2)
void
Belirtilen iki baytlık etiketi doğrudan akışa yazar.
WriteRawTag(byte b1, byte b2, byte b3)
void
Belirtilen üç baytlık etiketi doğrudan akışa yazar.
WriteRawTag(byte b1, byte b2, byte b3, byte b4)
void
Belirtilen dört baytlık etiketi doğrudan akışa yazar.
WriteRawTag(byte b1, byte b2, byte b3, byte b4, byte b5)
void
Belirtilen beş baytlık etiketi doğrudan akışa yazar.
WriteSFixed32(int value)
void
Akışa etiket içermeyen bir sfixed32 değeri yazar.
WriteSFixed64(long value)
void
Akışa etiket içermeyen sfixed64 değeri yazar.
WriteSInt32(int value)
void
Akışa etiket olmadan bir sint32 değeri yazar.
WriteSInt64(long value)
void
Akışa etiketsiz bir sint64 değeri yazar.
WriteString(string value)
void
Akışa etiket içermeyen bir dize alanı değeri yazar.
WriteTag(int fieldNumber, WireFormat.WireType type)
void
Etiketi kodlayıp yazar.
WriteTag(uint tag)
void
Daha önce kodlanmış bir etiket yazar.
WriteUInt32(uint value)
void
Akışa etiket olmadan bir uint32 değeri yazar.
WriteUInt64(ulong value)
void
Akışa etiket olmadan bir uint64 alan değeri yazar.

Sınıflar

Google.Protobuf.CodedÇıkış Akışı.OutOfSpaceException

Düz bayt dizisi sarmalayan bir CodedÇıkış Akışı'nda boş alan kalmadığını belirtir.

Herkese açık statik özellikler

VarsayılanBufferSize

readonly int DefaultBufferSize = 4096

CreateInstance(Stream) tarafından kullanılan arabellek boyutu.

Özellikler

Konum

long Position

Akıştaki mevcut konumu veya çıkış arabelleğindeki konumu döndürür

Boşluk

int SpaceLeft

Düz bir diziye yazıyorsanız dizide kalan alanı döndürür.

Aksi takdirde bir InvalidOperationException oluşturur.

Herkese açık statik işlevler

ComputeBoolSize

int ComputeBoolSize(
  bool value
)

Etiket de dahil olmak üzere, bir Bool alanını kodlamak için gereken bayt sayısını hesaplar.

ComputeBytesSize

int ComputeBytesSize(
  ByteString value
)

Etiket dahil bir bayt alanını kodlamak için gereken bayt sayısını hesaplar.

ComputeDoubleSize

int ComputeDoubleSize(
  double value
)

Etiket dahil olmak üzere bir çift alanı kodlamak için gereken bayt sayısını hesaplar.

ComputeEnumSize

int ComputeEnumSize(
  int value
)

Etiket dahil olmak üzere bir sıralama alanını kodlamak için gereken bayt sayısını hesaplar.

Arayan, sayısal değerin sayısal değerine dönüştürülmesinden sorumludur.

ComputeFixed32Boyutu

int ComputeFixed32Size(
  uint value
)

Etiket de dahil olmak üzere bir sabit 32 alanını kodlamak için gereken bayt sayısını hesaplar.

ComputeFixed64Boyut

int ComputeFixed64Size(
  ulong value
)

Etiket dahil olmak üzere bir sabit 64 alanını kodlamak için gereken bayt sayısını hesaplar.

ComputeKaydırma Boyutu

int ComputeFloatSize(
  float value
)

Bir kayan alanı kodlamak için gereken bayt sayısını (etiket dahil) hesaplar.

İşlemGrubu Boyutu

int ComputeGroupSize(
  IMessage value
)

Etiket de dahil olmak üzere bir grup alanını kodlamak için gereken bayt sayısını hesaplar.

ComputeInt32Boyutu

int ComputeInt32Size(
  int value
)

Etiket dahil olmak üzere bir int32 alanını kodlamak için gereken bayt sayısını hesaplar.

ComputeInt64 Boyutu

int ComputeInt64Size(
  long value
)

Etiket dahil olmak üzere bir int64 alanını kodlamak için gereken bayt sayısını hesaplar.

İşlemSüresiBoyutu

int ComputeLengthSize(
  int length
)

WriteLength tarafından yazıldığı şekilde, bir uzunluğu kodlamak için gereken bayt sayısını hesaplar.

ComputeMesaj Boyutu

int ComputeMessageSize(
  IMessage value
)

Etiket dahil olmak üzere yerleştirilmiş bir mesaj alanını kodlamak için gereken bayt sayısını hesaplar.

ComputeRawVarint32Boyutu

int ComputeRawVarint32Size(
  uint value
)

Bir karakteri kodlamak için gereken bayt sayısını hesaplar.

ComputeRawVarint64Boyutu

int ComputeRawVarint64Size(
  ulong value
)

Bir karakteri kodlamak için gereken bayt sayısını hesaplar.

ComputeSFixed32Boyut

int ComputeSFixed32Size(
  int value
)

Sabit bir 32 alanını kodlamak için gereken bayt sayısını (etiket dahil) hesaplar.

ComputeSFixed64Boyut

int ComputeSFixed64Size(
  long value
)

Sabit bir 64 alanını kodlamak için gereken bayt sayısını (etiket dahil) hesaplar.

ComputeSInt32Boyutu

int ComputeSInt32Size(
  int value
)

Sint32 alanını kodlamak için gereken bayt sayısını (etiket dahil) hesaplar.

ComputeSInt64Boyutu

int ComputeSInt64Size(
  long value
)

Sint64 alanını kodlamak için gereken bayt sayısını (etiket dahil) hesaplar.

İşlem Dizesi Boyutu

int ComputeStringSize(
  String value
)

Bir dize alanını (etiket dahil) kodlamak için gereken bayt sayısını hesaplar.

ComputeTagSize

int ComputeTagSize(
  int fieldNumber
)

Bir etiketi kodlamak için gerekli olacak bayt sayısını hesaplar.

ComputeUInt32Boyutu

int ComputeUInt32Size(
  uint value
)

Etiket de dahil olmak üzere bir uint32 alanını kodlamak için gereken bayt sayısını hesaplar.

ComputeUInt64Boyutu

int ComputeUInt64Size(
  ulong value
)

Etiket dahil olmak üzere, bir uint64 alanını kodlamak için gereken bayt sayısını hesaplar.

Herkese açık işlevler

CheckNoSpaceSolu

void CheckNoSpaceLeft()

SpaceSol'un sıfır döndürdüğünü belirtir.

Tam olarak mesajı kapsayacak kadar büyük bir bayt dizisi oluşturmak, ardından bu diziye bir CodedoutputStream ile yazmak yaygın bir durumdur. Yazmadan sonra CheckNoSpaceleft işlevini çağırmak, iletinin gerçekten beklendiği kadar büyük olduğunu gösterir. Bu durum hatalara yardımcı olabilir.

Kodlu ÇıkışAkışı

 CodedOutputStream(
  byte[] flatArray
)

Doğrudan belirtilen bayt dizisine yazan yeni bir CodedExitStream oluşturur.

Diziye sığmayacak kadar fazla bayt yazılırsa OutOfSpaceException atılır.

Kodlu ÇıkışAkışı

 CodedOutputStream(
  Stream output
)

Belirtilen akışa yazan yeni bir CodedExitStream oluşturur ve döndürülen CodedOutputStream imha edildiğinde söz konusu akışı yok eder.

Ayrıntılar
Parametreler
output
Yazı yazılacak akış. İade edildiğinde CodedOutputStream is disposed. imha edilecek

Kodlu ÇıkışAkışı

 CodedOutputStream(
  Stream output,
  int bufferSize
)

Belirtilen akışa yazan ve belirtilen arabellek boyutunu kullanan yeni bir CodedExitStream oluşturur.

Ayrıntılar
Parametreler
output
Yazı yazılacak akış. İade edildiğinde CodedOutputStream is disposed. imha edilecek
bufferSize
Dahili olarak kullanılacak arabellek boyutu.

Kodlu ÇıkışAkışı

 CodedOutputStream(
  Stream output,
  bool leaveOpen
)

Belirtilen akışa yazan yeni bir CodedExitStream oluşturur.

Ayrıntılar
Parametreler
output
Yazı yazılacak akış.
leaveOpen
İade edilen CodedOutputStream imha edildiğinde true, çıkış açık bırakılır; false ise sağlanan akış da imha edilir.

Kodlu ÇıkışAkışı

 CodedOutputStream(
  Stream output,
  int bufferSize,
  bool leaveOpen
)

Belirtilen akışa yazan ve belirtilen arabellek boyutunu kullanan yeni bir CodedExitStream oluşturur.

Ayrıntılar
Parametreler
output
Yazı yazılacak akış.
bufferSize
Dahili olarak kullanılacak arabellek boyutu.
leaveOpen
İade edilen CodedOutputStream imha edildiğinde true, çıkış açık bırakılır; false ise sağlanan akış da imha edilir.

İmha

void Dispose()

Arabelleğe alınan verileri temizler ve varsa temel akışı kapatır.

Varsayılan olarak, kullanılan tüm akışlar bu yöntemle kapatılır. Bu davranışı yapılandırmak için leaveOpen parametresiyle bir oluşturucu aşırı yüklemesi kullanın. Bu örneğin bir temel akışı yoksa bu yöntem hiçbir şey yapmaz.

Verimlilik açısından, bu yöntemin çağrılması gelecekteki çağrıların engellenmesini sağlamaz. Ancak, daha sonraki bir yazma işlemi atılmış bir akışa yazılırsa işlem büyük olasılıkla başarısız olur. Bundan sonra başka bir yöntem çağırmamanızı öneririz.

Sifonlu

void Flush()

Arabelleğe alınan verileri alttaki akışa temizler (varsa).

Yazma Bool

void WriteBool(
  bool value
)

Akışa etiket içermeyen bir Bool alan değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

Yazma Baytları

void WriteBytes(
  ByteString value
)

Akışa etiket içermeyen bir bayt dizesi yazın.

Verilere önek eklenmiş.

Ayrıntılar
Parametreler
value
Yazılacak değer

Çifte Yaz

void WriteDouble(
  double value
)

Akışa etiket olmadan bir çift alan değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

YazmaEnum

void WriteEnum(
  int value
)

Akışa enum değerini (etiket olmadan) yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

Düzeltilmiş33

void WriteFixed32(
  uint value
)

Akışa etiket içermeyen sabit 32 alan değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

Düzeltilmiş664

void WriteFixed64(
  ulong value
)

Akışa etiket olmadan sabit bir 64 alan değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

Kayan Yazı

void WriteFloat(
  float value
)

Akışa etiket içermeyen bir kayan alan değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

Yazma için Giriş32

void WriteInt32(
  int value
)

Akışa etiket içermeyen bir int32 alan değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

Yazma için Giriş64

void WriteInt64(
  long value
)

Akışa etiket içermeyen bir int64 alan değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

YazmaUzunluğu

void WriteLength(
  int length
)

Uzunluk sınırı olan veriler için bir uzunluk (bayt cinsinden) yazar.

Bu yöntem yalnızca bir hamur yazar, ancak çağrı kodunu netleştirmek için mevcuttur.

Ayrıntılar
Parametreler
length
Bayt cinsinden uzunluk değeri.

Mesaj Mesajı

void WriteMessage(
  IMessage value
)

Akışa etiket olmadan bir mesaj yazar.

Verilere önek eklenmiş.

Ayrıntılar
Parametreler
value
Yazılacak değer

Yazma Etiketi

void WriteRawTag(
  byte b1
)

Belirtilen tek baytlık etiketi doğrudan akışa yazar.

Ayrıntılar
Parametreler
b1
Kodlanan etiket

Yazma Etiketi

void WriteRawTag(
  byte b1,
  byte b2
)

Belirtilen iki baytlık etiketi doğrudan akışa yazar.

Ayrıntılar
Parametreler
b1
Kodlanan etiketin ilk baytı
b2
Kodlanan etiketin ikinci baytı

Yazma Etiketi

void WriteRawTag(
  byte b1,
  byte b2,
  byte b3
)

Belirtilen üç baytlık etiketi doğrudan akışa yazar.

Ayrıntılar
Parametreler
b1
Kodlanan etiketin ilk baytı
b2
Kodlanan etiketin ikinci baytı
b3
Kodlanan etiketin üçüncü baytı

Yazma Etiketi

void WriteRawTag(
  byte b1,
  byte b2,
  byte b3,
  byte b4
)

Belirtilen dört baytlık etiketi doğrudan akışa yazar.

Ayrıntılar
Parametreler
b1
Kodlanan etiketin ilk baytı
b2
Kodlanan etiketin ikinci baytı
b3
Kodlanan etiketin üçüncü baytı
b4
Kodlanan etiketin dördüncü baytı

Yazma Etiketi

void WriteRawTag(
  byte b1,
  byte b2,
  byte b3,
  byte b4,
  byte b5
)

Belirtilen beş baytlık etiketi doğrudan akışa yazar.

Ayrıntılar
Parametreler
b1
Kodlanan etiketin ilk baytı
b2
Kodlanan etiketin ikinci baytı
b3
Kodlanan etiketin üçüncü baytı
b4
Kodlanan etiketin dördüncü baytı
b5
Kodlanan etiketin beşinci baytı

YazmaSabiti32

void WriteSFixed32(
  int value
)

Akışa etiket içermeyen bir sfixed32 değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer.

YazmaSabiti66

void WriteSFixed64(
  long value
)

Akışa etiket içermeyen sfixed64 değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

Metin 32

void WriteSInt32(
  int value
)

Akışa etiket olmadan bir sint32 değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

Metin 64

void WriteSInt64(
  long value
)

Akışa etiketsiz bir sint64 değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

Yazma Dizesi

void WriteString(
  string value
)

Akışa etiket içermeyen bir dize alanı değeri yazar.

Verilere önek eklenmiş.

Ayrıntılar
Parametreler
value
Yazılacak değer

YazmaEtiketi

void WriteTag(
  int fieldNumber,
  WireFormat.WireType type
)

Etiketi kodlayıp yazar.

Ayrıntılar
Parametreler
fieldNumber
Etiketi yazılacak alanın sayısı
type
Yazılacak etiketin kablo biçimi türü

YazmaEtiketi

void WriteTag(
  uint tag
)

Daha önce kodlanmış bir etiket yazar.

Ayrıntılar
Parametreler
tag
Kodlanan etiket

YazmaUInt3

void WriteUInt32(
  uint value
)

Akışa etiket olmadan bir uint32 değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer

Yazma Arayüzü66

void WriteUInt64(
  ulong value
)

Akışa etiket olmadan bir uint64 alan değeri yazar.

Ayrıntılar
Parametreler
value
Yazılacak değer