/**
 * This file was generated by the Objective Systems ASN1C Compiler
 * (http://www.obj-sys.com).  Version: 5.50, Date: 30-May-2003.
 */
#ifndef ASN1EMBEDDEDPDVPER_H
#define ASN1EMBEDDEDPDVPER_H

#include <stdio.h>
#include <stdlib.h>
#include "asn1PerCppTypes.h"
#include "asn1EmbeddedPDV.h"

/**************************************************************/
/*                                                            */
/*  EmbeddedPDV_identification_syntaxes                       */
/*                                                            */
/**************************************************************/


class EXTERNPER ASN1C_PEREmbeddedPDV_identification_syntaxes :
   public ASN1C_EmbeddedPDV_identification_syntaxes
{
protected:
public:
   ASN1C_PEREmbeddedPDV_identification_syntaxes (ASN1T_EmbeddedPDV_identification_syntaxes& data);
   ASN1C_PEREmbeddedPDV_identification_syntaxes (
      ASN1MessageBufferIF& msgBuf, ASN1T_EmbeddedPDV_identification_syntaxes& data);

   // standard encode/decode methods (defined in ASN1CType base class):
   // int Encode ();
   // int Decode ();

   // stream encode/decode methods:
   int EncodeTo (ASN1MessageBufferIF& msgBuf);
   int DecodeFrom (ASN1MessageBufferIF& msgBuf);

} ;

EXTERNPER int asn1PE_EmbeddedPDV_identification_syntaxes (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV_identification_syntaxes* pvalue);

EXTERNPER int asn1PD_EmbeddedPDV_identification_syntaxes (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV_identification_syntaxes* pvalue);

/**************************************************************/
/*                                                            */
/*  EmbeddedPDV_identification_context_negotiation            */
/*                                                            */
/**************************************************************/


class EXTERNPER ASN1C_PEREmbeddedPDV_identification_context_negotiation :
   public ASN1C_EmbeddedPDV_identification_context_negotiation
{
protected:
public:
   ASN1C_PEREmbeddedPDV_identification_context_negotiation (ASN1T_EmbeddedPDV_identification_context_negotiation& data);
   ASN1C_PEREmbeddedPDV_identification_context_negotiation (
      ASN1MessageBufferIF& msgBuf, ASN1T_EmbeddedPDV_identification_context_negotiation& data);

   // standard encode/decode methods (defined in ASN1CType base class):
   // int Encode ();
   // int Decode ();

   // stream encode/decode methods:
   int EncodeTo (ASN1MessageBufferIF& msgBuf);
   int DecodeFrom (ASN1MessageBufferIF& msgBuf);

} ;

EXTERNPER int asn1PE_EmbeddedPDV_identification_context_negotiation (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV_identification_context_negotiation* pvalue);

EXTERNPER int asn1PD_EmbeddedPDV_identification_context_negotiation (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV_identification_context_negotiation* pvalue);

/**************************************************************/
/*                                                            */
/*  EmbeddedPDV_identification                                */
/*                                                            */
/**************************************************************/


class EXTERNPER ASN1C_PEREmbeddedPDV_identification :
   public ASN1C_EmbeddedPDV_identification
{
protected:
public:
   ASN1C_PEREmbeddedPDV_identification (ASN1T_EmbeddedPDV_identification& data);
   ASN1C_PEREmbeddedPDV_identification (
      ASN1MessageBufferIF& msgBuf, ASN1T_EmbeddedPDV_identification& data);

   // standard encode/decode methods (defined in ASN1CType base class):
   // int Encode ();
   // int Decode ();

   // stream encode/decode methods:
   int EncodeTo (ASN1MessageBufferIF& msgBuf);
   int DecodeFrom (ASN1MessageBufferIF& msgBuf);

} ;

EXTERNPER int asn1PE_EmbeddedPDV_identification (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV_identification* pvalue);

EXTERNPER int asn1PD_EmbeddedPDV_identification (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV_identification* pvalue);

/**************************************************************/
/*                                                            */
/*  EmbeddedPDV                                               */
/*                                                            */
/**************************************************************/


class EXTERNPER ASN1C_PEREmbeddedPDV :
   public ASN1C_EmbeddedPDV
{
protected:
public:
   ASN1C_PEREmbeddedPDV (ASN1T_EmbeddedPDV& data);
   ASN1C_PEREmbeddedPDV (
      ASN1MessageBufferIF& msgBuf, ASN1T_EmbeddedPDV& data);

   // standard encode/decode methods (defined in ASN1CType base class):
   // int Encode ();
   // int Decode ();

   // stream encode/decode methods:
   int EncodeTo (ASN1MessageBufferIF& msgBuf);
   int DecodeFrom (ASN1MessageBufferIF& msgBuf);

} ;

EXTERNPER int asn1PE_EmbeddedPDV (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV* pvalue);

EXTERNPER int asn1PD_EmbeddedPDV (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV* pvalue);

#endif
