*************************
Developer's API Reference
*************************

Core Services Object
====================

.. toctree::
   :maxdepth: 1

   Core Services <src/core/core.core_services>

Core Services
-------------

.. toctree::
   :maxdepth: 1

   Channel Manager <src/channels.channel_manager>
   Scheduler <src/core/core.scheduler>
   Settings Base <src/settings.settings_base>
   Tracing Manager <src/core/core.tracing>

Component Service Managers
++++++++++++++++++++++++++

.. toctree::
   :maxdepth: 1

   Abstract Service Manager Base Class <src/common.abstract_service_manager>

   Device Driver Manager <src/devices/devices.device_driver_manager>
   Presentation Manager <src/presentations/presentations.presentation_manager>
   Service Manager <src/services/services.service_manager>

Channels
========

Channel Primitives
------------------

.. toctree::
   :maxdepth: 1

   Sample Object <src/samples.sample>
   Channel Object <src/channels.channel>

Channel DB Access
-----------------

.. toctree::
   :maxdepth: 1

   Channel Database <src/channels.channel_database>
   Channel Database Interface <src/channels.channel_database_interface>
   Channel Publisher <src/channels.channel_publisher>

Populating Channels
-------------------

.. toctree::
   :maxdepth: 1

   Channel Source <src/channels.channel_source>
   Channel Source Device Property <src/channels.channel_source_device_property>

Settings
========

.. toctree::
   :maxdepth: 1

   Serialization <src/settings.settings_serializer_base>

Component Base Classes
======================

.. toctree::
   :maxdepth: 1

   Device Base <src/devices/devices.device_base>
   Presentation Base <src/presentations/presentations.presentation_base>
   Service Base <src/services/services.service_base>

Logging
=======

.. toctree::
   :maxdepth: 1

   Channel Source for Loggers <src/channels.logging.channel_source_logger>
   Logger Base <src/channels.logging.logger_base>
   Logging Events <src/channels.logging.logging_events>
   Logging Manager <src/channels.logging.logging_manager>

Support Modules
===============

.. toctree::
   :maxdepth: 1

   Boolean Type <src/common.types.boolean>
   Digi Device Information <src/common.digi_device_info>
   Dynamic ClassLoader <src/common.classloader>

Formatting
----------

.. toctree::
   :maxdepth: 1

   Format Channels <src/common.helpers.format_channels>
   Format Logging Events <src/common.helpers.format_logging_events>
   Generic Formatting Helpers <src/common.helpers.format_strings>

Time
----

.. toctree::
   :maxdepth: 1

   parse_duration module <src/common.helpers.parse_duration>
   sleep_aids module <src/common.helpers.sleep_aids>

.. only:: never

   .. toctree::
      :maxdepth: 1

      src/index
      lib/index
