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. |
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 |
|
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 |
|
Kodlu ÇıkışAkışı
CodedOutputStream( Stream output, bool leaveOpen )
Belirtilen akışa yazan yeni bir CodedExitStream oluşturur.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
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 |
|
İ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 |
|
Yazma Baytları
void WriteBytes( ByteString value )
Akışa etiket içermeyen bir bayt dizesi yazın.
Verilere önek eklenmiş.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Çifte Yaz
void WriteDouble( double value )
Akışa etiket olmadan bir çift alan değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
YazmaEnum
void WriteEnum( int value )
Akışa enum değerini (etiket olmadan) yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Düzeltilmiş33
void WriteFixed32( uint value )
Akışa etiket içermeyen sabit 32 alan değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Düzeltilmiş664
void WriteFixed64( ulong value )
Akışa etiket olmadan sabit bir 64 alan değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Kayan Yazı
void WriteFloat( float value )
Akışa etiket içermeyen bir kayan alan değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Yazma için Giriş32
void WriteInt32( int value )
Akışa etiket içermeyen bir int32 alan değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Yazma için Giriş64
void WriteInt64( long value )
Akışa etiket içermeyen bir int64 alan değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
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 |
|
Mesaj Mesajı
void WriteMessage( IMessage value )
Akışa etiket olmadan bir mesaj yazar.
Verilere önek eklenmiş.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Yazma Etiketi
void WriteRawTag( byte b1 )
Belirtilen tek baytlık etiketi doğrudan akışa yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Yazma Etiketi
void WriteRawTag( byte b1, byte b2 )
Belirtilen iki baytlık etiketi doğrudan akışa yazar.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
Yazma Etiketi
void WriteRawTag( byte b1, byte b2, byte b3 )
Belirtilen üç baytlık etiketi doğrudan akışa yazar.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
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 |
|
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 |
|
YazmaSabiti32
void WriteSFixed32( int value )
Akışa etiket içermeyen bir sfixed32 değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
YazmaSabiti66
void WriteSFixed64( long value )
Akışa etiket içermeyen sfixed64 değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Metin 32
void WriteSInt32( int value )
Akışa etiket olmadan bir sint32 değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Metin 64
void WriteSInt64( long value )
Akışa etiketsiz bir sint64 değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Yazma Dizesi
void WriteString( string value )
Akışa etiket içermeyen bir dize alanı değeri yazar.
Verilere önek eklenmiş.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
YazmaEtiketi
void WriteTag( int fieldNumber, WireFormat.WireType type )
Etiketi kodlayıp yazar.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
YazmaEtiketi
void WriteTag( uint tag )
Daha önce kodlanmış bir etiket yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
YazmaUInt3
void WriteUInt32( uint value )
Akışa etiket olmadan bir uint32 değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
Yazma Arayüzü66
void WriteUInt64( ulong value )
Akışa etiket olmadan bir uint64 alan değeri yazar.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|