Tôi muốn sử dụng protobuf với dự án C++ mà tôi đang làm việc. Tuy nhiên, tôi không thích làm việc với các lớp được tạo tự động mà protoc tạo ra và thích gắn bó với các POCO mà tôi đã có. Điều này là do các POCO đã được sử dụng trong các phần khác của mã và tôi muốn có thể chuyển đổi cơ chế tuần tự một cách dễ dàng sau này. Nhưng việc viết các trình biến đổi thủ công giữa các lớp thông báo POCO và các lớp thông điệp protobuf có vẻ tẻ nhạt và sai.Làm việc với protobuf và POCO trong C++
Tôi muốn biết nếu có cách nào để sử dụng protobuf để tạo bộ nối tiếp - một lớp được tạo tự động sẽ có thể tuần tự hóa và deserialize các POCO của tôi, mà không làm phiền tôi với nội bộ.
Cảm ơn.
Bạn có thể viết POCO trực tiếp vào dây/đĩa không? Tất nhiên điều này sẽ không hoạt động nếu chúng chứa các con trỏ .... –
Các POCO của tôi chứa các kiểu nguyên thủy, các chuỗi, các con trỏ tới các POCO và vectơ khác ở trên. Con trỏ cũng sẽ cần được xử lý (ví dụ bằng cách tuần tự hóa đối tượng nhọn và tham chiếu nó với một số id). Viết trực tiếp là serializing, tôi có thể làm điều đó bằng tay, tôi chỉ cố gắng tìm một cách để tránh nó. – Vadim
Avro (http://avro.apache.org/) có thể gần hơn với những gì bạn muốn (hoặc nó sẽ là trong java). Ngoài ra với Protocol Buffers bạn không bị giới hạn trong phiên bản chính thức; bạn có thể viết trình tạo mã của riêng bạn. Có một phiên bản C/C++ khác https://sourceforge.net/projects/spbc/files/spbc/spbc-1.0.1/ được liệt kê. Nó đã không được thay đổi trong 4 năm như vậy sẽ bị lỗi thời –