// This C++ header file was generated by the TTCN-3 compiler
// of the TTCN-3 Test Executor version CRL 113 200/6 R6A
// for Lénárd Nagy (elnrnag@elx78355y6x) on Thu Oct 24 10:29:40 2019

// Copyright (c) 2000-2019 Ericsson Telecom AB

// Do not edit this file unless you know what you are doing.

#ifndef Isotp_HH
#define Isotp_HH

#ifdef TITAN_RUNTIME_2
#error Generated code does not match with used runtime.\
 Code was generated without -R option but -DTITAN_RUNTIME_2 was used.
#endif

/* Header file includes */

#include <TTCN3.hh>
#include "SocketCAN_Types.hh"

#if TTCN3_VERSION != 60600
#error Version mismatch detected.\
 Please check the version of the TTCN-3 compiler and the base library.\
 Run make clean and rebuild the project if the version of the compiler changed recently.
#endif

#ifndef LINUX
#error This file should be compiled on LINUX
#endif

namespace Isotp {

/* Function prototypes */

extern SocketCAN__Types::SocketCAN__write__isotp__result_template a__SocketCAN__write__isotp__result(const SocketCAN__Types::SocketCAN__Result_template& p__result);
extern SocketCAN__Types::SocketCAN__receive__isotp__pdu_template a__SocketCAN__receive__isotp__pdu(const INTEGER_template& p__id, const OCTETSTRING_template& , const OCTETSTRING_template& p__isotp__pdu);

/* Global variable declarations */

extern TTCN_Module module_object;

} /* end of namespace */

#endif
