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

#include <stdio.h>
#include <stdlib.h>
#include "asn1BerCppTypes.h"
#include "rtTable.h"
#include "Gost28147-89-EncryptionSyntax.h"
#include "Cryptographic-Gost-Useful-DefinitionsClass.h"
#include "TC26-Cryptographic-Gost-Useful-Definitions.h"
namespace asn1data {

/* Object definitions */

/**************************************************************/
/*                                                            */
/*  Gost28147_89_Algorithms_1                                 */
/*                                                            */
/**************************************************************/

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

   virtual void* constructASN1TType
       (ASN1CTXT* pctxt);

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

   virtual void destructASN1CType
       (ASN1CType* obj);

   virtual ~Gost28147_89_Algorithms_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 */

/**************************************************************/
/*                                                            */
/*  Gost28147_89_Algorithms                                   */
/*                                                            */
/**************************************************************/

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

 public:
   ALGORITHM_IDENTIFIER* lookupObject (ASN1TObjId _id);

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


}
#endif
