Commit 5ac04cb0 authored by Mateusz Łoskot's avatar Mateusz Łoskot

Correct formatting of FAQ 8 and 9

parent 50660c09
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
8. How to clear-and-minimize a document or value? 8. How to clear-and-minimize a document or value?
* Call one of the `SetXXX()` methods - they call destructor which deallocates DOM data: Call one of the `SetXXX()` methods - they call destructor which deallocates DOM data:
``` ```
Document d; Document d;
...@@ -112,14 +112,14 @@ ...@@ -112,14 +112,14 @@
d.SetObject(); // clear and minimize d.SetObject(); // clear and minimize
``` ```
* Alternatively, use equivalent of the [C++ swap with temporary idiom](https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Clear-and-minimize): Alternatively, use equivalent of the [C++ swap with temporary idiom](https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Clear-and-minimize):
``` ```
d.Swap(Value(kObjectType).Move()) d.Swap(Value(kObjectType).Move())
``` ```
9. How to insert a document node into another document? 9. How to insert a document node into another document?
Let's take the following two DOM trees represented as JSON documents: Let's take the following two DOM trees represented as JSON documents:
``` ```
Document person; Document person;
person.Parse("{\"person\":{\"name\":{\"first\":\"Adam\",\"last\":\"Thomas\"}}}"); person.Parse("{\"person\":{\"name\":{\"first\":\"Adam\",\"last\":\"Thomas\"}}}");
...@@ -127,7 +127,7 @@ Let's take the following two DOM trees represented as JSON documents: ...@@ -127,7 +127,7 @@ Let's take the following two DOM trees represented as JSON documents:
Document address; Document address;
address.Parse("{\"address\":{\"city\":\"Moscow\",\"street\":\"Quiet\"}}"); address.Parse("{\"address\":{\"city\":\"Moscow\",\"street\":\"Quiet\"}}");
``` ```
Let's assume we want to merge them in such way that the whole `address` document becomes a node of the `person`: Let's assume we want to merge them in such way that the whole `address` document becomes a node of the `person`:
``` ```
{ "person": { { "person": {
"name": { "first": "Adam", "last": "Thomas" }, "name": { "first": "Adam", "last": "Thomas" },
...@@ -136,9 +136,9 @@ Let's assume we want to merge them in such way that the whole `address` document ...@@ -136,9 +136,9 @@ Let's assume we want to merge them in such way that the whole `address` document
} }
``` ```
The most important requirement to take care of document and value life-cycle as well as consistent memory managent using the right allocator during the value transfer. The most important requirement to take care of document and value life-cycle as well as consistent memory managent using the right allocator during the value transfer.
* Simple yet most efficient way to achieve that is to modify the `address` definition above to initialize it with allocator of the `person` document, then we just add the root nenber of the value: Simple yet most efficient way to achieve that is to modify the `address` definition above to initialize it with allocator of the `person` document, then we just add the root nenber of the value:
``` ```
Documnet address(person.GetAllocator()); Documnet address(person.GetAllocator());
... ...
...@@ -150,7 +150,7 @@ Alternatively, if we don't want to explicitly refer to the root value of `addres ...@@ -150,7 +150,7 @@ Alternatively, if we don't want to explicitly refer to the root value of `addres
person["person"].AddMember(addressRoot->name, addressRoot->value, person.GetAllocator()); person["person"].AddMember(addressRoot->name, addressRoot->value, person.GetAllocator());
``` ```
* Second way is to deep-clone the value from the address document: Second way is to deep-clone the value from the address document:
``` ```
Value addressValue = Value(address["address"], person.GetAllocator()); Value addressValue = Value(address["address"], person.GetAllocator());
person["person"].AddMember("address", addressValue, person.GetAllocator()); person["person"].AddMember("address", addressValue, person.GetAllocator());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment