//****************************************************************** // // Copyright 2015 Samsung Electronics All Rights Reserved. // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= digraph G { label = "Network Interface Creation"; fontsize = 10; edge [ fontsize = 10 ] node [ fontsize = 10, ] // ---- msg_handler [ shape = none margin = 0 label = <

Message Handler
-g_threadPoolHandle: ca_thread_pool_t
-g_sendThread: CAQueueingThread_t
-g_receiveThread: CAQueueingThread_t
-g_retransmissionContext: CARetransmission_t
-g_requestHandler: CARequestCallback
-g_responseHandler: CAResponseCallback
+CAInitializeMessageHandler
+CATerminateMessageHandler
> ] threadpool [ shape = none margin = 0 label = <

ca_threadpool_t
+ca_thread_pool_init
+ca_thread_pool_free
+ca_thread_pool_add_task
> ] thread_out [ shape = none margin = 0 label = <

Send Thread
+CASendThreadProcess
> ] thread_in [ shape = none margin = 0 label = <

Receive Thread
+CAReceiveThreadProcess
> ] thread_retrans [ shape = none margin = 0 label = <

Retransmit Thread
+CASendUnicastData
> ] control [ tooltip = "Interface Controller", label = "{Interface Controller| +CAInitializeAdapters()\l\n \n }", URL = "\ref CAInitializeAdapters()" shape = none margin = 0 label = <

Interface Controller
-g_adapterHandler: CAConnectivityHandler_t[]
-g_networkPacketReceivedCallback: CANetworkPacketReceivedCallback
-g_networkChangeCallback: CANetworkChangeCallback
+CAInitializeAdapters
+CATerminateAdapters
+CAStartAdapter
+CAStopAdapter
+CAGetNetworkInfo
+CAStartListeningServerAdapters
+CAStartDiscoveryServerAdapters
> ] conn_handler [ shape = none margin = 0 label = <

CAConnectivityHandler_t
+startAdapter: CAAdapterStart
+startListenServer: CAAdapterStartListeningServer
+startDiscoveryServer: CAAdapterStartDiscoveryServer
+sendData: CAAdapterSendUnicastData
+sendDataToAll: CAAdapterSendMulticastData
+GetnetInfo: CAAdapterGetNetworkInfo
+readData: CAAdapterReadData
+stopAdapter: CAAdapterStop
+terminate: CAAdapterTerminate
> ] adapt01 [ shape = none margin = 0 label = <

Ethernet Adapter
+CAInitializeEthernet
+CATerminateEthernet
+CAStartEthernet
+CAStopEthernet
+CAStartEthernetListeningServer
+CAStartEthernetDiscoveryServer
+CAGetEthernetInterfaceInformation
+CASendEthernetUnicastData
+CASendEthernetMulticastData
+CAReadEthernetData
> ] adapt02 [ tooltip = "WiFi Adapter", label = "{WiFi Adapter| +CAInitializeWifi()\l\n \n }", URL = "\ref CAInitializeWifi()" shape = none margin = 0 label = <

WiFi Adapter
+CAInitializeWifi
+CATerminateWIFI
+CAStartWIFI
+CAStopWIFI
+CAStartWIFIListeningServer
+CAStartWIFIDiscoveryServer
+CAGetWIFIInterfaceInformation
+CASendWIFIUnicastData
+CASendWIFIMulticastData
+CAReadWIFIData
> ] adapt03 [ tooltip = "EDR Adapter", label = "{EDR Adapter| +CAInitializeEDR()\l\n \n }", URL = "\ref CAInitializeEDR()" shape = none margin = 0 label = <

EDR Adapter
+CAInitializeEDR
+CATerminateEDR
+CAStartEDR
+CAStopEDR
+CAStartEDRListeningServer
+CAStartEDRDiscoveryServer
+CAGetEDRInterfaceInformation
+CASendEDRUnicastData
+CASendEDRMulticastData
+CAReadEDRData
> ] adapt04 [ tooltip = "LE Adapter", label = "{LE Adapter| +CAInitializeLE()\l\n \n }", URL = "\ref CAInitializeLE()" shape = none margin = 0 label = <

LE Adapter
+CAInitializeLE
+CATerminateLE
+CAStartLE
+CAStopLE
+CAStartLEListeningServer
+CAStartLEDiscoveryServer
+CAGetLEInterfaceInformation
+CASendLEUnicastData
+CASendLEMulticastData
+CAReadLEData
> ] // UML Inheritance relationships edge [ arrowtail = open, dir = back ] { conn_handler -> adapt01 conn_handler -> adapt02 conn_handler -> adapt03 conn_handler -> adapt04 } // UML Aggregation relationships edge [ arrowtail = odiamond, dir = back ] msg_handler -> control msg_handler -> threadpool msg_handler -> thread_out msg_handler -> thread_in msg_handler -> thread_retrans control -> conn_handler // Additional 'layout' tweaks {rank = same control threadpool thread_out thread_in thread_retrans} edge [ style = invis ] threadpool -> thread_out -> control -> thread_in -> thread_retrans }