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
230 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!

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