LCOV - code coverage report
Current view: top level - src/plugins/hidden - hidden.c (source / functions) Hit Total Coverage
Test: coverage-filtered.info Lines: 15 30 50.0 %
Date: 2019-09-12 12:28:41 Functions: 4 6 66.7 %

          Line data    Source code
       1             : /**
       2             :  * @file
       3             :  *
       4             :  * @brief
       5             :  *
       6             :  * @copyright BSD License (see LICENSE.md or https://www.libelektra.org)
       7             :  */
       8             : 
       9             : #include "hidden.h"
      10             : 
      11             : #ifndef HAVE_KDBCONFIG
      12             : #include "kdbconfig.h"
      13             : #endif
      14             : 
      15             : #include <string.h>
      16             : 
      17          20 : int elektraHiddenOpen (Plugin * handle, Key * errorKey ELEKTRA_UNUSED)
      18             : {
      19          20 :         elektraPluginSetData (handle, ksNew (0, KS_END));
      20             : 
      21          20 :         return 1; /* success */
      22             : }
      23             : 
      24          20 : int elektraHiddenClose (Plugin * handle, Key * errorKey ELEKTRA_UNUSED)
      25             : {
      26          20 :         ksDel (elektraPluginGetData (handle));
      27             : 
      28          20 :         return 1; /* success */
      29             : }
      30             : 
      31          20 : int elektraHiddenGet (Plugin * handle, KeySet * returned, Key * parentKey)
      32             : {
      33          20 :         if (!strcmp (keyName (parentKey), "system/elektra/modules/hidden"))
      34             :         {
      35          20 :                 KeySet * pluginConfig =
      36          20 :                         ksNew (30, keyNew ("system/elektra/modules/hidden", KEY_VALUE, "hidden plugin waits for your orders", KEY_END),
      37             :                                keyNew ("system/elektra/modules/hidden/exports", KEY_END),
      38             :                                keyNew ("system/elektra/modules/hidden/exports/open", KEY_FUNC, elektraHiddenOpen, KEY_END),
      39             :                                keyNew ("system/elektra/modules/hidden/exports/close", KEY_FUNC, elektraHiddenClose, KEY_END),
      40             :                                keyNew ("system/elektra/modules/hidden/exports/get", KEY_FUNC, elektraHiddenGet, KEY_END),
      41             :                                keyNew ("system/elektra/modules/hidden/exports/set", KEY_FUNC, elektraHiddenSet, KEY_END),
      42             : #include "readme_hidden.c"
      43             :                                keyNew ("system/elektra/modules/hidden/infos/version", KEY_VALUE, PLUGINVERSION, KEY_END), KS_END);
      44          20 :                 ksAppend (returned, pluginConfig);
      45          20 :                 ksDel (pluginConfig);
      46          20 :                 return 1;
      47             :         }
      48             : 
      49           0 :         Key * cur = 0;
      50           0 :         KeySet * newReturned = ksNew (ksGetSize (returned), KS_END);
      51           0 :         KeySet * hiddenKeys = elektraPluginGetData (handle);
      52           0 :         ksClear (hiddenKeys);
      53             : 
      54           0 :         while ((cur = ksNext (returned)) != 0)
      55             :         {
      56           0 :                 if (keyIsInactive (cur))
      57           0 :                         ksAppendKey (newReturned, cur);
      58             :                 else
      59           0 :                         ksAppendKey (hiddenKeys, cur);
      60             :         }
      61             : 
      62           0 :         ksCopy (returned, newReturned);
      63           0 :         ksDel (newReturned);
      64             : 
      65           0 :         return 1; /* success */
      66             : }
      67             : 
      68           0 : int elektraHiddenSet (Plugin * handle, KeySet * returned, Key * parentKey ELEKTRA_UNUSED)
      69             : {
      70           0 :         KeySet * hiddenKeys = elektraPluginGetData (handle);
      71           0 :         ksAppend (returned, hiddenKeys);
      72             : 
      73           0 :         return 1; /* success */
      74             : }
      75             : 
      76          20 : Plugin * ELEKTRA_PLUGIN_EXPORT
      77             : {
      78             :         // clang-format off
      79          20 :         return elektraPluginExport("hidden",
      80             :                 ELEKTRA_PLUGIN_OPEN,    &elektraHiddenOpen,
      81             :                 ELEKTRA_PLUGIN_CLOSE,   &elektraHiddenClose,
      82             :                 ELEKTRA_PLUGIN_GET,     &elektraHiddenGet,
      83             :                 ELEKTRA_PLUGIN_SET,     &elektraHiddenSet,
      84             :                 ELEKTRA_PLUGIN_END);
      85             : }
      86             : 

Generated by: LCOV version 1.13