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

#include <stdio.h>
#include <stdlib.h>
#include "asn1BerCppTypes.h"
#include "asn1XerCppTypes.h"
#include "rtTable.h"
namespace asn1data {

/**************************************************************/
/*                                                            */
/*  ID                                                        */
/*                                                            */
/**************************************************************/

typedef ASN1TObjId ASN1T_ID;

class EXTERN ASN1C_ID :
   public ASN1CType, public ASN1XERSAXDecodeHandler
{
protected:
   ASN1T_ID& msgData;
public:
   ASN1C_ID (ASN1T_ID& data);
   ASN1C_ID (
      ASN1MessageBufferIF& msgBuf, ASN1T_ID& data);
   ASN1C_ID (ASN1C_ID& original);

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

   // stream encode/decode methods:
   int EncodeTo (ASN1MessageBufferIF& msgBuf);
   int DecodeFrom (ASN1MessageBufferIF& msgBuf);

   ASN1T_ID& getCopy (ASN1T_ID* pDstData = 0);
   ASN1T_ID* newCopy ();

   inline ASN1C_ID& operator= (ASN1C_ID& srcData) {
      srcData.getCopy (&msgData);
      return *this;
   }
} ;

EXTERN int asn1E_ID (ASN1CTXT* pctxt,
   ASN1T_ID *pvalue, ASN1TagType tagging);

EXTERN int asn1D_ID (ASN1CTXT* pctxt,
   ASN1T_ID *pvalue, ASN1TagType tagging, int length);

EXTERN int asn1XE_ID
  (ASN1CTXT* pctxt, ASN1T_ID* pvalue,
   ASN1ConstCharPtr elemName, ASN1ConstCharPtr attributes);

EXTERN void asn1Copy_ID (ASN1CTXT *pctxt, ASN1T_ID* pSrcValue, ASN1T_ID* pDstValue);

/* Value definitions */

extern EXTERN ASN1OBJID ds;
extern EXTERN ASN1OBJID module;
extern EXTERN ASN1OBJID serviceElement;
extern EXTERN ASN1OBJID applicationContext;
extern EXTERN ASN1OBJID attributeType;
extern EXTERN ASN1OBJID attributeSyntax;
extern EXTERN ASN1OBJID objectClass;
extern EXTERN ASN1OBJID algorithm;
extern EXTERN ASN1OBJID abstractSyntax;
extern EXTERN ASN1OBJID dsaOperationalAttribute;
extern EXTERN ASN1OBJID matchingRule;
extern EXTERN ASN1OBJID knowledgeMatchingRule;
extern EXTERN ASN1OBJID nameForm;
extern EXTERN ASN1OBJID group;
extern EXTERN ASN1OBJID subentry;
extern EXTERN ASN1OBJID operationalAttributeType;
extern EXTERN ASN1OBJID operationalBinding;
extern EXTERN ASN1OBJID schemaObjectClass;
extern EXTERN ASN1OBJID schemaOperationalAttribute;
extern EXTERN ASN1OBJID administrativeRoles;
extern EXTERN ASN1OBJID accessControlAttribute;
extern EXTERN ASN1OBJID rosObject;
extern EXTERN ASN1OBJID contract;
extern EXTERN ASN1OBJID package_;
extern EXTERN ASN1OBJID accessControlSchemes;
extern EXTERN ASN1OBJID certificateExtension;
extern EXTERN ASN1OBJID managementObject;
extern EXTERN ASN1OBJID attributeValueContext;
extern EXTERN ASN1OBJID idmProtocol;
extern EXTERN ASN1OBJID problem;
extern EXTERN ASN1OBJID notification;
extern EXTERN ASN1OBJID matchingRestriction;
extern EXTERN ASN1OBJID controlAttributeType;
extern EXTERN ASN1OBJID usefulDefinitions;
extern EXTERN ASN1OBJID informationFramework;
extern EXTERN ASN1OBJID directoryAbstractService;
extern EXTERN ASN1OBJID distributedOperations;
extern EXTERN ASN1OBJID protocolObjectIdentifiers;
extern EXTERN ASN1OBJID selectedAttributeTypes;
extern EXTERN ASN1OBJID selectedObjectClasses;
extern EXTERN ASN1OBJID authenticationFramework;
extern EXTERN ASN1OBJID algorithmObjectIdentifiers;
extern EXTERN ASN1OBJID directoryObjectIdentifiers;
extern EXTERN ASN1OBJID upperBounds;
extern EXTERN ASN1OBJID dap;
extern EXTERN ASN1OBJID dsp;
extern EXTERN ASN1OBJID distributedDirectoryOIDs;
extern EXTERN ASN1OBJID directoryShadowOIDs;
extern EXTERN ASN1OBJID directoryShadowAbstractService;
extern EXTERN ASN1OBJID disp;
extern EXTERN ASN1OBJID dop;
extern EXTERN ASN1OBJID opBindingManagement;
extern EXTERN ASN1OBJID opBindingOIDs;
extern EXTERN ASN1OBJID hierarchicalOperationalBindings;
extern EXTERN ASN1OBJID dsaOperationalAttributeTypes;
extern EXTERN ASN1OBJID schemaAdministration;
extern EXTERN ASN1OBJID basicAccessControl;
extern EXTERN ASN1OBJID directoryOperationalBindingTypes;
extern EXTERN ASN1OBJID certificateExtensions;
extern EXTERN ASN1OBJID directoryManagement;
extern EXTERN ASN1OBJID enhancedSecurity;
extern EXTERN ASN1OBJID iDMProtocolSpecification;
extern EXTERN ASN1OBJID directoryIDMProtocols;
extern EXTERN ASN1OBJID id_oc;
extern EXTERN ASN1OBJID id_at;
extern EXTERN ASN1OBJID id_as;
extern EXTERN ASN1OBJID id_mr;
extern EXTERN ASN1OBJID id_nf;
extern EXTERN ASN1OBJID id_sc;
extern EXTERN ASN1OBJID id_oa;
extern EXTERN ASN1OBJID id_ob;
extern EXTERN ASN1OBJID id_doa;
extern EXTERN ASN1OBJID id_kmr;
extern EXTERN ASN1OBJID id_soc;
extern EXTERN ASN1OBJID id_soa;
extern EXTERN ASN1OBJID id_ar;
extern EXTERN ASN1OBJID id_aca;
extern EXTERN ASN1OBJID id_ac;
extern EXTERN ASN1OBJID id_rosObject;
extern EXTERN ASN1OBJID id_contract;
extern EXTERN ASN1OBJID id_package;
extern EXTERN ASN1OBJID id_acScheme;
extern EXTERN ASN1OBJID id_ce;
extern EXTERN ASN1OBJID id_mgt;
extern EXTERN ASN1OBJID id_idm;
extern EXTERN ASN1OBJID id_avc;
extern EXTERN ASN1OBJID id_pr;
extern EXTERN ASN1OBJID id_not;
extern EXTERN ASN1OBJID id_mre;
extern EXTERN ASN1OBJID id_cat;

}
#endif
