ASN_Any.hh 1.83 KB
Newer Older
Elemer Lelik's avatar
Elemer Lelik committed
1
/******************************************************************************
Adam Knapp's avatar
Adam Knapp committed
2
 * Copyright (c) 2000-2021 Ericsson Telecom AB
Elemer Lelik's avatar
Elemer Lelik committed
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v2.0
Elemer Lelik's avatar
Elemer Lelik committed
5
 * which accompanies this distribution, and is available at
6
 * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
Elemer Lelik's avatar
Elemer Lelik committed
7
8
9
10
11
12
13
14
 *
 * Contributors:
 *   Balasko, Jeno
 *   Delic, Adam
 *   Forstner, Matyas
 *   Raduly, Csaba
 *
 ******************************************************************************/
Elemer Lelik's avatar
Elemer Lelik committed
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
#ifndef ASN_ANY_HH
#define ASN_ANY_HH

#include "Octetstring.hh"

class ASN_ANY : public OCTETSTRING
{
public:
  ASN_ANY() : OCTETSTRING() {}
  ASN_ANY(int n_octets, const unsigned char* octets_ptr)
    : OCTETSTRING(n_octets, octets_ptr) {}
  ASN_ANY(const OCTETSTRING_ELEMENT& other_value)
    : OCTETSTRING(other_value) {}
  ASN_ANY(const OCTETSTRING& other_value)
    : OCTETSTRING(other_value) {}
  ASN_ANY(const ASN_ANY& other_value)
    : OCTETSTRING(other_value) {}

#ifdef TITAN_RUNTIME_2
  void set_value(const Base_Type* other_value) { *this = *(static_cast<const ASN_ANY*>(other_value)); }
  Base_Type* clone() const { return new ASN_ANY(*this); }
  const TTCN_Typedescriptor_t* get_descriptor() const { return &ASN_ANY_descr_; }
#endif

  void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
40
              int p_coding, ...) const;
Elemer Lelik's avatar
Elemer Lelik committed
41
42

  void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
43
              int p_coding, ...);
Elemer Lelik's avatar
Elemer Lelik committed
44
45
46
47
48
49
50
51
52
53
54
55
56

  ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,
                                unsigned p_coding) const;

  boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td,
                         const ASN_BER_TLV_t& p_tlv, unsigned L_form);


};

typedef OCTETSTRING_template ASN_ANY_template;

#endif /* ASN_ANY_HH */