//******************************************************************
//
// 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.
//
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
/**
@page ca_functional CA Functional design/implementation
- @ref caf_overview
- @ref caf_ovr_communication
- @ref caf_ovr_comm_netinterface
- @ref caf_ovr_comm_netinterface_msg
- @ref caf_ovr_comm_netinterface_control
- @ref caf_ovr_comm_netinterface_eth
- @ref caf_ovr_comm_netinterface_wifi
- @ref caf_ovr_comm_netinterface_edr
- @ref caf_ovr_comm_netinterface_le
- @ref caf_ovr_comm_netinterface_detail
@section caf_overview Overview
The following are assorted implementation notes/references in regards to
@ref ca_overview
@subsection caf_ovr_communication Communication Adapters
@subsubsection caf_ovr_comm_netinterface Network Interface Creation
Interface connections are created at program startup. A Message Handler is
started by invoking the CAInitialize() command. This in turn establishes
the needed data structures and callbacks.
@dotfile ca_arch_sketch.gv
@paragraph caf_ovr_comm_netinterface_msg Message Handler
The message handler owns athread pool and send and reive queue.
@paragraph caf_ovr_comm_netinterface_control Interface controller
This directly controls the individual adapters. Calling CAInitializeAdapters(ca_thread_pool_t handle)
will invoke whatever config had been established by compile-time flags.
@paragraph caf_ovr_comm_netinterface_eth Ethernet Adapter
An interface adapter implemented to support Ethernet connections. It is
created by calling CAInitializeEthernet()
@paragraph caf_ovr_comm_netinterface_wifi WiFi Adapter
An interface adapter implemented to support WiFi connections. It is created
by calling CAInitializeWifi()
@paragraph caf_ovr_comm_netinterface_edr EDR Adapter
An interface adapter implemented to support EDR connections. It is created
by calling CAInitializeEDR()
@paragraph caf_ovr_comm_netinterface_le LE Adapter
An interface adapter implemented to support LE connections. It is created
by calling CAInitializeLE()
@paragraph caf_ovr_comm_netinterface_detail Detailed Structure
The following is a more detailed breakdown on the main types involved.
Several structs and function details are present. However the diagram
is more of a sketch and is not 100% complete.
@dotfile ca_arch.gv
*/