Google. Protobuf. WellknownTypes. Tümü
Any
, serileştirilmiş mesajın türünü açıklayan bir URL ile birlikte rastgele serileştirilmiş protokol arabelleği mesajı içerir.
Özet
Protobuf kitaplığı, Herhangi bir değeri yardımcı program işlevleri veya Herhangi biri türünde oluşturulan ek yöntemlerle paketleme veya paketten çıkarma desteği sağlar.
1. Örnek: C++ ürününde bir iletiyi paketleyin ve paketinden çıkarın.
Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... }
2. Örnek: Java'da bir iletiyi paketleyin ve paketinden çıkarın.
Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
3. Örnek: Python'da bir mesajı paketleyin ve paketinden çıkarın.
foo = Foo(...) Herhangi bir = Herhangi bir().
protobuf kitaplığı tarafından sağlanan paket yöntemleri, varsayılan olarak tür URL'si olarak "type.googleapis.com/full.type.name" kullanılır. Paket açma yöntemleri ise sadece tür URL'sindeki son "/" karakterinden sonra tam nitelikli adı kullanır (örneğin, "foo.bar.com/x/y.z" "y.z").
JSON
Bir Any
değerinin JSON gösterimi, türetilmiş, yerleştirilmiş mesajın normal temsilini kullanır ve @type
URL'sini içeren ek bir alan içerir. Örnek:
package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": <string>, "lastName": <string> }
Yerleştirilmiş mesaj türü iyi biliniyorsa ve özel bir JSON temsili içeriyorsa bu temsil, @type
alanına ek olarak özel JSON barındıran value
alanı eklenerek yerleştirilir. Örnek ([google.protobuf.Süre][] mesajı için):
{ "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" }
Devralma
Devralındığı kaynak: pb::IMessage< Herhangi bir >
İnşaat Ustaları ve Yıkıcılar |
|
---|---|
Any()
|
|
Any(Any other)
|
Özellikler |
|
---|---|
Descriptor
|
pbr::MessageDescriptor
|
Descriptor
|
pbr::MessageDescriptor pb::IMessage.
|
Parser
|
pb::MessageParser< Any >
|
TypeUrl
|
string
İçeriği, serileştirilmiş protokol arabelleği mesajının türünü açıklayan URL/kaynak adı.
|
Value
|
pb::ByteString
Yukarıda belirtilen türde geçerli bir serileştirilmiş protokol arabelleği olmalıdır.
|
Herkese açık özellikler |
|
---|---|
TypeUrlFieldNumber = 1
|
const int
"type_url" alanı için alan numarası.
|
ValueFieldNumber = 2
|
const int
"Değer" alanı için alan numarası.
|
Herkese açık işlevler |
|
---|---|
CalculateSize()
|
int
|
Clone()
|
|
Equals(object other)
|
override bool
|
Equals(Any other)
|
bool
|
GetHashCode()
|
override int
|
MergeFrom(Any other)
|
void
|
MergeFrom(pb::CodedInputStream input)
|
void
|
ToString()
|
override string
|
Unpack< T >()
|
T
Bu Tümü mesajının içeriğini hedef mesaj türüne açar. Bu mesaj, bu Herhangi biri mesajındaki tür URL'si ile eşleşmelidir.
|
WriteTo(pb::CodedOutputStream output)
|
void
|
Herkese açık statik işlevler |
|
---|---|
Pack(IMessage message)
|
Belirtilen mesajı "type.googleapis.com" türünde bir URL ön eki kullanarak Herhangi biri mesajına gönderir.
|
Pack(IMessage message, string typeUrlPrefix)
|
Belirtilen mesajı, belirtilen tür bir URL ön ekini kullanarak Herhangi bir mesaja dönüştürür.
|
Özellikler
Açıklayıcı
pbr::MessageDescriptor Descriptor
Açıklayıcı
pbr::MessageDescriptor pb::IMessage. Descriptor
Ayrıştırıcı
pb::MessageParser< Any > Parser
Tür URL'si
string TypeUrl
İçeriği, serileştirilmiş protokol arabelleği mesajının türünü açıklayan URL/kaynak adı.
http
, https
şemasını kullanan veya şema kullanmayan URL'ler için aşağıdaki kısıtlamalar ve yorumlar geçerlidir:
- Herhangi bir şema sağlanmazsa
https
olduğu varsayılır. - URL yolunun son segmenti, türün tam adını (
path/google.protobuf.Duration
gibi) temsil etmelidir. Ad standart bir biçimde olmalıdır (ör. baştaki "." kabul edilmez). - URL'deki bir HTTP GET'i ikili biçimde [google.protobuf.Type][] değeri sağlamalı veya hata vermelidir.
- Uygulamaların, URL'ye dayalı olarak arama sonuçlarını önbelleğe almasına veya hiçbir arama yapılmaması için bunların önceden derlenmiş bir ikili program haline getirilmesine izin verilir. Bu nedenle, türlerdeki değişikliklerle ilgili ikili program uyumluluğunun korunması gerekir. (Döküm değişikliklerini yönetmek için sürüm oluşturulmuş tür adlarını kullanın.)
http
, https
(veya boş şema) dışındaki şemalar uygulamaya özgü semantiklerle kullanılabilir.
Değer
pb::ByteString Value
Yukarıda belirtilen türde geçerli bir serileştirilmiş protokol arabelleği olmalıdır.
Herkese açık özellikler
Herkese açık işlevler
Hepsi
Any()
Hepsi
Any( Any other )
Hesap Boyutu
int CalculateSize()
Klonla
Any Clone()
Şuna eşittir:
override bool Equals( object other )
Şuna eşittir:
bool Equals( Any other )
GetHashCode'u
override int GetHashCode()
Birleştirme Kaynağı
void MergeFrom( Any other )
Birleştirme Kaynağı
void MergeFrom( pb::CodedInputStream input )
Dize
override string ToString()
Paketi Aç< T >
T Unpack< T >()
Bu Tümü mesajının içeriğini hedef mesaj türüne açar. Bu mesaj, bu Herhangi biri mesajındaki tür URL'si ile eşleşmelidir.
Ayrıntılar | |||
---|---|---|---|
Şablon Parametreleri |
|
||
İstisnalar |
|
||
İadeler |
Paketlenmemiş ileti.
|
Yazma
void WriteTo( pb::CodedOutputStream output )
Herkese açık statik işlevler
Paket
Any Pack( IMessage message )
Belirtilen mesajı "type.googleapis.com" türünde bir URL ön eki kullanarak Herhangi biri mesajına gönderir.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
||
İadeler |
İçeriği ve mesaj URL'sini içeren herhangi bir mesaj .
|
Paket
Any Pack( IMessage message, string typeUrlPrefix )
Belirtilen mesajı, belirtilen tür bir URL ön ekini kullanarak Herhangi bir mesaja dönüştürür.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
İadeler |
İçeriği ve mesaj URL'sini içeren herhangi bir mesaj.
|