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

#include <stdio.h>
#include <stdlib.h>
#include "asn1CppTypes.h"
#include "ASN1CBitStr.h"

/**************************************************************/
/*                                                            */
/*  _ABSTRACT_SYNTAX_property                                  */
/*                                                            */
/**************************************************************/

class EXTERNRT ASN1C__ABSTRACT_SYNTAX_property;

typedef struct EXTERNRT ASN1T__ABSTRACT_SYNTAX_property {
   ASN1UINT  numbits;
   ASN1OCTET data[1];
   // ctors
   ASN1T__ABSTRACT_SYNTAX_property () : numbits(0) {}
   ASN1T__ABSTRACT_SYNTAX_property (ASN1UINT _numbits, const ASN1OCTET* _data) :
      numbits(_numbits) {
      memcpy (data, _data, sizeof(data));
   }
   ASN1T__ABSTRACT_SYNTAX_property (ASN1C__ABSTRACT_SYNTAX_property& srcData);
} ASN1T__ABSTRACT_SYNTAX_property;

class EXTERNRT ASN1C__ABSTRACT_SYNTAX_property :
   public ASN1CBitStr
{
protected:
   ASN1T__ABSTRACT_SYNTAX_property& msgData;
public:
   // named bits
   enum { handles_invalid_encoding = 0 };

   ASN1C__ABSTRACT_SYNTAX_property (ASN1T__ABSTRACT_SYNTAX_property& data);
   ASN1C__ABSTRACT_SYNTAX_property (
      ASN1MessageBufferIF& msgBuf, ASN1T__ABSTRACT_SYNTAX_property& data);
   ASN1C__ABSTRACT_SYNTAX_property (ASN1C__ABSTRACT_SYNTAX_property& original);

   // standard encode/decode methods (defined in ASN1CType base class):
   // int Encode ();
   // int Decode ();

   // stream encode/decode methods:

   void Print (ASN1ConstCharPtr name);
   int toString (ASN1ConstCharPtr name, 
                 char* buffer, int bufSize);
   ASN1BOOL Equals (ASN1T__ABSTRACT_SYNTAX_property* pCmpValue,
                    char* errBuff, int errBuffSize);
   ASN1T__ABSTRACT_SYNTAX_property& getCopy (ASN1T__ABSTRACT_SYNTAX_property* pDstData = 0);

   ASN1C__ABSTRACT_SYNTAX_property& operator= (ASN1C__ABSTRACT_SYNTAX_property& srcData);
} ;

EXTERNRT void asn1Print__ABSTRACT_SYNTAX_property
   (ASN1ConstCharPtr name, ASN1T__ABSTRACT_SYNTAX_property* pvalue);

EXTERNRT int asn1PrtToStr__ABSTRACT_SYNTAX_property (ASN1ConstCharPtr name, ASN1T__ABSTRACT_SYNTAX_property* pvalue, char* buffer, int bufSize);

EXTERNRT ASN1BOOL asn1Compare__ABSTRACT_SYNTAX_property (ASN1ConstCharPtr name, ASN1T__ABSTRACT_SYNTAX_property* pValue, ASN1T__ABSTRACT_SYNTAX_property* pCmpValue, char* errBuff, int errBuffSize);

EXTERNRT void asn1Copy__ABSTRACT_SYNTAX_property (ASN1CTXT *pctxt, ASN1T__ABSTRACT_SYNTAX_property* pSrcValue, ASN1T__ABSTRACT_SYNTAX_property* pDstValue);

/* Value definitions */

extern EXTERNRT ASN1UINT  _ABSTRACT_SYNTAX_property_default_numbits;
extern EXTERNRT ASN1OCTET _ABSTRACT_SYNTAX_property_default_data[];

#endif
