Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencapai Fungsi I/O Terhad dalam Penampan Protokol C?

Bagaimana untuk Mencapai Fungsi I/O Terhad dalam Penampan Protokol C?

Barbara Streisand
Lepaskan: 2024-12-29 09:24:15
asal
640 orang telah melayarinya

How to Achieve Delimited I/O Functionality in C   Protocol Buffers?

Kesamaan Fungsi I/O Terhad dalam C

Dalam Penampan Protokol, selalunya perlu membaca atau menulis berbilang mesej daripada fail atau strim. Untuk memastikan pengendalian sempadan mesej yang betul, awalan panjang boleh ditambah sebelum setiap mesej. API Java, bermula dari versi 2.1.0, menawarkan satu set fungsi I/O "Terhad" (parseDelimitedFrom, mergeDelimitedFrom, dan writeDelimitedTo) untuk memudahkan proses ini.

C Setara

Sehingga Protobuf versi 3.3.0, terdapat C setara untuk fungsi I/O terhad yang terdapat dalam Java API. Fungsi ini boleh didapati dalam fail pengepala berikut:

google/protobuf/util/delimited_message_util.h
Salin selepas log masuk

Fungsi adalah seperti berikut:

bool writeDelimitedTo(const google::protobuf::MessageLite& message, google::protobuf::io::ZeroCopyOutputStream* rawOutput);
bool readDelimitedFrom(google::protobuf::io::ZeroCopyInputStream* rawInput, google::protobuf::MessageLite* message);
Salin selepas log masuk

Pelaksanaan

Yang berikut pelaksanaan yang dioptimumkan bagi fungsi I/O yang dibataskan untuk C telah disediakan oleh pengarang perpustakaan protobuf C dan Java. Mereka menangani beberapa isu yang terdapat dalam pelaksanaan alternatif:

bool writeDelimitedTo(const google::protobuf::MessageLite& message, google::protobuf::io::ZeroCopyOutputStream* rawOutput) {
  // ...
}

bool readDelimitedFrom(google::protobuf::io::ZeroCopyInputStream* rawInput, google::protobuf::MessageLite* message) {
  // ...
}
Salin selepas log masuk

Pelaksanaan ini termasuk pengoptimuman yang meminimumkan salinan dan mengelakkan kemungkinan ralat selepas memproses sejumlah besar data. Selain itu, tidak seperti pelaksanaan lain, fungsi ini menguatkuasakan had saiz berdasarkan setiap mesej dan bukannya pada keseluruhan strim.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Fungsi I/O Terhad dalam Penampan Protokol C?. 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