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

#include <stdio.h>
#include <stdlib.h>
#include "asn1PerCppTypes.h"
#include "asn1Class.h"
#include "rtTable.h"
#include "asn1ClassPER.h"


/* Class definitions */


/**************************************************************/
/*                                                            */
/*  TYPE_IDENTIFIER                                            */
/*                                                            */
/**************************************************************/

class EXTERNPER TYPE_IDENTIFIER {
 protected:
   ASN1TObjId id;

   TYPE_IDENTIFIER () {
   }

 public:
   virtual int encodePERType
      (ASN1CTXT* pctxt, ASN1TObject& object) { return ASN_OK; }

   virtual int decodePERType
      (ASN1CTXT* pctxt, ASN1TObject& object) { return ASN_OK; }

   virtual void printType
      (ASN1ConstCharPtr name, ASN1TObject& object) { }

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


/**************************************************************/
/*                                                            */
/*  ABSTRACT_SYNTAX                                            */
/*                                                            */
/**************************************************************/

class EXTERNPER ABSTRACT_SYNTAX {
 protected:
   struct {
      unsigned propertyPresent : 1;
   } m;
   ASN1TObjId id;
   ASN1T__ABSTRACT_SYNTAX_property property;

   ABSTRACT_SYNTAX () {
      m.propertyPresent = 0;
   }

 public:
   virtual int encodePERType
      (ASN1CTXT* pctxt, ASN1TObject& object) { return ASN_OK; }

   virtual int decodePERType
      (ASN1CTXT* pctxt, ASN1TObject& object) { return ASN_OK; }

   virtual void printType
      (ASN1ConstCharPtr name, ASN1TObject& object) { }

   ASN1BOOL ispropertyPresent() {
       if(m.propertyPresent) {return TRUE;} else {return FALSE;}
   }
   inline ASN1BOOL idEquals (ASN1TObjId value) {
      return (id == value);
   }
   inline ASN1BOOL propertyEquals (ASN1T__ABSTRACT_SYNTAX_property* pvalue) {
      return (0 == rtCmpTCBitStr (property.numbits, property.data, pvalue->numbits, pvalue->data));
   }
} ;


#endif
