/**
 * This file was generated by the Objective Systems ASN1C Compiler
 * (http://www.obj-sys.com).  Version: 5.63.
 */
#ifndef ETS_ELECTRONICSIGNATUREFORMATS_97SYNTAXCLASS_H
#define ETS_ELECTRONICSIGNATUREFORMATS_97SYNTAXCLASS_H

#include <stdio.h>
#include <stdlib.h>
#include "asn1BerCppTypes.h"
#include "rtTable.h"
#include "ASN1CSeqOfList.h"
#include "ETS-ElectronicSignatureFormats-97Syntax.h"
#include "CryptographicMessageSyntax.h"
#include "ExtendedSecurityServices.h"
namespace asn1data {


/* Class definitions */


/**************************************************************/
/*                                                            */
/*  SIG_POLICY_QUALIFIER                                      */
/*                                                            */
/**************************************************************/

class EXTERN SIG_POLICY_QUALIFIER {
 protected:
   struct {
      unsigned QualifierPresent : 1;
   } m;
   ASN1TObjId id;

   SIG_POLICY_QUALIFIER () {
            m.QualifierPresent = 0;
   }

 public:
   ASN1BOOL isQualifierPresent() {
       if(m.QualifierPresent) {return TRUE;} else {return FALSE;}
   }
   virtual void* constructASN1TQualifier
       (ASN1CTXT* pctxt) { return NULL; };

   virtual ASN1CType* constructASN1CQualifier
       (ASN1MessageBufferIF& msgBuf, void* data) { return NULL; };

   virtual void destructASN1CQualifier
       (ASN1CType* obj) {}

   virtual ~SIG_POLICY_QUALIFIER() {}

   virtual int encodeBERQualifier
      (ASN1CTXT* pctxt, ASN1TObject& object) { return 0; }

   virtual int decodeBERQualifier
      (ASN1CTXT* pctxt, ASN1TObject& object) { return 0; }

   virtual void copyQualifier
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject) {}

   virtual void freeQualifier
      (ASN1CTXT* pctxt, ASN1TObject& object) {}

   inline ASN1BOOL idEquals (ASN1TObjId value) {
      return (id == value);
   }
} ;


/**************************************************************/
/*                                                            */
/*  COMMITMENT_QUALIFIER                                      */
/*                                                            */
/**************************************************************/

class EXTERN COMMITMENT_QUALIFIER {
 protected:
   struct {
      unsigned QualifierPresent : 1;
   } m;
   ASN1TObjId id;

   COMMITMENT_QUALIFIER () {
            m.QualifierPresent = 0;
   }

 public:
   ASN1BOOL isQualifierPresent() {
       if(m.QualifierPresent) {return TRUE;} else {return FALSE;}
   }
   virtual void* constructASN1TQualifier
       (ASN1CTXT* pctxt) { return NULL; };

   virtual ASN1CType* constructASN1CQualifier
       (ASN1MessageBufferIF& msgBuf, void* data) { return NULL; };

   virtual void destructASN1CQualifier
       (ASN1CType* obj) {}

   virtual ~COMMITMENT_QUALIFIER() {}

   virtual int encodeBERQualifier
      (ASN1CTXT* pctxt, ASN1TObject& object) { return 0; }

   virtual int decodeBERQualifier
      (ASN1CTXT* pctxt, ASN1TObject& object) { return 0; }

   virtual void copyQualifier
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject) {}

   virtual void freeQualifier
      (ASN1CTXT* pctxt, ASN1TObject& object) {}

   inline ASN1BOOL idEquals (ASN1TObjId value) {
      return (id == value);
   }
} ;


/**************************************************************/
/*                                                            */
/*  OTHER_REVOCATION_REF                                      */
/*                                                            */
/**************************************************************/

class EXTERN OTHER_REVOCATION_REF {
 protected:
   ASN1TObjId id;

   OTHER_REVOCATION_REF () {
   }

 public:
   virtual void* constructASN1TType
       (ASN1CTXT* pctxt) = 0;

   virtual ASN1CType* constructASN1CType
       (ASN1MessageBufferIF& msgBuf, void* data) = 0;

   virtual void destructASN1CType
       (ASN1CType* obj) = 0;

   virtual ~OTHER_REVOCATION_REF() {}

   virtual int encodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object) = 0;

   virtual int decodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object) = 0;

   virtual void copyType
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject) = 0;

   virtual void freeType
      (ASN1CTXT* pctxt, ASN1TObject& object) = 0;

   inline ASN1BOOL idEquals (ASN1TObjId value) {
      return (id == value);
   }
} ;


/**************************************************************/
/*                                                            */
/*  OTHER_REVOCATION_VAL                                      */
/*                                                            */
/**************************************************************/

class EXTERN OTHER_REVOCATION_VAL {
 protected:
   ASN1TObjId id;

   OTHER_REVOCATION_VAL () {
   }

 public:
   virtual void* constructASN1TType
       (ASN1CTXT* pctxt) = 0;

   virtual ASN1CType* constructASN1CType
       (ASN1MessageBufferIF& msgBuf, void* data) = 0;

   virtual void destructASN1CType
       (ASN1CType* obj) = 0;

   virtual ~OTHER_REVOCATION_VAL() {}

   virtual int encodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object) = 0;

   virtual int decodeBERType
      (ASN1CTXT* pctxt, ASN1TObject& object) = 0;

   virtual void copyType
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject) = 0;

   virtual void freeType
      (ASN1CTXT* pctxt, ASN1TObject& object) = 0;

   inline ASN1BOOL idEquals (ASN1TObjId value) {
      return (id == value);
   }
} ;


}
#endif
