digraph "SmlDataSyncDatastore"
{
  edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
  node [fontname="Helvetica",fontsize="10",shape=record];
  Node1 [label="{SmlDataSyncDatastore\n|+ syncChanges\l+ syncContexts\l+ sourceUri\l+ targetUri\l+ contentType\l+ localNext\l+ remoteNext\l+ alertType\l+ changes\l|}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"];
  Node2 -> Node1 [color="grey25",fontsize="10",style="solid",label=" +session" ,arrowhead="odiamond",fontname="Helvetica"];
  Node2 [label="{SmlDsSession\n|+ refCount\l+ recvAlertCallbackUserdata\l+ sentAlertCallbackUserdata\l+ recvSyncCallbackUserdata\l+ changesCallbackUserdata\l+ recvSync\l+ recvChanges\l+ syncReply\l+ finalLock\l+ emptySync\land 8 more...\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlDsSession.html"];
  Node2 -> Node2 [color="grey25",fontsize="10",style="solid",label=" +recvEventCallback\n+changesCallback\n+recvAlertCallback\n+recvMappingCallback\n+recvSyncCallback" ,arrowhead="odiamond",fontname="Helvetica"];
  Node3 -> Node2 [color="grey25",fontsize="10",style="solid",label=" +location\n+target" ,arrowhead="odiamond",fontname="Helvetica"];
  Node3 [label="{SmlLocation\n|+ refCount\l+ locURI\l+ locName\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlLocation.html"];
  Node4 -> Node2 [color="grey25",fontsize="10",style="solid",label=" +alertCommand\n+syncCommand" ,arrowhead="odiamond",fontname="Helvetica"];
  Node4 [label="{SmlCommand\n|+ refCount\l+ type\l+ cmdID\l+ msgID\l+ children\l+ noResp\l+ size\l+ pushedBack\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlCommand.html"];
  Node3 -> Node4 [color="grey25",fontsize="10",style="solid",label=" +source\n+target" ,arrowhead="odiamond",fontname="Helvetica"];
  Node4 -> Node4 [color="grey25",fontsize="10",style="solid",label=" +parent" ,arrowhead="odiamond",fontname="Helvetica"];
  Node5 -> Node4 [color="grey25",fontsize="10",style="solid",label=" +pendingReply" ,arrowhead="odiamond",fontname="Helvetica"];
  Node5 [label="{SmlPendingStatus\n|+ cmdID\l+ msgID\l+ userdata\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlPendingStatus.html"];
  Node6 -> Node5 [color="grey25",fontsize="10",style="solid",label=" +callback" ,arrowhead="odiamond",fontname="Helvetica"];
  Node6 [label="{SmlSession\n|+ refCount\l+ version\l+ protocol\l+ sessionType\l+ onlyReplace\l+ eventCallbackUserdata\l+ dataCallbackUserdata\l+ sessionID\l+ responseURI\l+ localMaxMsgSize\land 22 more...\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlSession.html"];
  Node7 -> Node6 [color="grey25",fontsize="10",style="solid",label=" +chal" ,arrowhead="odiamond",fontname="Helvetica"];
  Node7 [label="{SmlChal\n|+ format\l+ type\l+ nonce_plain\l+ nonce_length\l+ nonce_b64\l+ refCount\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlChal.html"];
  Node3 -> Node6 [color="grey25",fontsize="10",style="solid",label=" +source\n+target\n+orgTarget" ,arrowhead="odiamond",fontname="Helvetica"];
  Node4 -> Node6 [color="grey25",fontsize="10",style="solid",label=" +frag_command\n+parentCommand\n+incomingBuffer" ,arrowhead="odiamond",fontname="Helvetica"];
  Node8 -> Node6 [color="grey25",fontsize="10",style="solid",label=" +cred" ,arrowhead="odiamond",fontname="Helvetica"];
  Node8 [label="{SmlCred\n|+ format\l+ type\l+ data\l+ refCount\l+ username\l+ password\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlCred.html"];
  Node9 -> Node6 [color="grey25",fontsize="10",style="solid",label=" +command_queue" ,arrowhead="odiamond",fontname="Helvetica"];
  Node9 [label="{SmlQueue\n|+ head\l+ tail\l+ prio\l+ handler\l+ userdata\l+ source\l+ context\l+ functions\l+ mutex\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlQueue.html",tooltip="Represents a Queue which can be used to receive messages. "];
  Node6 -> Node6 [color="grey25",fontsize="10",style="solid",label=" +eventCallback\n+frag_callback\n+dataCallback" ,arrowhead="odiamond",fontname="Helvetica"];
  Node10 -> Node6 [color="grey25",fontsize="10",style="solid",label=" +assembler" ,arrowhead="odiamond",fontname="Helvetica"];
  Node10 [label="{SmlAssembler\n|+ assm_userdata\l+ type\l+ options\l+ empty\l+ remoteMaxMsgSize\l+ remoteMaxObjSize\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlAssembler.html"];
  Node11 -> Node10 [color="grey25",fontsize="10",style="solid",label=" +functions" ,arrowhead="odiamond",fontname="Helvetica"];
  Node11 [label="{SmlAssemblerFunctions\n|+ free\l+ flush\l+ missing_status\l+ next_cmdref\l+ restore_cmds\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlAssemblerFunctions.html"];
  Node12 -> Node11 [color="grey25",fontsize="10",style="solid",label=" +add_status" ,arrowhead="odiamond",fontname="Helvetica"];
  Node12 [label="{SmlStatus\n|+ refCount\l+ msgRef\l+ cmdRef\l+ type\l+ data\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlStatus.html"];
  Node7 -> Node12 [color="grey25",fontsize="10",style="solid",label=" +chal" ,arrowhead="odiamond",fontname="Helvetica"];
  Node3 -> Node12 [color="grey25",fontsize="10",style="solid",label=" +sourceRef\n+targetRef" ,arrowhead="odiamond",fontname="Helvetica"];
  Node4 -> Node12 [color="grey25",fontsize="10",style="solid",label=" +result" ,arrowhead="odiamond",fontname="Helvetica"];
  Node13 -> Node12 [color="grey25",fontsize="10",style="solid",label=" +anchor" ,arrowhead="odiamond",fontname="Helvetica"];
  Node13 [label="{SmlAnchor\n|+ next\l+ last\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlAnchor.html"];
  Node8 -> Node12 [color="grey25",fontsize="10",style="solid",label=" +cred" ,arrowhead="odiamond",fontname="Helvetica"];
  Node14 -> Node12 [color="grey25",fontsize="10",style="solid",label=" +item" ,arrowhead="odiamond",fontname="Helvetica"];
  Node14 [label="{SmlItem\n|+ refCount\l+ buffer\l+ size\l+ contenttype\l+ moreData\l+ disabled\l+ raw\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlItem.html"];
  Node3 -> Node14 [color="grey25",fontsize="10",style="solid",label=" +targetParent\n+source\n+target\n+sourceParent" ,arrowhead="odiamond",fontname="Helvetica"];
  Node13 -> Node14 [color="grey25",fontsize="10",style="solid",label=" +anchor" ,arrowhead="odiamond",fontname="Helvetica"];
  Node4 -> Node11 [color="grey25",fontsize="10",style="solid",label=" +start_cmd" ,arrowhead="odiamond",fontname="Helvetica"];
  Node15 -> Node11 [color="grey25",fontsize="10",style="solid",label=" +rem_status\n+check_size\n+reserve_status\n+rem_cmd\n+end_cmd\n+run\n+end" ,arrowhead="odiamond",fontname="Helvetica"];
  Node15 [label="{SmlError\n|+ type\l+ message\l+ printMessage\l+ refCount\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlError.html",tooltip="Represent an error. "];
  Node6 -> Node11 [color="grey25",fontsize="10",style="solid",label=" +start\n+add_header" ,arrowhead="odiamond",fontname="Helvetica"];
  Node16 -> Node4 [color="grey25",fontsize="10",style="solid",label=" +private" ,arrowhead="odiamond",fontname="Helvetica"];
  Node16 [label="{SmlCommandPrivate\n||}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$unionSmlCommandPrivate.html"];
  Node17 -> Node16 [color="grey25",fontsize="10",style="solid",label=" +sync" ,arrowhead="odiamond",fontname="Helvetica"];
  Node17 [label="{SmlCommandSyncPrivate\n|+ numChanged\l+ maxObjSize\l+ hasNumChanged\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlCommandSyncPrivate.html"];
  Node18 -> Node16 [color="grey25",fontsize="10",style="solid",label=" +access" ,arrowhead="odiamond",fontname="Helvetica"];
  Node18 [label="{SmlCommandAccessPrivate\n|+ type\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlCommandAccessPrivate.html"];
  Node14 -> Node18 [color="grey25",fontsize="10",style="solid",label=" +item" ,arrowhead="odiamond",fontname="Helvetica"];
  Node19 -> Node16 [color="grey25",fontsize="10",style="solid",label=" +map" ,arrowhead="odiamond",fontname="Helvetica"];
  Node19 [label="{SmlCommandMapPrivate\n|+ items\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlCommandMapPrivate.html"];
  Node20 -> Node16 [color="grey25",fontsize="10",style="solid",label=" +alert" ,arrowhead="odiamond",fontname="Helvetica"];
  Node20 [label="{SmlCommandAlertPrivate\n|+ type\l+ contentType\l+ maxObjSize\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlCommandAlertPrivate.html"];
  Node13 -> Node20 [color="grey25",fontsize="10",style="solid",label=" +anchor" ,arrowhead="odiamond",fontname="Helvetica"];
  Node21 -> Node16 [color="grey25",fontsize="10",style="solid",label=" +change" ,arrowhead="odiamond",fontname="Helvetica"];
  Node21 [label="{SmlCommandChangePrivate\n|+ items\l+ type\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlCommandChangePrivate.html"];
  Node22 -> Node16 [color="grey25",fontsize="10",style="solid",label=" +results" ,arrowhead="odiamond",fontname="Helvetica"];
  Node22 [label="{SmlCommandResultsPrivate\n||}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlCommandResultsPrivate.html"];
  Node12 -> Node22 [color="grey25",fontsize="10",style="solid",label=" +status" ,arrowhead="odiamond",fontname="Helvetica"];
  Node23 -> Node2 [color="grey25",fontsize="10",style="solid",label=" +server" ,arrowhead="odiamond",fontname="Helvetica"];
  Node23 [label="{SmlDsServer\n|+ contenttype\l+ servertype\l+ connectCallbackUserdata\l+ sanSessionCallbackUserdata\l+ sanCallbackUserdata\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlDsServer.html"];
  Node2 -> Node23 [color="grey25",fontsize="10",style="solid",label=" +connectCallback" ,arrowhead="odiamond",fontname="Helvetica"];
  Node3 -> Node23 [color="grey25",fontsize="10",style="solid",label=" +location\n+target" ,arrowhead="odiamond",fontname="Helvetica"];
  Node23 -> Node23 [color="grey25",fontsize="10",style="solid",label=" +sanSessionCallback\n+sanCallback" ,arrowhead="odiamond",fontname="Helvetica"];
  Node24 -> Node23 [color="grey25",fontsize="10",style="solid",label=" +manager" ,arrowhead="odiamond",fontname="Helvetica"];
  Node24 [label="{SmlManager\n|+ sessions\l+ eventCallbackUserdata\l+ headerCallbackUserdata\l+ objects\l+ functions\l+ context\l+ source\l+ running\l+ running_mutex\l+ localMaxMsgSize\l+ localMaxObjSize\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlManager.html"];
  Node25 -> Node24 [color="grey25",fontsize="10",style="solid",label=" +transport" ,arrowhead="odiamond",fontname="Helvetica"];
  Node25 [label="{SmlTransport\n|+ context\l+ state\l+ type\l+ transport_data\l+ event_callback_userdata\l+ event_callback_ref\l_count\l+ connected\l+ links\l+ links_mutex\l+ connections\l+ connections_mutex\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlTransport.html"];
  Node26 -> Node25 [color="grey25",fontsize="10",style="solid",label=" +functions" ,arrowhead="odiamond",fontname="Helvetica"];
  Node26 [label="{SmlTransportFunctions\n|+ connect\l+ disconnect\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlTransportFunctions.html"];
  Node27 -> Node26 [color="grey25",fontsize="10",style="solid",label=" +send" ,arrowhead="odiamond",fontname="Helvetica"];
  Node27 [label="{SmlTransportData\n|+ data\l+ size\l+ type\l+ ownsData\l+ refCount\l+ needsAnswer\l+ type_get\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlTransportData.html"];
  Node25 -> Node26 [color="grey25",fontsize="10",style="solid",label=" +set_response_uri\n+set_connection_type\n+set_config_option\n+initialize" ,arrowhead="odiamond",fontname="Helvetica"];
  Node15 -> Node26 [color="grey25",fontsize="10",style="solid",label=" +finalize" ,arrowhead="odiamond",fontname="Helvetica"];
  Node28 -> Node26 [color="grey25",fontsize="10",style="solid",label=" +get_response_uri" ,arrowhead="odiamond",fontname="Helvetica"];
  Node28 [label="{SmlLink\n|+ link_data\l+ refCount\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlLink.html"];
  Node25 -> Node28 [color="grey25",fontsize="10",style="solid",label=" +tsp" ,arrowhead="odiamond",fontname="Helvetica"];
  Node25 -> Node25 [color="grey25",fontsize="10",style="solid",label=" +event_callback" ,arrowhead="odiamond",fontname="Helvetica"];
  Node15 -> Node25 [color="grey25",fontsize="10",style="solid",label=" +cached_error" ,arrowhead="odiamond",fontname="Helvetica"];
  Node29 -> Node25 [color="grey25",fontsize="10",style="solid",label=" +thread" ,arrowhead="odiamond",fontname="Helvetica"];
  Node29 [label="{SmlThread\n|+ thread\l+ started\l+ started_cond\l+ started_mutex\l+ context\l+ loop\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlThread.html"];
  Node9 -> Node25 [color="grey25",fontsize="10",style="solid",label=" +command_queue" ,arrowhead="odiamond",fontname="Helvetica"];
  Node29 -> Node24 [color="grey25",fontsize="10",style="solid",label=" +thread" ,arrowhead="odiamond",fontname="Helvetica"];
  Node9 -> Node24 [color="grey25",fontsize="10",style="solid",label=" +userEventQueue" ,arrowhead="odiamond",fontname="Helvetica"];
  Node6 -> Node24 [color="grey25",fontsize="10",style="solid",label=" +headerCallback\n+headerStatusCallback" ,arrowhead="odiamond",fontname="Helvetica"];
  Node24 -> Node24 [color="grey25",fontsize="10",style="solid",label=" +eventCallback" ,arrowhead="odiamond",fontname="Helvetica"];
  Node6 -> Node2 [color="grey25",fontsize="10",style="solid",label=" +session\n+sentAlertCallback\n+sentSyncCallback" ,arrowhead="odiamond",fontname="Helvetica"];
  Node30 -> Node1 [color="grey25",fontsize="10",style="solid",label=" +dsObject" ,arrowhead="odiamond",fontname="Helvetica"];
  Node30 [label="{SmlDataSyncObject\n|+ dsType\l+ tspType\l+ conType\l+ managerMutex\l+ functions\l+ context\l+ source\l+ datastores\l+ useNumberOfChanges\l+ useTimestampAnchor\land 32 more...\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlDataSyncObject.html",tooltip="This is the central synchronization object. "];
  Node2 -> Node30 [color="grey25",fontsize="10",style="solid",label=" +funcDatastoreAlert" ,arrowhead="odiamond",fontname="Helvetica"];
  Node31 -> Node30 [color="grey25",fontsize="10",style="solid",label=" +auth" ,arrowhead="odiamond",fontname="Helvetica"];
  Node31 [label="{SmlAuthenticator\n|+ state\l+ verifyCallbackUserdata\l+ enabled\l+ type\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlAuthenticator.html"];
  Node7 -> Node31 [color="grey25",fontsize="10",style="solid",label=" +verifyCallback" ,arrowhead="odiamond",fontname="Helvetica"];
  Node30 -> Node30 [color="grey25",fontsize="10",style="solid",label=" +getAlertTypeCallback\n+eventCallback\n+handleRemoteDevInfCallback\n+funcDsConnect\n+writeDevInfCallback\n+funcTspConnect\n+getAnchorCallback\n+changeStatusCallback\n+funcDsInit\n+setAnchorCallback\n..." ,arrowhead="odiamond",fontname="Helvetica"];
  Node32 -> Node30 [color="grey25",fontsize="10",style="solid",label=" +agent" ,arrowhead="odiamond",fontname="Helvetica"];
  Node32 [label="{SmlDevInfAgent\n|+ sessions\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlDevInfAgent.html"];
  Node33 -> Node32 [color="grey25",fontsize="10",style="solid",label=" +devinf" ,arrowhead="odiamond",fontname="Helvetica"];
  Node33 [label="{SmlDevInf\n|+ refCount\l+ version\l+ devtyp\l+ manufacturer\l+ model\l+ oem\l+ softwareVersion\l+ hardwareVersion\l+ firmwareVersion\l+ devid\l+ supportsUTC\l+ supportsLargeObjs\l+ supportsNumberOfChanges\l+ datastores\l+ ctcaps\l|}",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structSmlDevInf.html"];
  Node25 -> Node30 [color="grey25",fontsize="10",style="solid",label=" +tsp" ,arrowhead="odiamond",fontname="Helvetica"];
  Node29 -> Node30 [color="grey25",fontsize="10",style="solid",label=" +thread" ,arrowhead="odiamond",fontname="Helvetica"];
  Node6 -> Node30 [color="grey25",fontsize="10",style="solid",label=" +session" ,arrowhead="odiamond",fontname="Helvetica"];
  Node24 -> Node30 [color="grey25",fontsize="10",style="solid",label=" +manager" ,arrowhead="odiamond",fontname="Helvetica"];
  Node33 -> Node30 [color="grey25",fontsize="10",style="solid",label=" +readDevInfCallback\n+localDevInf\n+remoteDevInf" ,arrowhead="odiamond",fontname="Helvetica"];
  Node23 -> Node1 [color="grey25",fontsize="10",style="solid",label=" +server" ,arrowhead="odiamond",fontname="Helvetica"];
}
