This file is indexed.

/usr/include/titan/Default.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
194
195
196
197
198
/******************************************************************************
 * 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 DEFAULT_HH
#define DEFAULT_HH

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

class Text_Buf;
class Module_Param;

template<typename T>
class OPTIONAL;

class Default_Base {
  friend class TTCN_Default;
  friend class DEFAULT;
  friend class DEFAULT_template;

  unsigned int default_id;
  const char *altstep_name;
  Default_Base *default_prev, *default_next;
  // Even though Default_base doesn't own these pointers,
  // it's best to disallow copying.
  Default_Base(const Default_Base&);
  Default_Base& operator=(const Default_Base&);
public:
  Default_Base(const char *par_altstep_name);
  virtual ~Default_Base();

  virtual alt_status call_altstep() = 0;

  void log() const;
};

class DEFAULT : public Base_Type {
  friend class TTCN_Default;
  friend class DEFAULT_template;
  friend boolean operator==(component default_value,
    const DEFAULT& other_value);
  friend boolean operator==(Default_Base *default_value,
    const DEFAULT& other_value);

  Default_Base *default_ptr;
public:
  DEFAULT();
  DEFAULT(component other_value);
  DEFAULT(Default_Base *other_value);
  DEFAULT(const DEFAULT& other_value);

  DEFAULT& operator=(component other_value);
  DEFAULT& operator=(Default_Base *other_value);
  DEFAULT& operator=(const DEFAULT& other_value);

  boolean operator==(component other_value) const;
  boolean operator==(Default_Base *other_value) const;
  boolean operator==(const DEFAULT& other_value) const;

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

  operator Default_Base*() const;

  boolean is_bound() const;
  boolean is_value() const;
  void clean_up();
  void log() const;

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

  void set_param(Module_Param& param);

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

extern boolean operator==(component default_value, const DEFAULT& other_value);
extern boolean operator==(Default_Base *default_value,
  const DEFAULT& other_value);

inline boolean operator!=(component default_value, const DEFAULT& other_value)
        { return !(default_value == other_value); }
inline boolean operator!=(Default_Base *default_value,
  const DEFAULT& other_value)
  { return !(default_value == other_value); }


class DEFAULT_template : public Base_Template {
  union {
    Default_Base *single_value;
    struct {
      unsigned int n_values;
      DEFAULT_template *list_value;
    } value_list;
  };

  void copy_template(const DEFAULT_template& other_value);

public:
  DEFAULT_template();
  DEFAULT_template(template_sel other_value);
  DEFAULT_template(component other_value);
  DEFAULT_template(Default_Base *other_value);
  DEFAULT_template(const DEFAULT& other_value);
  DEFAULT_template(const OPTIONAL<DEFAULT>& other_value);
  DEFAULT_template(const DEFAULT_template& other_value);

  ~DEFAULT_template();
  void clean_up();

  DEFAULT_template& operator=(template_sel other_value);
  DEFAULT_template& operator=(component other_value);
  DEFAULT_template& operator=(Default_Base *other_value);
  DEFAULT_template& operator=(const DEFAULT& other_value);
  DEFAULT_template& operator=(const OPTIONAL<DEFAULT>& other_value);
  DEFAULT_template& operator=(const DEFAULT_template& other_value);

  boolean match(component other_value, boolean legacy = FALSE) const;
  boolean match(Default_Base *other_value, boolean legacy = FALSE) const;
  boolean match(const DEFAULT& other_value, boolean legacy = FALSE) const;
  Default_Base *valueof() const;

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

  void log() const;
  void log_match(const DEFAULT& 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<DEFAULT*>(value)) = valueof(); }
  void set_value(template_sel other_value) { *this = other_value; }
  void copy_value(const Base_Type* other_value) { *this = *(static_cast<const DEFAULT*>(other_value)); }
  Base_Template* clone() const { return new DEFAULT_template(*this); }
  const TTCN_Typedescriptor_t* get_descriptor() const { return &DEFAULT_descr_; }
  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const DEFAULT*>(other_value)), legacy); }
  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const DEFAULT*>(match_value)), legacy); }
#else
  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
#endif
};

class TTCN_Default {
  static unsigned int default_count, backup_count;
  static Default_Base *list_head, *list_tail, *backup_head, *backup_tail;
  static boolean control_defaults_saved;
public:
  static unsigned int activate(Default_Base *new_default);
  static void deactivate(Default_Base *removable_default);
  static void deactivate(const DEFAULT& removable_default);
  static void deactivate_all();

  static alt_status try_altsteps();

  static void log(Default_Base *default_ptr);

  static void save_control_defaults();
  static void restore_control_defaults();
  static void reset_counter();
};

#endif