This file is indexed.

/usr/include/titan/Component.hh is in eclipse-titan 6.3.1-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
/******************************************************************************
 * Copyright (c) 2000-2017 Ericsson Telecom AB
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *   Balasko, Jeno
 *   Baranyi, Botond
 *   Beres, Szabolcs
 *   Delic, Adam
 *   Raduly, Csaba
 *   Szabados, Kristof
 *   Szabo, Janos Zoltan – initial implementation
 *   Tatarka, Gabor
 *
 ******************************************************************************/
#ifndef COMPONENT_HH
#define COMPONENT_HH

#include "Types.h"
#include "Basetype.hh"
#include "Template.hh"

class Module_Param;

template<typename T>
class OPTIONAL;
class VERDICTTYPE;

// value class for all component types

class COMPONENT : public Base_Type {
  friend class COMPONENT_template;
  friend boolean operator==(component component_value,
    const COMPONENT& other_value);

  static unsigned int n_component_names;
  struct component_name_struct;
  static component_name_struct *component_names;

  component component_value;

public:
  COMPONENT();
  COMPONENT(component other_value);
  COMPONENT(const COMPONENT& other_value);

  COMPONENT& operator=(component other_value);
  COMPONENT& operator=(const COMPONENT& other_value);

  boolean operator==(component other_value) const;
  boolean operator==(const COMPONENT& other_value) const;

  inline boolean operator!=(component other_value) const
    { return !(*this == other_value); }
  inline boolean operator!=(const COMPONENT& other_value) const
    { return !(*this == other_value); }

  operator component() const;

  inline boolean is_bound() const
    { return component_value != UNBOUND_COMPREF; }
  inline boolean is_value() const
    { return component_value != UNBOUND_COMPREF; }
  inline void clean_up() { component_value = UNBOUND_COMPREF; }
  void must_bound(const char*) const;

  void log() const;

#ifdef TITAN_RUNTIME_2
  boolean is_equal(const Base_Type* other_value) const { return *this == *(static_cast<const COMPONENT*>(other_value)); }
  void set_value(const Base_Type* other_value) { *this = *(static_cast<const COMPONENT*>(other_value)); }
  Base_Type* clone() const { return new COMPONENT(*this); }
  const TTCN_Typedescriptor_t* get_descriptor() const { return &COMPONENT_descr_; }
  Module_Param* get_param(Module_Param_Name& param_name) const;
#else
  inline boolean is_present() const { return is_bound(); }
#endif

  alt_status done(VERDICTTYPE* value_redirect, Index_Redirect*) const;
  alt_status killed(Index_Redirect*) const;

  boolean running(Index_Redirect*) const;
  boolean alive(Index_Redirect*) const;

  void stop() const;
  void kill() const;

  void set_param(Module_Param& param);

  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);

  static void register_component_name(component component_reference,
    const char *component_name);
  static const char *get_component_name(component component_reference);
  static void clear_component_names();
  static void log_component_reference(component component_reference);
  /** Returns the symbolic value of \p component_reference
   *
   * If it's a special value, it returns its name ("null","mtc" or "system").
   * If it has a name, it returns "name(number)"
   * Else returns "number"
   *
   * @param component_reference
   * @return a string which must be Free()'d
   */
  static char *get_component_string(component component_reference);
  
  inline boolean is_component() { return TRUE; }
};

extern boolean operator==(component component_value,
  const COMPONENT& other_value);

inline boolean operator!=(component component_value,
  const COMPONENT& other_value)
{
  return !(component_value == other_value);
}

extern COMPONENT self;


// template for all component types

class COMPONENT_template : public Base_Template {
private:
  union {
    component single_value;
    struct {
      unsigned int n_values;
      COMPONENT_template *list_value;
    } value_list;
  };

  void copy_template(const COMPONENT_template& other_value);

public:
  COMPONENT_template();
  COMPONENT_template(template_sel other_value);
  COMPONENT_template(component other_value);
  COMPONENT_template(const COMPONENT& other_value);
  COMPONENT_template(const OPTIONAL<COMPONENT>& other_value);
  COMPONENT_template(const COMPONENT_template& other_value);

  ~COMPONENT_template();
  void clean_up();

  COMPONENT_template& operator=(template_sel other_value);
  COMPONENT_template& operator=(component other_value);
  COMPONENT_template& operator=(const COMPONENT& other_value);
  COMPONENT_template& operator=(const OPTIONAL<COMPONENT>& other_value);
  COMPONENT_template& operator=(const COMPONENT_template& other_value);

  boolean match(component other_value, boolean legacy = FALSE) const;
  boolean match(const COMPONENT& other_value, boolean legacy = FALSE) const;
  component valueof() const;

  void set_type(template_sel template_type, unsigned int list_length);
  COMPONENT_template& list_item(unsigned int list_index);

  void log() const;
  void log_match(const COMPONENT& match_value, boolean legacy = FALSE) const;

  void set_param(Module_Param& param);

  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);

  boolean is_present(boolean legacy = FALSE) const;
  boolean match_omit(boolean legacy = FALSE) const;
#ifdef TITAN_RUNTIME_2
  Module_Param* get_param(Module_Param_Name& param_name) const;
  void valueofv(Base_Type* value) const { *(static_cast<COMPONENT*>(value)) = valueof(); }
  void set_value(template_sel other_value) { *this = other_value; }
  void copy_value(const Base_Type* other_value) { *this = *(static_cast<const COMPONENT*>(other_value)); }
  Base_Template* clone() const { return new COMPONENT_template(*this); }
  const TTCN_Typedescriptor_t* get_descriptor() const { return &COMPONENT_descr_; }
  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const COMPONENT*>(other_value)), legacy); }
  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const COMPONENT*>(match_value)), legacy); }
#else
  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
#endif
  
  inline boolean is_component() { return TRUE; }
};

extern const COMPONENT_template& any_compref;

#endif