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

#include <stdio.h>
#include <stdlib.h>
#include "asn1BerCppTypes.h"
#include "rtTable.h"
#include "ASN1CSeqOfList.h"
#include "PKCS-12.h"
#include "PKCS-9.h"
namespace asn1data {


/* Class definitions */


/**************************************************************/
/*                                                            */
/*  BAG_TYPE                                                  */
/*                                                            */
/**************************************************************/

class EXTERN BAG_TYPE {
 protected:
   ASN1TObjId id;

   BAG_TYPE () {
   }

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

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

   virtual void destructASN1CType
       (ASN1CType* obj) = 0;

   virtual ~BAG_TYPE() {}

   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
