puede comprobar el protocolo amef, un ejemplo de codificación C++ en AMEF sería como,
//Create a new AMEF object
AMEFObject *object = new AMEFObject();
//Add a child string object
object->addPacket("This is the Automated Message Exchange Format Object property!!","adasd");
//Add a child integer object
object->addPacket(21213);
//Add a child boolean object
object->addPacket(true);
AMEFObject *object2 = new AMEFObject();
string j = "This is the property of a nested Automated Message Exchange Format Object";
object2->addPacket(j);
object2->addPacket(134123);
object2->addPacket(false);
//Add a child character object
object2->addPacket('d');
//Add a child AMEF Object
object->addPacket(object2);
//Encode the AMEF obejct
string str = new AMEFEncoder()->encode(object,false);
decodificación en Java sería como,
string arr = amef encoded byte array value;
AMEFDecoder decoder = new AMEFDecoder()
AMEFObject object1 = AMEFDecoder.decode(arr,true);
la implementación del protocolo tiene codecs para tanto C++ y Java, la parte interesante es que puede retener la representación de clases de objetos en forma de pares de valores de nombres, Requirí un protocolo similar en mi último proyecto, cuando por casualidad tropecé con este protocolo, en realidad tuve mod ified la biblioteca base según mis requisitos. Espero que esto te ayude.
no estoy seguro de lo que quiere decir con "native", ¿se refiere a native C++ (like Boost.Serialization)? ¿Quiere decir que solo usa la biblioteca estándar de C++? ¿Te refieres a algo más? – jwfearn
me refiero a "no una biblioteca de software externa". Y lo siento, mi inglés no está muy bien: S. Soy de Argentina –
No hay forma nativa de serializar un objeto (aún puedes volcar los datos binarios desde un POD, pero no obtendrás lo que deseas). Aun así, Boost, si bien no es una "biblioteca interna", es la primera biblioteca externa que debe considerar agregar a su compilador. Boost es de calidad STL (es decir, Top Gun C++) – paercebal