SWDEV-223878 - Add cache manager and watch table to skeleton rdc_lib

Support cache manager and watch table in rdc_lib

RdcCacheManagerImpl.cc is added to implement cache of metrics. Currently, only
integer mertics are supported. The cache manager provids function to retrieve the
latest and history metrics from cache. It also provides interfaces to update and evict the cache.

RdcWatchTableImpl.cc is added to implement watch and unwatch fields. It uses the
field settings to control how frequently a field needs to be updated. We have a preliminarily
performance optimization for this class as it may be called very frequently.

RdcMetricsUpdaterImpl.cc is added to run the update at background thread when
RDC_OPERATION_MODE_AUTO is set.

After this code change, the rdcd/rdci should be able to implement basic discovery, group and dmon
function. The job management function is not implemented in the skeleton rdc_lib yet.

Change-Id: I26cff8c2ec85d1ad8e7df24c66b02f0060838d37
Этот коммит содержится в:
Bill(Shuzhou) Liu
2020-02-26 11:04:42 -05:00
коммит произвёл Chris Freehill
родитель a5f063f8b3
Коммит 1ff1c7b617
20 изменённых файлов: 1007 добавлений и 34 удалений
+1
Просмотреть файл
@@ -50,6 +50,7 @@ typedef enum {
RDC_ST_INVALID_HANDLER, //!< Invalid handler
RDC_ST_BAD_PARAMETER, //!< A parameter is invalid
RDC_ST_NOT_FOUND, //!< Cannot find the value
RDC_ST_CONFLICT, //!< Conflict with current state
RDC_ST_MAX_LIMIT //!< Max limit recording for the object
} rdc_status_t;