LCOV - code coverage report
Current view: top level - ifmap/client - config_json_parser.h (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 3 3 100.0 %
Date: 2026-11-09 02:10:49 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2016 Juniper Networks, Inc. All rights reserved.
       3             :  * Copyright Contributors to the OpenSDN project
       4             :  */
       5             : 
       6             : #ifndef ctrlplane_config_json_parser_h
       7             : #define ctrlplane_config_json_parser_h
       8             : 
       9             : #include <list>
      10             : #include <map>
      11             : #include <string>
      12             : 
      13             : #include "config-client-mgr/config_json_parser_base.h"
      14             : 
      15             : #include "base/queue_task.h"
      16             : #include "ifmap/ifmap_table.h"
      17             : #include "ifmap/ifmap_origin.h"
      18             : 
      19             : #include "rapidjson/document.h"
      20             : #include "ifmap/ifmap_server_table.h"
      21             : #include "ifmap/ifmap_server.h"
      22             : 
      23             : #include <boost/function.hpp>
      24             : 
      25             : struct AutogenProperty;
      26             : class ConfigCass2JsonAdapter;
      27             : 
      28             : class ConfigJsonParser : public ConfigJsonParserBase {
      29             : public:
      30             :     typedef boost::function<
      31             :         bool(const contrail_rapidjson::Value &, std::unique_ptr<AutogenProperty> *)
      32             :     > MetadataParseFn;
      33             :     typedef std::map<std::string, MetadataParseFn> MetadataParseMap;
      34             :     typedef std::list<struct DBRequest *> RequestList;
      35             : 
      36             :     ConfigJsonParser();
      37             :     ~ConfigJsonParser();
      38             : 
      39             :     virtual void SetupGraphFilter();
      40             :     virtual void EndOfConfig();
      41             : 
      42             :     void MetadataRegister(const std::string &metadata, MetadataParseFn parser);
      43             :     void MetadataClear(const std::string &module);
      44             :     virtual bool Receive(const ConfigCass2JsonAdapter &adapter,
      45             :                  bool add_change);
      46         161 :     void ifmap_server_set(IFMapServer *ifmap_server) {
      47         161 :              ifmap_server_ = ifmap_server;
      48         161 :          };
      49             : 
      50             : private:
      51             :     void SetupObjectFilter();
      52             :     void SetupSchemaGraphFilter();
      53             :     void SetupSchemaWrapperPropertyInfo();
      54             :     bool ParseDocument(const ConfigCass2JsonAdapter &adapter,
      55             :         IFMapOrigin::Origin origin, RequestList *req_list,
      56             :         IFMapTable::RequestKey *key, bool add_change) const;
      57             :     bool ParseNameType(const ConfigCass2JsonAdapter &adapter,
      58             :                        IFMapTable::RequestKey *key) const;
      59             :     bool ParseProperties(const ConfigCass2JsonAdapter &adapter,
      60             :         const IFMapTable::RequestKey &key, IFMapOrigin::Origin origin,
      61             :         RequestList *req_list, bool add_change) const;
      62             :     bool ParseOneProperty(const ConfigCass2JsonAdapter &adapter,
      63             :         const contrail_rapidjson::Value &key_node,
      64             :         const contrail_rapidjson::Value &value_node,
      65             :         const IFMapTable::RequestKey &key, IFMapOrigin::Origin origin,
      66             :         RequestList *req_list, bool add_change) const;
      67             :     bool ParseLinks(const ConfigCass2JsonAdapter &adapter,
      68             :         const IFMapTable::RequestKey &key, IFMapOrigin::Origin origin,
      69             :         RequestList *req_list, bool add_change) const;
      70             :     bool ParseRef(const ConfigCass2JsonAdapter &adapter,
      71             :         const contrail_rapidjson::Value &ref_entry,
      72             :         IFMapOrigin::Origin origin, const std::string &refer,
      73             :         const IFMapTable::RequestKey &key,
      74             :         RequestList *req_list, bool add_change) const;
      75             :     bool ParseOneRef(const ConfigCass2JsonAdapter &adapter,
      76             :         const contrail_rapidjson::Value &arr,
      77             :         const IFMapTable::RequestKey &key, IFMapOrigin::Origin origin,
      78             :         RequestList *req_list, const std::string &key_str,
      79             :         size_t pos, bool add_change) const;
      80             :     void EnqueueListToTables(RequestList *req_list) const;
      81             :     void InsertRequestIntoQ(IFMapOrigin::Origin origin,
      82             :         const std::string &neigh_type, const std::string &neigh_name,
      83             :         const std::string &metaname, std::unique_ptr<AutogenProperty> &pvalue,
      84             :         const IFMapTable::RequestKey &key, bool add_change,
      85             :         RequestList *req_list) const;
      86             : 
      87             :     IFMapTable::RequestKey *CloneKey(const IFMapTable::RequestKey &src) const;
      88             :     IFMapServer *ifmap_server_;
      89             :     MetadataParseMap metadata_map_;
      90             : };
      91             : 
      92             : #endif // ctrlplane_config_json_parser_h

Generated by: LCOV version 1.14