length google qt user-interface serialization protocol-buffers

qt - length - ¿Cómo visualizar datos del búfer de protocolo de Google?



google search console (8)

Una GUI que acabo de encontrar es protobufeditor , parece bastante poderosa para buscar datos genéricos. Está escrito en Java, por lo que no se puede usar / extender fácilmente desde C ++. (Y no está especialmente pulido en este punto, por ejemplo, uno necesita maximizar la ventana principal para obtener un diseño semi-útil de las ventanas secundarias). Así que esta es una solución bastante temporal.

Me gustaría almacenar datos utilizando los búferes de protocolo de Google (también funcionaría otro formato serializado) y luego tendré una UI para buscar esos datos. ¿Existe un framework / API C ++ que me permita hacer esto?

Por ejemplo, podría usar la interfaz de reflexión de protobuf, y luego completar los datos en QTableView de Qt (o desde otro kit de herramientas). Podría escribir ese código yo mismo; sin embargo, preferiría reutilizar el código existente, ¡por eso estoy pidiendo consejo aquí!

¿O hay herramientas de interfaz de usuario más generales que puedan visualizar datos a los que se puede acceder a través de una API de reflexión?


Wireshark tiene un plugin de protobuf que te permite visualizar los contenidos de los mensajes protobuf. También profundizaría en DebugString () en google / protobuf / message.h o message_lite.h (se me olvida qué es lo que tengo en la cabeza) y veré si puede vestirse fácilmente para presentarlo a un usuario.

http://code.google.com/p/protobuf-wireshark/


Estaba trabajando en una solución de ese tipo el año pasado usando Qt. Lamentablemente, la aplicación aún no está completa, pero creo que estaba en el punto en que uno podría visualizar con mayor o menor éxito los datos de una secuencia de búfer de protocolo genérica. Puedes ver el código en

https://github.com/oneamtu/QProtoViewer

Una vez más, esta no es una solución lista para usar, y tendrá que trabajar para que se ajuste a sus propias necesidades / proyecto. Estaría más que feliz de ayudar si eliges hacerlo.


Si lo deseas, puedes usar web ui para redactar un mensaje protobuf

https://github.com/Groterik/protobuf-webui

Es un proyecto python y tiene un ejemplo que ejecuta el servidor http que compone el tipo de mensaje deseado del módulo protobuf importado. Pero es python, por lo que puede escribir una solución simple que importe dinámicamente el módulo protobuf compilado y elija el tipo de mensaje en tiempo de ejecución.

Puede sobrecargar el método de posprocesamiento para que haga un trabajo útil con el mensaje (almacenar en archivo, enviar por red, etc.)


Para resolver la representación binaria sin esquema es difícil. Pero si desea obtener una mejor vista del formato de texto de pb o de DebugString (), puede probar el Visualizador de Protobuf:

http://codingstory.com/pv


Una opción es Protocol Buffer Workbench . Una buena característica de esta herramienta es que puede usarla para convertir JSON fácilmente a un buffer de protocolo codificado y viceversa.



Si desea escribirlo usted mismo, una opción podría ser usar Python / PySide junto con QML, procesar sus datos y almacenarlos en un QAbstractListModel que esté conectado a su QML ListView. Dependiendo de la complejidad de sus datos, es de esperar que el delegado de la vista de lista pueda visualizarlo.

Esta pregunta podría ser útil en ese caso: ¿Cómo proporcionar datos de la subclase PySide QAbstractItemModel a QML ListView?

Si XML es una opción, QML XmlListModel es muy limpio y fácil de usar.