Rumah > pembangunan bahagian belakang > C++ > C Protocol Buffer Delimited I/O: Adakah Terdapat Fungsi Setara Java?

C Protocol Buffer Delimited I/O: Adakah Terdapat Fungsi Setara Java?

Barbara Streisand
Lepaskan: 2024-12-05 00:32:12
asal
207 orang telah melayarinya

C   Protocol Buffer Delimited I/O: Are There Java-Equivalent Functions?

Fungsi I/O Terhad Penampan Protokol: Setara C?

Dalam percubaan untuk membaca dan menulis berbilang mesej Penampan Protokol daripada fail menggunakan kedua-dua C dan Java, ia mempunyai telah diperhatikan bahawa Java menyediakan satu set fungsi I/O "Terhad" untuk tujuan ini. Walau bagaimanapun, ia masih tidak pasti jika C menawarkan fungsi yang serupa.

Fungsi Java API ialah:

  • parseDelimitedFrom
  • mergeDelimitedFrom
  • writeDelimitedTo
C Setara

Sehingga versi 3.3.0, Google telah menangani isu ini dengan memperkenalkan setara C berikut dalam google/protobuf/util/delimited_message_util.h:

bool writeDelimitedTo(
    const google::protobuf::MessageLite& message,
    google::protobuf::io::ZeroCopyOutputStream* rawOutput) {
  // Code to write delimited messages
}

bool readDelimitedFrom(
    google::protobuf::io::ZeroCopyInputStream* rawInput,
    google::protobuf::MessageLite* message) {
  // Code to read delimited messages
}
Salin selepas log masuk
Format Wayar untuk Saiz Java Awalan

Bagi mereka yang ingin menghuraikan awalan saiz mesej dalam C tanpa menggunakan pustaka rasmi, format wayar adalah seperti berikut:

    Saiz mesej diwakili sebagai integer panjang boleh ubah 32-bit.
  1. Satu bait ditambah selepas saiz untuk memastikan keserasian ke belakang.
  2. Data mesej dilampirkan selepas saiz dan keserasian byte.
Pengoptimuman

Pelaksanaan C yang disediakan termasuk pengoptimuman yang tiada daripada respons lain. Pengoptimuman ini memastikan bahawa fungsi:

    Jangan gagal selepas 64MB input.
  • Kuatkuasakan had 64MB pada setiap mesej individu.
  • Gunakan terus yang lebih pantas- laluan bersiri susun atur apabila boleh.

Atas ialah kandungan terperinci C Protocol Buffer Delimited I/O: Adakah Terdapat Fungsi Setara Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan