LCOV - code coverage report
Current view: top level - examples - keyMeta.c (source / functions) Hit Total Coverage
Test: coverage-filtered.info Lines: 0 24 0.0 %
Date: 2019-09-12 12:28:41 Functions: 0 4 0.0 %

          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 <kdb.h>
      10             : 
      11             : Key * copy;
      12             : 
      13             : //! [Basic Copy All]
      14           0 : void l (Key * k)
      15             : {
      16             :         // receive copy
      17           0 :         keyCopyAllMeta (k, copy);
      18             :         // the caller will see the changed key k
      19             :         // with all the metadata from copy
      20           0 : }
      21             : //! [Basic Copy All]
      22             : 
      23           0 : int needsSharedData (Key * k)
      24             : {
      25           0 :         return k ? 1 : 0;
      26             : }
      27             : 
      28             : //! [Shared Meta All]
      29           0 : void o (KeySet * ks)
      30             : {
      31             :         Key * current;
      32           0 :         Key * shared = keyNew (0);
      33           0 :         keySetMeta (shared, "shared1", "this metadata should be shared among many keys");
      34           0 :         keySetMeta (shared, "shared2", "this metadata should be shared among many keys also");
      35           0 :         keySetMeta (shared, "shared3", "this metadata should be shared among many keys too");
      36             : 
      37           0 :         ksRewind (ks);
      38           0 :         while ((current = ksNext (ks)) != 0)
      39             :         {
      40           0 :                 if (needsSharedData (current)) keyCopyAllMeta (current, shared);
      41             :         }
      42             : 
      43           0 :         keyDel (shared);
      44           0 : }
      45             : //! [Shared Meta All]
      46             : 
      47           0 : int main (void)
      48             : {
      49           0 :         Key * k = keyNew ("user/key", KEY_END);
      50           0 :         copy = keyNew ("user/copy", KEY_END);
      51           0 :         l (k);
      52           0 :         keyDel (k);
      53           0 :         keyDel (copy);
      54             : 
      55           0 :         KeySet * ks = ksNew (20, KS_END);
      56           0 :         o (ks);
      57           0 :         ksDel (ks);
      58             : }

Generated by: LCOV version 1.13