/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
|