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

#include <stdio.h>
#include <stdlib.h>
#include "asn1BerCppTypes.h"
#include "rtTable.h"
#include "ASN1CBitStr.h"
#include "Cryptographic-Gost-Useful-DefinitionsClass.h"
namespace asn1data {

/* Object definitions */

/**************************************************************/
/*                                                            */
/*  PBEGostAlgorithms_1                                       */
/*                                                            */
/**************************************************************/

class EXTERN PBEGostAlgorithms_1 : public ALGORITHM_IDENTIFIER {
 public:
   PBEGostAlgorithms_1();

   virtual void* constructASN1TType
       (ASN1CTXT* pctxt);

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

   virtual void destructASN1CType
       (ASN1CType* obj);

   virtual ~PBEGostAlgorithms_1() {}

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

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

   virtual void copyType
      (ASN1CTXT* pctxt, ASN1TObject& srcObject, ASN1TObject& dstObject);
   virtual void freeType
      (ASN1CTXT* pctxt, ASN1TObject& object);
} ;


/* ObjectSet definitions */

/**************************************************************/
/*                                                            */
/*  PBEGostAlgorithms                                         */
/*                                                            */
/**************************************************************/

class EXTERN PBEGostAlgorithms {
 protected:
   ALGORITHM_IDENTIFIER* mObjectSet[1];
   const size_t mNumObjects;
   static PBEGostAlgorithms* mpInstance;
   PBEGostAlgorithms (ASN1CTXT *pctxt);

 public:
   ALGORITHM_IDENTIFIER* lookupObject (ASN1TObjId _id);

   static PBEGostAlgorithms* instance(ASN1CTXT *pctxt = 0);
} ;


}
#endif
