+++ /dev/null
-// NOTE: this is a machine generated file--editing not recommended
-//
-// sm_x520sa.cpp - class member functions for ASN.1 module SelectedAttributeTypes
-//
-// This file was generated by snacc on Mon Apr 22 22:34:19 2002
-// UBC snacc written by Mike Sample
-// A couple of enhancements made by IBM European Networking Center
-
-
-#include "asn-incl.h"
-#include "sm_vdatypes.h"
-#include "sm_x501ud.h"
-#include "sm_x411ub.h"
-#include "sm_x411mtsas.h"
-#include "sm_x501if.h"
-#include "sm_x520sa.h"
-#include "sm_x509cmn.h"
-#include "sm_x509af.h"
-#include "sm_x509ce.h"
-#include "pkcs1oids.h"
-#include "pkcs9oids.h"
-#include "sm_cms.h"
-#include "sm_ess.h"
-#include "pkcs7.h"
-#include "pkcs8.h"
-#include "appleoids.h"
-#include "pkcs10.h"
-
-//------------------------------------------------------------------------------
-// value defs
-
-
-//------------------------------------------------------------------------------
-// class member definitions:
-
-DirectoryString::DirectoryString()
-{
- choiceId = teletexStringCid;
-#if TCL
- teletexString = new TeletexString;
-#else
- teletexString = NULL; // incomplete initialization of mandatory element!
-#endif // TCL
-}
-
-DirectoryString::DirectoryString (const DirectoryString &)
-{
- Asn1Error << "use of incompletely defined DirectoryString::DirectoryString (const DirectoryString &)" << endl;
- abort();
-}
-
-DirectoryString::~DirectoryString()
-{
- switch (choiceId)
- {
- case teletexStringCid:
- delete teletexString;
- break;
- case printableStringCid:
- delete printableString;
- break;
- case universalStringCid:
- delete universalString;
- break;
- case bmpStringCid:
- delete bmpString;
- break;
- case utf8StringCid:
- delete utf8String;
- break;
- } // end of switch
-} // end of destructor
-
-AsnType *DirectoryString::Clone() const
-{
- return new DirectoryString;
-}
-
-AsnType *DirectoryString::Copy() const
-{
- return new DirectoryString (*this);
-}
-
-#if SNACC_DEEP_COPY
-DirectoryString &DirectoryString::operator = (const DirectoryString &that)
-#else // SNACC_DEEP_COPY
-DirectoryString &DirectoryString::operator = (const DirectoryString &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
- if (this != &that)
- {
- switch (choiceId)
- {
- case teletexStringCid:
- delete teletexString;
- break;
- case printableStringCid:
- delete printableString;
- break;
- case universalStringCid:
- delete universalString;
- break;
- case bmpStringCid:
- delete bmpString;
- break;
- case utf8StringCid:
- delete utf8String;
- break;
- }
- switch (choiceId = that.choiceId)
- {
- case teletexStringCid:
- teletexString = new TeletexString;
- *teletexString = *that.teletexString;
- break;
- case printableStringCid:
- printableString = new PrintableString;
- *printableString = *that.printableString;
- break;
- case universalStringCid:
- universalString = new UniversalString;
- *universalString = *that.universalString;
- break;
- case bmpStringCid:
- bmpString = new BMPString;
- *bmpString = *that.bmpString;
- break;
- case utf8StringCid:
- utf8String = new UTF8String;
- *utf8String = *that.utf8String;
- break;
- }
- }
-
- return *this;
-#else // SNACC_DEEP_COPY
- Asn1Error << "use of incompletely defined DirectoryString &DirectoryString::operator = (const DirectoryString &)" << endl;
- abort();
- // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-DirectoryString::BEncContent (BUF_TYPE b)
-{
- AsnLen l;
- switch (choiceId)
- {
- case teletexStringCid:
- l = teletexString->BEncContent (b);
- l += BEncDefLen (b, l);
-
- l += BEncTag1 (b, UNIV, PRIM, TELETEXSTRING_TAG_CODE);
- break;
-
- case printableStringCid:
- l = printableString->BEncContent (b);
- l += BEncDefLen (b, l);
-
- l += BEncTag1 (b, UNIV, PRIM, PRINTABLESTRING_TAG_CODE);
- break;
-
- case universalStringCid:
- l = universalString->BEncContent (b);
- l += BEncDefLen (b, l);
-
- l += BEncTag1 (b, UNIV, PRIM, UNIVERSALSTRING_TAG_CODE);
- break;
-
- case bmpStringCid:
- l = bmpString->BEncContent (b);
- l += BEncDefLen (b, l);
-
- l += BEncTag1 (b, UNIV, PRIM, BMPSTRING_TAG_CODE);
- break;
-
- case utf8StringCid:
- l = utf8String->BEncContent (b);
- l += BEncDefLen (b, l);
-
- l += BEncTag1 (b, UNIV, PRIM, 12);
- break;
-
- } // end switch
- return l;
-} // DirectoryString::BEncContent
-
-
-void DirectoryString::BDecContent (BUF_TYPE b, AsnTag tag, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
- switch (tag)
- {
- case MAKE_TAG_ID (UNIV, PRIM, TELETEXSTRING_TAG_CODE):
- case MAKE_TAG_ID (UNIV, CONS, TELETEXSTRING_TAG_CODE):
- choiceId = teletexStringCid;
- teletexString = new TeletexString;
- teletexString->BDecContent (b, tag, elmtLen0, bytesDecoded, env);
- break;
-
- case MAKE_TAG_ID (UNIV, PRIM, PRINTABLESTRING_TAG_CODE):
- case MAKE_TAG_ID (UNIV, CONS, PRINTABLESTRING_TAG_CODE):
- choiceId = printableStringCid;
- printableString = new PrintableString;
- printableString->BDecContent (b, tag, elmtLen0, bytesDecoded, env);
- break;
-
- case MAKE_TAG_ID (UNIV, PRIM, UNIVERSALSTRING_TAG_CODE):
- case MAKE_TAG_ID (UNIV, CONS, UNIVERSALSTRING_TAG_CODE):
- choiceId = universalStringCid;
- universalString = new UniversalString;
- universalString->BDecContent (b, tag, elmtLen0, bytesDecoded, env);
- break;
-
- case MAKE_TAG_ID (UNIV, PRIM, BMPSTRING_TAG_CODE):
- case MAKE_TAG_ID (UNIV, CONS, BMPSTRING_TAG_CODE):
- choiceId = bmpStringCid;
- bmpString = new BMPString;
- bmpString->BDecContent (b, tag, elmtLen0, bytesDecoded, env);
- break;
-
- case MAKE_TAG_ID (UNIV, PRIM, 12):
- case MAKE_TAG_ID (UNIV, CONS, 12):
- choiceId = utf8StringCid;
- utf8String = new UTF8String;
- utf8String->BDecContent (b, tag, elmtLen0, bytesDecoded, env);
- break;
-
- default:
- Asn1Error << "ERROR - unexpected tag in CHOICE" << endl;
- SnaccExcep::throwMe(-100);
- break;
- } // end switch
-} // DirectoryString::BDecContent
-
-
-AsnLen DirectoryString::BEnc (BUF_TYPE b)
-{
- AsnLen l;
- l = BEncContent (b);
- return l;
-}
-
-void DirectoryString::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
- AsnLen elmtLen;
- AsnTag tag;
-
- /* CHOICEs are a special case - grab identifying tag */
- /* this allows easier handling of nested CHOICEs */
- tag = BDecTag (b, bytesDecoded, env);
- elmtLen = BDecLen (b, bytesDecoded, env);
- BDecContent (b, tag, elmtLen, bytesDecoded, env);
-}
-
-void DirectoryString::Print (ostream &os) const
-{
-#ifndef NDEBUG
- switch (choiceId)
- {
- case teletexStringCid:
- os << "teletexString ";
- if (teletexString)
- os << *teletexString;
- else
- os << "-- void3 --\n";
- break;
-
- case printableStringCid:
- os << "printableString ";
- if (printableString)
- os << *printableString;
- else
- os << "-- void3 --\n";
- break;
-
- case universalStringCid:
- os << "universalString ";
- if (universalString)
- os << *universalString;
- else
- os << "-- void3 --\n";
- break;
-
- case bmpStringCid:
- os << "bmpString ";
- if (bmpString)
- os << *bmpString;
- else
- os << "-- void3 --\n";
- break;
-
- case utf8StringCid:
- os << "utf8String ";
- if (utf8String)
- os << *utf8String;
- else
- os << "-- void3 --\n";
- break;
-
- } // end of switch
-#endif /* NDEBUG */
-} // DirectoryString::Print
-