void CAliasTypeInfo::InitAliasTypeInfoFunctions(void) { SetReadFunction(&TFunc::ReadAliasDefault); SetWriteFunction(&TFunc::WriteAliasDefault); SetCopyFunction(&TFunc::CopyAliasDefault); SetSkipFunction(&TFunc::SkipAliasDefault); SetFunctions(&GetDataPointer, &SetDataPointer); }
void CChoiceTypeInfo::InitChoiceTypeInfoFunctions(void) { SetReadFunction(&TFunc::ReadChoiceDefault); SetWriteFunction(&TFunc::WriteChoiceDefault); SetCopyFunction(&TFunc::CopyChoiceDefault); SetSkipFunction(&TFunc::SkipChoiceDefault); m_SelectDelayFunction = 0; }
void CPointerTypeInfo::InitPointerTypeInfoFunctions(void) { SetCreateFunction(&CreatePointer); SetReadFunction(&ReadPointer); SetWriteFunction(&WritePointer); SetCopyFunction(&CopyPointer); SetSkipFunction(&SkipPointer); SetFunctions(&GetPointer, &SetPointer); }
CNullTypeInfo::CNullTypeInfo(void) { SetTag(CAsnBinaryDefs::eNull); SetCreateFunction(&CNullFunctions::Create); SetReadFunction(&CNullFunctions::Read); SetWriteFunction(&CNullFunctions::Write); SetCopyFunction(&CNullFunctions::Copy); SetSkipFunction(&CNullFunctions::Skip); }
void CContainerTypeInfo::InitContainerTypeInfoFunctions(void) { SetTag(m_RandomOrder ? CAsnBinaryDefs::eSetOf : CAsnBinaryDefs::eSequenceOf); SetReadFunction(&ReadContainer); SetWriteFunction(&WriteContainer); SetCopyFunction(&CopyContainer); SetSkipFunction(&SkipContainer); m_InitIteratorConst = &CContainerTypeInfoFunctions::InitIteratorConst; m_InitIterator = &CContainerTypeInfoFunctions::InitIterator; m_AddElement = &CContainerTypeInfoFunctions::AddElement; m_AddElementIn = &CContainerTypeInfoFunctions::AddElementIn; m_GetElementCount = &CContainerTypeInfoFunctions::GetElementCount; }
CVariantInfo* CChoiceTypeInfo::AddVariant(const CMemberId& memberId, const void* memberPtr, const CTypeRef& memberType) { if ( GetVariants().Size() == 1 && !GetVariantInfo(kFirstMemberIndex)->GetId().IsAttlist() ) { // simple SetReadFunction(&TFunc::ReadChoiceSimple); SetSkipFunction(&TFunc::SkipChoiceSimple); } CVariantInfo* variantInfo = new CVariantInfo(this, memberId, TPointerOffsetType(memberPtr), memberType); GetItems().AddItem(variantInfo); return variantInfo; }