digraph "MQTTClient_create"
{
 // LATEX_PDF_SIZE
  bgcolor="transparent";
  edge [fontname=FreeSans,fontsize=10,labelfontname=FreeSans,labelfontsize=10];
  node [fontname=FreeSans,fontsize=10,shape=box,height=0.2,width=0.4];
  rankdir="LR";
  Node1 [id="Node000001",label="MQTTClient_create",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="This function creates an MQTT client ready for connection to the specified server and using the speci..."];
  Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "];
  Node2 [id="Node000002",label="MQTTClient_createWithOptions",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTClient_8c.html#ade24f717a9b39d38b081e1d5e0db1661",tooltip="A version of :MQTTClient_create() with additional options."];
  Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "];
  Node3 [id="Node000003",label="Heap_initialize",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Heap_8c.html#a7fb8bd5f7469fc9c1e48c3a1f17de88a",tooltip="Heap initialization."];
  Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "];
  Node4 [id="Node000004",label="ptrCompare",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Heap_8c.html#a45db32d4f454f94d7f4574deced5ee33",tooltip="List callback function for comparing storage elements."];
  Node2 -> Node5 [id="edge4_Node000002_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node5 [id="Node000005",label="ListAppend",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$LinkedList_8c.html#ae98f92a6b10685a42b57ec373ce3939b",tooltip="Append an item to a list."];
  Node5 -> Node6 [id="edge5_Node000005_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node6 [id="Node000006",label="ListAppendNoMalloc",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$LinkedList_8c.html#a321a3598d6979c7af3f995b77ea2cec3",tooltip="Append an already allocated ListElement and content to a list."];
  Node2 -> Node7 [id="edge6_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "];
  Node7 [id="Node000007",label="ListInitialize",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$LinkedList_8c.html#a3bd5fdfa709d462f51196ca985f353b7",tooltip="Allocates and initializes a new list structure."];
  Node7 -> Node8 [id="edge7_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "];
  Node8 [id="Node000008",label="ListZero",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$LinkedList_8c.html#aa254fb1eab8e30d0e03859b333dc22ed",tooltip="Sets a list structure to empty - all null values."];
  Node2 -> Node9 [id="edge8_Node000002_Node000009",color="steelblue1",style="solid",tooltip=" "];
  Node9 [id="Node000009",label="ListRemove",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$LinkedList_8c.html#a8430370b2b15c56ec95bb8e7e36753a5",tooltip="Removes and frees an item in a list by comparing the pointer to the content."];
  Node9 -> Node10 [id="edge9_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "];
  Node10 [id="Node000010",label="ListUnlink",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$LinkedList_8c.html#ab82181e0c1d96954f82dee67cee41296",tooltip="Removes and optionally frees an element in a list by comparing the content."];
  Node10 -> Node11 [id="edge10_Node000010_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node11 [id="Node000011",label="ListFindItem",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$LinkedList_8c.html#a46980559fb08bfa0308804d6076e91e1",tooltip="Finds an element in a list by comparing the content or pointer to the content."];
  Node11 -> Node12 [id="edge11_Node000011_Node000012",color="steelblue1",style="solid",tooltip=" "];
  Node12 [id="Node000012",label="ListNextElement",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$LinkedList_8c.html#a2d9b5364a166a49d333801e049e5515d",tooltip="Forward iteration through a list."];
  Node2 -> Node13 [id="edge12_Node000002_Node000013",color="steelblue1",style="solid",tooltip=" "];
  Node13 [id="Node000013",label="MQTTClient_getVersionInfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTClient_8c.html#aef6eba956a5ff6072854a9e353487087",tooltip="This function returns version information about the library."];
  Node2 -> Node14 [id="edge13_Node000002_Node000014",color="steelblue1",style="solid",tooltip=" "];
  Node14 [id="Node000014",label="MQTTPersistence_create",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistence_8c.html#a75e756280e499db530896c5b74b8d3b5",tooltip="Creates a MQTTClient_persistence structure representing a persistence implementation."];
  Node14 -> Node15 [id="edge14_Node000014_Node000015",color="steelblue1",style="solid",tooltip=" "];
  Node15 [id="Node000015",label="pstclear",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistenceDefault_8c.html#a15b1457f7fd20dde1fd51ed434321e1a",tooltip="Delete all the persisted message in the client persistence directory."];
  Node14 -> Node16 [id="edge15_Node000014_Node000016",color="steelblue1",style="solid",tooltip=" "];
  Node16 [id="Node000016",label="pstclose",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistenceDefault_8c.html#a24f38d19ff3db61292d7b463e59174ef",tooltip="Delete client persistence directory (if empty)."];
  Node14 -> Node17 [id="edge16_Node000014_Node000017",color="steelblue1",style="solid",tooltip=" "];
  Node17 [id="Node000017",label="pstcontainskey",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistenceDefault_8c.html#a2a55461def3359a2b0aff6b3bb0644ad",tooltip="Returns whether if a wire message is persisted in the client persistence directory."];
  Node14 -> Node18 [id="edge17_Node000014_Node000018",color="steelblue1",style="solid",tooltip=" "];
  Node18 [id="Node000018",label="pstget",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistenceDefault_8c.html#a3aef9f9af29882fac9e76984e4c2954c",tooltip="Retrieve a wire message from the client persistence directory."];
  Node14 -> Node19 [id="edge18_Node000014_Node000019",color="steelblue1",style="solid",tooltip=" "];
  Node19 [id="Node000019",label="pstkeys",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistenceDefault_8c.html#a9f358375b8e254983d00f8b057e97dd6",tooltip="Returns the keys (file names w/o the extension) in the client persistence directory."];
  Node14 -> Node20 [id="edge19_Node000014_Node000020",color="steelblue1",style="solid",tooltip=" "];
  Node20 [id="Node000020",label="pstopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistenceDefault_8c.html#a919cf4710a1f7d7ce0878599e9aa4700",tooltip="Create persistence directory for the client: context/clientID-serverURI."];
  Node20 -> Node21 [id="edge20_Node000020_Node000021",color="steelblue1",style="solid",tooltip=" "];
  Node21 [id="Node000021",label="pstmkdir",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistenceDefault_8c.html#aecfbfa761dfca1b551d9ade325f480b1",tooltip="Function to create a directory."];
  Node14 -> Node22 [id="edge21_Node000014_Node000022",color="steelblue1",style="solid",tooltip=" "];
  Node22 [id="Node000022",label="pstput",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistenceDefault_8c.html#a64e0c1a2fd06375b975d6643175572d8",tooltip="Write wire message to the client persistence directory."];
  Node22 -> Node23 [id="edge22_Node000022_Node000023",color="steelblue1",style="solid",tooltip=" "];
  Node23 [id="Node000023",label="pstremove",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistenceDefault_8c.html#a64b106b9a2778f97d271af7c9a7940f2",tooltip="Delete a persisted message from the client persistence directory."];
  Node14 -> Node23 [id="edge23_Node000014_Node000023",color="steelblue1",style="solid",tooltip=" "];
  Node2 -> Node24 [id="edge24_Node000002_Node000024",color="steelblue1",style="solid",tooltip=" "];
  Node24 [id="Node000024",label="MQTTPersistence_initialize",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistence_8c.html#a65b64467da967b6930966b98f249406e",tooltip="Open persistent store and restore any persisted messages."];
  Node24 -> Node25 [id="edge25_Node000024_Node000025",color="steelblue1",style="solid",tooltip=" "];
  Node25 [id="Node000025",label="MQTTPersistence_restorePackets",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistence_8c.html#a3e607d17e088a493097af07e9c7b0006",tooltip="Restores the persisted records to the outbound and inbound message queues of the client."];
  Node25 -> Node5 [id="edge26_Node000025_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node25 -> Node26 [id="edge27_Node000025_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node26 [id="Node000026",label="Log",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Log_8c.html#a669722e3f57811871f97c12392aba85d",tooltip="Log a message."];
  Node26 -> Node27 [id="edge28_Node000026_Node000027",color="steelblue1",style="solid",tooltip=" "];
  Node27 [id="Node000027",label="Messages_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Messages_8c.html#a7a6354cb6f78f346b6fbcaaea5fb07bf",tooltip="Get a log message by its index."];
  Node26 -> Node28 [id="edge29_Node000026_Node000028",color="steelblue1",style="solid",tooltip=" "];
  Node28 [id="Node000028",label="Paho_thread_lock_mutex",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Thread_8c.html#a1c9cd0a1556e72719a5ed3f9cdf6686f",tooltip="Lock a mutex which has alrea."];
  Node26 -> Node29 [id="edge30_Node000026_Node000029",color="steelblue1",style="solid",tooltip=" "];
  Node29 [id="Node000029",label="Paho_thread_unlock\l_mutex",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Thread_8c.html#a1c21203efa0c10544d24585870fe4757",tooltip="Unlock a mutex which has already been locked."];
  Node25 -> Node30 [id="edge31_Node000025_Node000030",color="steelblue1",style="solid",tooltip=" "];
  Node30 [id="Node000030",label="MQTTPacket_freePublish",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#a642e5f62d21f14e81f8fc70b491d89c8",tooltip="Free allocated storage for a publish packet."];
  Node25 -> Node31 [id="edge32_Node000025_Node000031",color="steelblue1",style="solid",tooltip=" "];
  Node31 [id="Node000031",label="MQTTPersistence_insertIn\lOrder",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$MQTTPersistence_8c.html#a568adcd6ad3542d6f631a7f7a2e682e5",tooltip="Inserts the specified message into the list, maintaining message ID order."];
  Node31 -> Node12 [id="edge33_Node000031_Node000012",color="steelblue1",style="solid",tooltip=" "];
  Node25 -> Node33 [id="edge34_Node000025_Node000033",color="steelblue1",style="solid",tooltip=" "];
  Node33 [id="Node000033",label="MQTTPersistence_restorePacket",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistence_8c.html#aac67eef2b34056f332c0df91a27cb02c",tooltip="Returns a MQTT packet restored from persisted data."];
  Node25 -> Node34 [id="edge35_Node000025_Node000034",color="steelblue1",style="solid",tooltip=" "];
  Node34 [id="Node000034",label="MQTTPersistence_wrapMsgID",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistence_8c.html#adbf5881a3c6ce9bd7062182dfffe27fa",tooltip="Checks whether the message IDs wrapped by looking for the largest gap between two consecutive message..."];
  Node34 -> Node12 [id="edge36_Node000034_Node000012",color="steelblue1",style="solid",tooltip=" "];
  Node25 -> Node35 [id="edge37_Node000025_Node000035",color="steelblue1",style="solid",tooltip=" "];
  Node35 [id="Node000035",label="MQTTProtocol_createMessage",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$MQTTProtocolClient_8c.html#a4850f5704736e0576df190a4194201ac",tooltip="Copy and store message data for retries."];
  Node2 -> Node37 [id="edge38_Node000002_Node000037",color="steelblue1",style="solid",tooltip=" "];
  Node37 [id="Node000037",label="MQTTPersistence_restoreMessage\lQueue",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistence_8c.html#ab4f6437946ac80d5f9e882e92e59cc5c",tooltip="Restores a queue of messages from persistence to memory."];
  Node37 -> Node26 [id="edge39_Node000037_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node2 -> Node38 [id="edge40_Node000002_Node000038",color="steelblue1",style="solid",tooltip=" "];
  Node38 [id="Node000038",label="MQTTProtocol_writeAvailable",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTProtocolClient_8c.html#a5906689ff10dc091d1a2b317295d39b0",tooltip="Callback that is invoked when the socket is available for writing."];
  Node38 -> Node39 [id="edge41_Node000038_Node000039",color="steelblue1",style="solid",tooltip=" "];
  Node39 [id="Node000039",label="clientSocketCompare",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Clients_8c.html#a82dc4e265fecdaea2810ccdeab0abf52",tooltip="List callback function for comparing clients by socket."];
  Node38 -> Node40 [id="edge42_Node000038_Node000040",color="steelblue1",style="solid",tooltip=" "];
  Node40 [id="Node000040",label="ListEmpty",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$LinkedList_8c.html#a3cf8578dba23f97dd0411e85fe3b7ff2",tooltip="Removes and frees all items in a list, leaving the list ready for new items."];
  Node38 -> Node11 [id="edge43_Node000038_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node38 -> Node12 [id="edge44_Node000038_Node000012",color="steelblue1",style="solid",tooltip=" "];
  Node38 -> Node26 [id="edge45_Node000038_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node38 -> Node41 [id="edge46_Node000038_Node000041",color="steelblue1",style="solid",tooltip=" "];
  Node41 [id="Node000041",label="MQTTPacket_send_puback",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#a8b93325a6a336406497b20b489d6c46a",tooltip="Send an MQTT PUBACK packet down a socket."];
  Node41 -> Node26 [id="edge47_Node000041_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node41 -> Node42 [id="edge48_Node000041_Node000042",color="steelblue1",style="solid",tooltip=" "];
  Node42 [id="Node000042",label="MQTTPacket_send_ack",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$MQTTPacket_8c.html#ad89e627a37f7f7eb4355b076cd46e0b0",tooltip="Send an MQTT acknowledgement packet down a socket."];
  Node38 -> Node48 [id="edge49_Node000038_Node000048",color="steelblue1",style="solid",tooltip=" "];
  Node48 [id="Node000048",label="MQTTPacket_send_pubcomp",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#a908f81381b1720e4a53d15c1c4690f5c",tooltip="Send an MQTT PUBCOMP packet down a socket."];
  Node48 -> Node26 [id="edge50_Node000048_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node48 -> Node42 [id="edge51_Node000048_Node000042",color="steelblue1",style="solid",tooltip=" "];
  Node38 -> Node49 [id="edge52_Node000038_Node000049",color="steelblue1",style="solid",tooltip=" "];
  Node49 [id="Node000049",label="MQTTPacket_send_pubrec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#a8167e3188a4bdcfb30c10e0d76c82afe",tooltip="Send an MQTT PUBREC packet down a socket."];
  Node49 -> Node26 [id="edge53_Node000049_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node49 -> Node42 [id="edge54_Node000049_Node000042",color="steelblue1",style="solid",tooltip=" "];
  Node38 -> Node50 [id="edge55_Node000038_Node000050",color="steelblue1",style="solid",tooltip=" "];
  Node50 [id="Node000050",label="MQTTPacket_send_pubrel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#adec2c812b12255dab78f75163a4f1960",tooltip="Send an MQTT PUBREL packet down a socket."];
  Node50 -> Node26 [id="edge56_Node000050_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node50 -> Node42 [id="edge57_Node000050_Node000042",color="steelblue1",style="solid",tooltip=" "];
  Node2 -> Node51 [id="edge58_Node000002_Node000051",color="steelblue1",style="solid",tooltip=" "];
  Node51 [id="Node000051",label="MQTTStrdup",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTProtocolClient_8c.html#aa83047eec6e49316242455c560aa8d05",tooltip="Duplicate a string, safely, allocating space on the heap."];
  Node51 -> Node26 [id="edge59_Node000051_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node51 -> Node52 [id="edge60_Node000051_Node000052",color="steelblue1",style="solid",tooltip=" "];
  Node52 [id="Node000052",label="MQTTStrncpy",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTProtocolClient_8c.html#a0c70e31b7db0dac1c262256710e6b26a",tooltip="Copy no more than dest_size -1 characters from the string pointed to by src to the array pointed to b..."];
  Node52 -> Node26 [id="edge61_Node000052_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node2 -> Node28 [id="edge62_Node000002_Node000028",color="steelblue1",style="solid",tooltip=" "];
  Node2 -> Node29 [id="edge63_Node000002_Node000029",color="steelblue1",style="solid",tooltip=" "];
  Node2 -> Node53 [id="edge64_Node000002_Node000053",color="steelblue1",style="solid",tooltip=" "];
  Node53 [id="Node000053",label="Socket_outInitialize",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Socket_8c.html#a573a6eea727016f3e8770f60e5eed958",tooltip="Initialize the socket module."];
  Node53 -> Node7 [id="edge65_Node000053_Node000007",color="steelblue1",style="solid",tooltip=" "];
  Node53 -> Node54 [id="edge66_Node000053_Node000054",color="steelblue1",style="solid",tooltip=" "];
  Node54 [id="Node000054",label="SocketBuffer_initialize",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$SocketBuffer_8c.html#abc8599ffc6f7ad91a7748e5d78bbd926",tooltip="Initialize the socketBuffer module."];
  Node54 -> Node7 [id="edge67_Node000054_Node000007",color="steelblue1",style="solid",tooltip=" "];
  Node54 -> Node8 [id="edge68_Node000054_Node000008",color="steelblue1",style="solid",tooltip=" "];
  Node2 -> Node56 [id="edge69_Node000002_Node000056",color="steelblue1",style="solid",tooltip=" "];
  Node56 [id="Node000056",label="Thread_create_sem",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Thread_8c.html#a3b9b6cb543ee55442d2037a971f651db",tooltip="Create a new semaphore."];
  Node2 -> Node57 [id="edge70_Node000002_Node000057",color="steelblue1",style="solid",tooltip=" "];
  Node57 [id="Node000057",label="UTF8_validateString",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$utf-8_8c.html#a4f3cf77538d867bb5b421bcb687dccdf",tooltip="Validate a null-terminated string has only UTF-8 characters."];
  Node57 -> Node58 [id="edge71_Node000057_Node000058",color="steelblue1",style="solid",tooltip=" "];
  Node58 [id="Node000058",label="UTF8_validate",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$utf-8_8c.html#ad2012627fca4b4bdd9f67bde49b0d1cb",tooltip="Validate a length-delimited string has only UTF-8 characters."];
}
