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

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

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


class EXTERNXER ASN1C_XEREmbeddedPDV_identification_syntaxes :
   public ASN1C_EmbeddedPDV_identification_syntaxes, public ASN1XERSAXDecodeHandler
{
protected:
   struct ElementID {
      enum {
         _unknown, abstract_, transfer
      } ;
   } ;
   int getElementID 
      (const XMLCHAR* const uri, const XMLCHAR* const localname,
       const XMLCHAR* const qname);

   ASN1MemBuf mCurrElemValue;
   int mReqElemCnt;
public:
   ASN1C_XEREmbeddedPDV_identification_syntaxes (ASN1T_EmbeddedPDV_identification_syntaxes& data);
   ASN1C_XEREmbeddedPDV_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);


   // SAX ContentHandler interface

   virtual void startElement 
      (const XMLCHAR* const uri, 
       const XMLCHAR* const localname, 
       const XMLCHAR* const qname, 
       IXMLAttributes& attrs);

   virtual void characters 
      (const XMLCHAR* const chars,
       const unsigned int length);

   virtual void endElement
      (const XMLCHAR* const uri,
       const XMLCHAR* const localname,
       const XMLCHAR* const qname);

   virtual void init (int level = 0);
} ;

EXTERNXER int asn1XE_EmbeddedPDV_identification_syntaxes
  (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV_identification_syntaxes* pvalue,
   ASN1ConstCharPtr elemName, ASN1ConstCharPtr attributes);

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


class EXTERNXER ASN1C_XEREmbeddedPDV_identification_context_negotiation :
   public ASN1C_EmbeddedPDV_identification_context_negotiation, public ASN1XERSAXDecodeHandler
{
protected:
   struct ElementID {
      enum {
         _unknown, presentation_context_id, transfer_syntax
      } ;
   } ;
   int getElementID 
      (const XMLCHAR* const uri, const XMLCHAR* const localname,
       const XMLCHAR* const qname);

   ASN1MemBuf mCurrElemValue;
   int mReqElemCnt;
public:
   ASN1C_XEREmbeddedPDV_identification_context_negotiation (ASN1T_EmbeddedPDV_identification_context_negotiation& data);
   ASN1C_XEREmbeddedPDV_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);


   // SAX ContentHandler interface

   virtual void startElement 
      (const XMLCHAR* const uri, 
       const XMLCHAR* const localname, 
       const XMLCHAR* const qname, 
       IXMLAttributes& attrs);

   virtual void characters 
      (const XMLCHAR* const chars,
       const unsigned int length);

   virtual void endElement
      (const XMLCHAR* const uri,
       const XMLCHAR* const localname,
       const XMLCHAR* const qname);

   virtual void init (int level = 0);
} ;

EXTERNXER int asn1XE_EmbeddedPDV_identification_context_negotiation
  (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV_identification_context_negotiation* pvalue,
   ASN1ConstCharPtr elemName, ASN1ConstCharPtr attributes);

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


class EXTERNXER ASN1C_XEREmbeddedPDV_identification :
   public ASN1C_EmbeddedPDV_identification, public ASN1XERSAXDecodeHandler
{
protected:
   struct ElementID {
      enum {
         _unknown, syntaxes, syntax, presentation_context_id,
         context_negotiation, transfer_syntax, fixed
      } ;
   } ;
   int getElementID 
      (const XMLCHAR* const uri, const XMLCHAR* const localname,
       const XMLCHAR* const qname);

   class ASN1C_XEREmbeddedPDV_identification_syntaxes* mpSyntaxesC;
   class ASN1C_XEREmbeddedPDV_identification_context_negotiation* mpContext_negotiationC;
   ASN1XERSAXDecodeHandler* mpCurrElem;
   ASN1MemBuf mCurrElemValue;
public:
   ASN1C_XEREmbeddedPDV_identification (ASN1T_EmbeddedPDV_identification& data);
   ASN1C_XEREmbeddedPDV_identification (
      ASN1MessageBufferIF& msgBuf, ASN1T_EmbeddedPDV_identification& data);

   ~ASN1C_XEREmbeddedPDV_identification();
   // 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);


   // SAX ContentHandler interface

   virtual void startElement 
      (const XMLCHAR* const uri, 
       const XMLCHAR* const localname, 
       const XMLCHAR* const qname, 
       IXMLAttributes& attrs);

   virtual void characters 
      (const XMLCHAR* const chars,
       const unsigned int length);

   virtual void endElement
      (const XMLCHAR* const uri,
       const XMLCHAR* const localname,
       const XMLCHAR* const qname);

   virtual void init (int level = 0);
} ;

EXTERNXER int asn1XE_EmbeddedPDV_identification
  (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV_identification* pvalue,
   ASN1ConstCharPtr elemName, ASN1ConstCharPtr attributes);

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


class EXTERNXER ASN1C_XEREmbeddedPDV :
   public ASN1C_EmbeddedPDV, public ASN1XERSAXDecodeHandler
{
protected:
   struct ElementID {
      enum {
         _unknown, identification, data_value_descriptor, data_value
      } ;
   } ;
   int getElementID 
      (const XMLCHAR* const uri, const XMLCHAR* const localname,
       const XMLCHAR* const qname);

   class ASN1C_XEREmbeddedPDV_identification* mpIdentificationC;
   ASN1XERSAXDecodeHandler* mpCurrElem;
   ASN1MemBuf mCurrElemValue;
   int mReqElemCnt;
public:
   ASN1C_XEREmbeddedPDV (ASN1T_EmbeddedPDV& data);
   ASN1C_XEREmbeddedPDV (
      ASN1MessageBufferIF& msgBuf, ASN1T_EmbeddedPDV& data);

   ~ASN1C_XEREmbeddedPDV();
   // 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);


   // SAX ContentHandler interface

   virtual void startElement 
      (const XMLCHAR* const uri, 
       const XMLCHAR* const localname, 
       const XMLCHAR* const qname, 
       IXMLAttributes& attrs);

   virtual void characters 
      (const XMLCHAR* const chars,
       const unsigned int length);

   virtual void endElement
      (const XMLCHAR* const uri,
       const XMLCHAR* const localname,
       const XMLCHAR* const qname);

   virtual void init (int level = 0);
} ;

EXTERNXER int asn1XE_EmbeddedPDV
  (ASN1CTXT* pctxt, ASN1T_EmbeddedPDV* pvalue,
   ASN1ConstCharPtr elemName, ASN1ConstCharPtr attributes);

#endif
