digraph "MQTTClient_subscribeMany5"
{
 // 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_subscribeMany5",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="This function attempts to subscribe an MQTT version 5.0 client to a list of topics,..."];
  Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "];
  Node2 [id="Node000002",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."];
  Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "];
  Node3 [id="Node000003",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."];
  Node1 -> Node4 [id="edge3_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "];
  Node4 [id="Node000004",label="ListFreeNoContent",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$LinkedList_8c.html#a8b3e61bc873a90ad2ea43a15e6c001f4",tooltip="Removes and but does not free all items in a list, and frees the list itself."];
  Node1 -> Node5 [id="edge4_Node000001_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node5 [id="Node000005",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."];
  Node5 -> Node6 [id="edge5_Node000005_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node6 [id="Node000006",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."];
  Node1 -> Node7 [id="edge6_Node000001_Node000007",color="steelblue1",style="solid",tooltip=" "];
  Node7 [id="Node000007",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."];
  Node1 -> Node8 [id="edge7_Node000001_Node000008",color="steelblue1",style="solid",tooltip=" "];
  Node8 [id="Node000008",label="MQTTClient_disconnect\l_internal",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTClient_8c.html#a6a08562ce9b763bf79c71029b94cd9f5",tooltip="mqttclient_mutex must be locked when you call this function, if multi threaded"];
  Node8 -> Node9 [id="edge8_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "];
  Node9 [id="Node000009",label="MQTTClient_disconnect1",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTClient_8c.html#a2eeb63b405d9aed880a79b38addf6df7",tooltip="mqttclient_mutex must be locked when you call this function, if multi threaded"];
  Node9 -> Node10 [id="edge9_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "];
  Node10 [id="Node000010",label="connectionLost_call",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTClient_8c.html#a0c0d8194bf8a449928881cf83276728e",tooltip="Wrapper function to call connection lost on a separate thread."];
  Node10 -> Node11 [id="edge10_Node000010_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node11 [id="Node000011",label="Thread_post_sem",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Thread_8c.html#ac023f527bed9c6c3a20244fa7efe272c",tooltip="Post a semaphore."];
  Node9 -> Node12 [id="edge11_Node000009_Node000012",color="steelblue1",style="solid",tooltip=" "];
  Node12 [id="Node000012",label="Log",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Log_8c.html#a669722e3f57811871f97c12392aba85d",tooltip="Log a message."];
  Node12 -> Node13 [id="edge12_Node000012_Node000013",color="steelblue1",style="solid",tooltip=" "];
  Node13 [id="Node000013",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."];
  Node12 -> Node14 [id="edge13_Node000012_Node000014",color="steelblue1",style="solid",tooltip=" "];
  Node14 [id="Node000014",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."];
  Node12 -> Node15 [id="edge14_Node000012_Node000015",color="steelblue1",style="solid",tooltip=" "];
  Node15 [id="Node000015",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."];
  Node9 -> Node16 [id="edge15_Node000009_Node000016",color="steelblue1",style="solid",tooltip=" "];
  Node16 [id="Node000016",label="MQTTClient_yield",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTClient_8c.html#a8ad3d29864a9ca08202b0832e0f6678e",tooltip="When implementing a single-threaded client, call this function periodically to allow processing of me..."];
  Node16 -> Node17 [id="edge16_Node000016_Node000017",color="steelblue1",style="solid",tooltip=" "];
  Node17 [id="Node000017",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."];
  Node17 -> Node7 [id="edge17_Node000017_Node000007",color="steelblue1",style="solid",tooltip=" "];
  Node16 -> Node8 [id="edge18_Node000016_Node000008",color="steelblue1",style="solid",tooltip=" "];
  Node16 -> Node14 [id="edge19_Node000016_Node000014",color="steelblue1",style="solid",tooltip=" "];
  Node16 -> Node15 [id="edge20_Node000016_Node000015",color="steelblue1",style="solid",tooltip=" "];
  Node9 -> Node14 [id="edge21_Node000009_Node000014",color="steelblue1",style="solid",tooltip=" "];
  Node9 -> Node18 [id="edge22_Node000009_Node000018",color="steelblue1",style="solid",tooltip=" "];
  Node18 [id="Node000018",label="Paho_thread_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Thread_8c.html#a342744cc2c60c981c4558475a759ca6c",tooltip="Start a new thread."];
  Node9 -> Node15 [id="edge23_Node000009_Node000015",color="steelblue1",style="solid",tooltip=" "];
  Node9 -> Node19 [id="edge24_Node000009_Node000019",color="steelblue1",style="solid",tooltip=" "];
  Node19 [id="Node000019",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."];
  Node9 -> Node20 [id="edge25_Node000009_Node000020",color="steelblue1",style="solid",tooltip=" "];
  Node20 [id="Node000020",label="Thread_destroy_sem",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Thread_8c.html#ad075ec07f801ac1a2a7dee7097048182",tooltip="Destroy a semaphore which has already been created."];
  Node9 -> Node21 [id="edge26_Node000009_Node000021",color="steelblue1",style="solid",tooltip=" "];
  Node21 [id="Node000021",label="Thread_wait_sem",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$Thread_8c.html#a4d0bbfc059da3cd10626244d3468d319",tooltip="Wait for a semaphore to be posted, or timeout."];
  Node1 -> Node22 [id="edge27_Node000001_Node000022",color="steelblue1",style="solid",tooltip=" "];
  Node22 [id="Node000022",label="MQTTProtocol_assignMsgId",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTProtocolClient_8c.html#a0fa824f9702cb6b0d7c800fd65198fce",tooltip="Assign a new message id for a client."];
  Node22 -> Node17 [id="edge28_Node000022_Node000017",color="steelblue1",style="solid",tooltip=" "];
  Node22 -> Node23 [id="edge29_Node000022_Node000023",color="steelblue1",style="solid",tooltip=" "];
  Node23 [id="Node000023",label="messageIDCompare",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTProtocolClient_8c.html#a286c2ef2904b5eb4a0ffa5b598961c67",tooltip="List callback function for comparing Message structures by message id."];
  Node1 -> Node24 [id="edge30_Node000001_Node000024",color="steelblue1",style="solid",tooltip=" "];
  Node24 [id="Node000024",label="MQTTProtocol_handleSubacks",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTProtocolOut_8c.html#a5424115bf427436c2d40058f15261ed0",tooltip="Process an incoming suback packet for a socket."];
  Node24 -> Node25 [id="edge31_Node000024_Node000025",color="steelblue1",style="solid",tooltip=" "];
  Node25 [id="Node000025",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."];
  Node24 -> Node17 [id="edge32_Node000024_Node000017",color="steelblue1",style="solid",tooltip=" "];
  Node24 -> Node12 [id="edge33_Node000024_Node000012",color="steelblue1",style="solid",tooltip=" "];
  Node24 -> Node26 [id="edge34_Node000024_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node26 [id="Node000026",label="MQTTPacket_freeSuback",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#a4262b8f35885dc123f59268fb74cec3d",tooltip="Free allocated storage for a suback packet."];
  Node26 -> Node27 [id="edge35_Node000026_Node000027",color="steelblue1",style="solid",tooltip=" "];
  Node27 [id="Node000027",label="ListFree",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$LinkedList_8c.html#a276950531b3f54e0dda27d597572c192",tooltip="Removes and frees all items in a list, and frees the list itself."];
  Node27 -> Node28 [id="edge36_Node000027_Node000028",color="steelblue1",style="solid",tooltip=" "];
  Node28 [id="Node000028",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."];
  Node1 -> Node29 [id="edge37_Node000001_Node000029",color="steelblue1",style="solid",tooltip=" "];
  Node29 [id="Node000029",label="MQTTProtocol_subscribe",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTProtocolOut_8c.html#a460d021d06dd24cf975dfe20e17ab1ba",tooltip="MQTT outgoing subscribe processing for a client."];
  Node29 -> Node30 [id="edge38_Node000029_Node000030",color="steelblue1",style="solid",tooltip=" "];
  Node30 [id="Node000030",label="MQTTPacket_send_subscribe",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacketOut_8c.html#a90212ed29c311f52a1dce0617133b1a7",tooltip="Send an MQTT subscribe packet down a socket."];
  Node30 -> Node7 [id="edge39_Node000030_Node000007",color="steelblue1",style="solid",tooltip=" "];
  Node30 -> Node12 [id="edge40_Node000030_Node000012",color="steelblue1",style="solid",tooltip=" "];
  Node30 -> Node31 [id="edge41_Node000030_Node000031",color="steelblue1",style="solid",tooltip=" "];
  Node31 [id="Node000031",label="MQTTPacket_send",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#a51f58f1c7864f9fe87b55cc6ccb10129",tooltip="Sends an MQTT packet in one system call write."];
  Node31 -> Node32 [id="edge42_Node000031_Node000032",color="steelblue1",style="solid",tooltip=" "];
  Node32 [id="Node000032",label="MQTTPacket_encode",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#aadd77a4fa1b2d5c7791e3542c56af856",tooltip="Encodes the message length according to the MQTT algorithm."];
  Node31 -> Node33 [id="edge43_Node000031_Node000033",color="steelblue1",style="solid",tooltip=" "];
  Node33 [id="Node000033",label="MQTTPersistence_putPacket",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPersistence_8c.html#a18eab666c3e6aecd92a6c8f10df808e3",tooltip="Adds a record to the persistent store."];
  Node33 -> Node25 [id="edge44_Node000033_Node000025",color="steelblue1",style="solid",tooltip=" "];
  Node33 -> Node17 [id="edge45_Node000033_Node000017",color="steelblue1",style="solid",tooltip=" "];
  Node31 -> Node34 [id="edge46_Node000031_Node000034",color="steelblue1",style="solid",tooltip=" "];
  Node34 [id="Node000034",label="readInt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#a132d2d5b304d37cd2348a973f7b315de",tooltip="Calculates an integer from two bytes read from the input buffer."];
  Node30 -> Node35 [id="edge47_Node000030_Node000035",color="steelblue1",style="solid",tooltip=" "];
  Node35 [id="Node000035",label="writeChar",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#ad29ec8b2fbf0ec0195621b44f8945923",tooltip="Writes one character to an output buffer."];
  Node30 -> Node36 [id="edge48_Node000030_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node36 [id="Node000036",label="writeInt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#a07aa0146eda3d32979142e7df8ad5fc3",tooltip="Writes an integer as 2 bytes to an output buffer."];
  Node30 -> Node37 [id="edge49_Node000030_Node000037",color="steelblue1",style="solid",tooltip=" "];
  Node37 [id="Node000037",label="writeUTF",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$MQTTPacket_8c.html#af0fcaa11ac05ce448a433a53f9cae420",tooltip="Writes a \"UTF\" string to an output buffer."];
  Node37 -> Node36 [id="edge50_Node000037_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node14 [id="edge51_Node000001_Node000014",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node15 [id="edge52_Node000001_Node000015",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node38 [id="edge53_Node000001_Node000038",color="steelblue1",style="solid",tooltip=" "];
  Node38 [id="Node000038",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."];
  Node38 -> Node39 [id="edge54_Node000038_Node000039",color="steelblue1",style="solid",tooltip=" "];
  Node39 [id="Node000039",label="UTF8_validate",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$utf-8_8c.html#ad2012627fca4b4bdd9f67bde49b0d1cb",tooltip="Validate a length-delimited string has only UTF-8 characters."];
  Node39 -> Node40 [id="edge55_Node000039_Node000040",color="steelblue1",style="solid",tooltip=" "];
  Node40 [id="Node000040",label="UTF8_char_validate",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$utf-8_8c.html#a9727caa7417e6bed8cfad4121a22628d",tooltip="Validate a single UTF-8 character."];
}
