1*5dd36a3bSchristosDecoding 2*5dd36a3bSchristos============================= 3*5dd36a3bSchristos 4*5dd36a3bSchristosThe following diagram illustrates the relationship among different parts of libcbor from the decoding standpoint. 5*5dd36a3bSchristos 6*5dd36a3bSchristos:: 7*5dd36a3bSchristos 8*5dd36a3bSchristos ┌──────────────────────────────────────────────────────────────────────────────────────────────┐ 9*5dd36a3bSchristos │ │ 10*5dd36a3bSchristos │ Client application │ 11*5dd36a3bSchristos │ │ 12*5dd36a3bSchristos │ ┌────────────────────────────────────────────┘ 13*5dd36a3bSchristos │ │ ↕ 14*5dd36a3bSchristos │ │ ┌──────────────────────────────────────────┐ 15*5dd36a3bSchristos │ │ │ │ 16*5dd36a3bSchristos │ │ │ Manipulation routines │ 17*5dd36a3bSchristos │ │ │ │ 18*5dd36a3bSchristos │ ┌─────────────────────────────────────┘ └──────────────────────────────────────────┘ 19*5dd36a3bSchristos │ │ ↑ ↑ ↑ ↑ 20*5dd36a3bSchristos │ │ │ │ ┌─────────────╫──────────┬───────────────────┴─┐ 21*5dd36a3bSchristos │ │ │ CDS │ ║ │ │ 22*5dd36a3bSchristos │ │ │ │ PDS ║ PDS PDS 23*5dd36a3bSchristos │ │ ↓ ↓ ↓ ↓ ↓ ↓ 24*5dd36a3bSchristos │ │ ┌─────────────────┐ ┌────────────────────┐ ┌────────────────────────────┐ 25*5dd36a3bSchristos │ │ │ │ │ │ │ │ 26*5dd36a3bSchristos │ │ │ Custom driver │ ↔ │ Streaming driver │ ↔ │ Default driver │ ↔ CD 27*5dd36a3bSchristos │ │ │ │ │ │ │ │ 28*5dd36a3bSchristos └───────────┘ └─────────────────┘ └────────────────────┘ └────────────────────────────┘ 29*5dd36a3bSchristos ↕ ↕ ↕ ↕ 30*5dd36a3bSchristos ┌──────────────────────────────────────────────────────────────────────────────────────────────┐ 31*5dd36a3bSchristos │ │ 32*5dd36a3bSchristos │ Stateless event─driven decoder │ 33*5dd36a3bSchristos │ │ 34*5dd36a3bSchristos └──────────────────────────────────────────────────────────────────────────────────────────────┘ 35*5dd36a3bSchristos 36*5dd36a3bSchristos (PSD = Provided Data Structures, CDS = Custom Data Structures) 37*5dd36a3bSchristos 38*5dd36a3bSchristosThis section will deal with the API that is labeled as the "Default driver" in the diagram. That is, routines that 39*5dd36a3bSchristosdecode complete libcbor data items 40*5dd36a3bSchristos 41*5dd36a3bSchristos.. doxygenfunction:: cbor_load 42*5dd36a3bSchristos 43*5dd36a3bSchristosAssociated data structures 44*5dd36a3bSchristos~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 45*5dd36a3bSchristos 46*5dd36a3bSchristos.. doxygenenum:: cbor_error_code 47*5dd36a3bSchristos 48*5dd36a3bSchristos.. doxygenstruct:: cbor_load_result 49*5dd36a3bSchristos :members: 50*5dd36a3bSchristos 51*5dd36a3bSchristos.. doxygenstruct:: cbor_error 52*5dd36a3bSchristos :members: 53*5dd36a3bSchristos 54