-2
我想解析存储在sqlite数据库中的协议缓冲区文件。我对流的了解不多,所以我被困住了。下面是我使用的文件插入到源码代码:如何将const void *转换为istream?
//Read file into a buffer
ifstream file(FileName, ios::in | ios::binary);
file.seekg(0, ifstream::end);
streampos size = file.tellg();
file.seekg(0);
char* buffer = new char[size];
file.read(buffer, size); // Later insert this buffer as blob to sqlite
//...
//relevant sqlite code
int buffer_size = sqlite3_column_int(stmt, 0); //size of the blob in bytes
const void* buffer = sqlite3_column_blob(stmt, 1); // blob data
协议缓冲功能解析是
ParseFromIstream(std::istream * input)
所以真正的问题可能是如何转换(常量无效*)到std :: istream的?
我使用obj.ParseFromArray(buffer,buffer_size)。无需投射。感谢您指出该功能。 – Carl