LCOV - code coverage report
Current view: top level - root/contrail/src/contrail-common/sandesh/compiler/parse - t_service.h (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 0 20 0.0 %
Date: 2026-11-09 02:10:49 Functions: 0 7 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Licensed to the Apache Software Foundation (ASF) under one
       3             :  * or more contributor license agreements. See the NOTICE file
       4             :  * distributed with this work for additional information
       5             :  * regarding copyright ownership. The ASF licenses this file
       6             :  * to you under the Apache License, Version 2.0 (the
       7             :  * "License"); you may not use this file except in compliance
       8             :  * with the License. You may obtain a copy of the License at
       9             :  *
      10             :  *   http://www.apache.org/licenses/LICENSE-2.0
      11             :  *
      12             :  * Unless required by applicable law or agreed to in writing,
      13             :  * software distributed under the License is distributed on an
      14             :  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
      15             :  * KIND, either express or implied. See the License for the
      16             :  * specific language governing permissions and limitations
      17             :  * under the License.
      18             :  *
      19             :  * Modifications Copyright (c) Juniper Networks, Inc.
      20             :  * Copyright Contributors to the OpenSDN project
      21             :  */
      22             : 
      23             : #ifndef T_SERVICE_H
      24             : #define T_SERVICE_H
      25             : 
      26             : #include "t_function.h"
      27             : #include <vector>
      28             : 
      29             : class t_program;
      30             : 
      31             : /**
      32             :  * A service consists of a set of functions.
      33             :  *
      34             :  */
      35             : class t_service : public t_type {
      36             :  public:
      37           0 :   t_service(t_program* program) :
      38             :     t_type(program),
      39           0 :     extends_(NULL) {}
      40             : 
      41           0 :   bool is_service() const {
      42           0 :     return true;
      43             :   }
      44             : 
      45           0 :   void set_extends(t_service* extends) {
      46           0 :     extends_ = extends;
      47           0 :   }
      48             : 
      49           0 :   void add_function(t_function* func) {
      50           0 :     std::vector<t_function*>::const_iterator iter;
      51           0 :     for (iter = functions_.begin(); iter != functions_.end(); iter++) {
      52           0 :       if (func->get_name() == (*iter)->get_name()) {
      53           0 :         throw "Function " + func->get_name() + " is already defined";
      54             :       }
      55             :     }
      56           0 :     functions_.push_back(func);
      57           0 :   }
      58             : 
      59           0 :   const std::vector<t_function*>& get_functions() const {
      60           0 :     return functions_;
      61             :   }
      62             : 
      63           0 :   t_service* get_extends() {
      64           0 :     return extends_;
      65             :   }
      66             : 
      67           0 :   virtual std::string get_fingerprint_material() const {
      68             :     // Services should never be used in fingerprints.
      69           0 :     throw "BUG: Can't get fingerprint material for service.";
      70             :   }
      71             : 
      72             :  private:
      73             :   std::vector<t_function*> functions_;
      74             :   t_service* extends_;
      75             : };
      76             : 
      77             : #endif

Generated by: LCOV version 1.14