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

Generated by: LCOV version 1.14