// %UNIT_NAME% // /*---------------------------------------------------------------------------} { This unit was automatically generated by the RemObjects SDK after reading } { the RODL file associated with this project. } { } { Do not modify this unit manually, or your changes will be lost when this } { unit is regenerated the next time you compile the project. } {---------------------------------------------------------------------------*/ void __initialization_%UNIT_NAME%(); void __finalization_%UNIT_NAME%(); #pragma startup __initialization_%UNIT_NAME% #pragma exit __finalization_%UNIT_NAME% #include "%LIBRARY_NAME%_intf.h" #include // Implementation of %UNIT_NAME% // <%%% START ARRAYS %%%> // %ARRAY_NAME% void __fastcall %ARRAY_NAME%::Assign(Classes::TPersistent* iSource) { %ARRAY_NAME%* lSource = dynamic_cast<%ARRAY_NAME%*>(iSource); if (lSource) { Clear(); Resize(lSource->Count); for (int i = 0 ; i < Count ; i++) { // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> if (lSource->Items[i] != NULL) { Items[i]->Assign(lSource->Items[i]); } // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> // <%%% START IF_ARRAY_TYPE_SIMPLE %%%> Items[i] = lSource->Items[i]; // <%%% END IF_ARRAY_TYPE_SIMPLE %%%> } } else { inherited::Assign(iSource); } } void __fastcall %ARRAY_NAME%::ReadComplex(TObject* ASerializer) { // <%%% START IF_ARRAY_TYPE_SIMPLE %%%> %ARRAY_TYPE% lval; // <%%% END IF_ARRAY_TYPE_SIMPLE %%%> // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> %ARRAY_TYPE%* lval; // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> TROSerializer* Serializer = dynamic_cast(ASerializer); for (int i = 0; i < Count; i++) { // <%%% START IF_ARRAY_BINARY_TYPE %%%> Serializer->ReadBinary(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i); // <%%% END IF_ARRAY_BINARY_TYPE %%%> // <%%% START IF_ARRAY_BOOLEAN_TYPE %%%> Serializer->ReadEnumerated(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), __GetboolInfo, &lval, i); // <%%% END IF_ARRAY_BOOLEAN_TYPE %%%> // <%%% START IF_ARRAY_CURRENCY_TYPE %%%> Serializer->ReadDouble(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), ftCurr, &lval, i); // <%%% END IF_ARRAY_CURRENCY_TYPE %%%> // <%%% START IF_ARRAY_DATETIME_TYPE %%%> Serializer->ReadDateTime(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i); // <%%% END IF_ARRAY_DATETIME_TYPE %%%> // <%%% START IF_ARRAY_DECIMAL_TYPE %%%> Serializer->ReadDecimal(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i); // <%%% END IF_ARRAY_DECIMAL_TYPE %%%> // <%%% START IF_ARRAY_DOUBLE_TYPE %%%> Serializer->ReadDouble(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), ftDouble, &lval, i); // <%%% END IF_ARRAY_DOUBLE_TYPE %%%> // <%%% START IF_ARRAY_GUID_TYPE %%%> Serializer->ReadGuid(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i); // <%%% END IF_ARRAY_GUID_TYPE %%%> // <%%% START IF_ARRAY_INT64_TYPE %%%> Serializer->ReadInt64(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i); // <%%% END IF_ARRAY_INT64_TYPE %%%> // <%%% START IF_ARRAY_INTEGER_TYPE %%%> Serializer->ReadInteger(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), otSLong, &lval, i); // <%%% END IF_ARRAY_INTEGER_TYPE %%%> // <%%% START IF_ARRAY_STRING_TYPE %%%> Serializer->ReadUTF8String(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i); // <%%% END IF_ARRAY_STRING_TYPE %%%> // <%%% START IF_ARRAY_UTF8STRING_TYPE %%%> Serializer->ReadUTF8String(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i); // <%%% END IF_ARRAY_UTF8STRING_TYPE %%%> // <%%% START IF_ARRAY_VARIANT_TYPE %%%> Serializer->ReadVariant(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i); // <%%% END IF_ARRAY_VARIANT_TYPE %%%> // <%%% START IF_ARRAY_WIDESTRING_TYPE %%%> Serializer->ReadWideString(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i); // <%%% END IF_ARRAY_WIDESTRING_TYPE %%%> // <%%% START IF_ARRAY_XML_TYPE %%%> Serializer->ReadXml(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i); // <%%% END IF_ARRAY_XML_TYPE %%%> // <%%% START IF_ARRAY_ARRAY_TYPE %%%> Serializer->ReadArray(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), __classid(%ARRAY_TYPE%), &lval, i); // <%%% END IF_ARRAY_ARRAY_TYPE %%%> // <%%% START IF_ARRAY_ENUM_TYPE %%%> Serializer->ReadEnumerated(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), __Get%ARRAY_TYPE%Info, &lval, i); // <%%% END IF_ARRAY_ENUM_TYPE %%%> // <%%% START IF_ARRAY_STRUCT_TYPE %%%> Serializer->ReadStruct(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), __classid(%ARRAY_TYPE%), &lval, i); // <%%% END IF_ARRAY_STRUCT_TYPE %%%> Items[i] = lval; } } void __fastcall %ARRAY_NAME%::WriteComplex(TObject* ASerializer) { TROSerializer* Serializer = dynamic_cast(ASerializer); for(int i = 0; i < Count; i++) // <%%% START IF_ARRAY_BINARY_TYPE %%%> Serializer->WriteBinary(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_BINARY_TYPE %%%> // <%%% START IF_ARRAY_BOOLEAN_TYPE %%%> Serializer->WriteEnumerated(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), __GetboolInfo, &(fItems[i]), i); // <%%% END IF_ARRAY_BOOLEAN_TYPE %%%> // <%%% START IF_ARRAY_CURRENCY_TYPE %%%> Serializer->WriteDouble(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), ftCurr, &(fItems[i]), i); // <%%% END IF_ARRAY_CURRENCY_TYPE %%%> // <%%% START IF_ARRAY_DATETIME_TYPE %%%> Serializer->WriteDateTime(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_DATETIME_TYPE %%%> // <%%% START IF_ARRAY_DECIMAL_TYPE %%%> Serializer->WriteDecimal(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_DECIMAL_TYPE %%%> // <%%% START IF_ARRAY_DOUBLE_TYPE %%%> Serializer->WriteDouble(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), ftDouble, &(fItems[i]), i); // <%%% END IF_ARRAY_DOUBLE_TYPE %%%> // <%%% START IF_ARRAY_GUID_TYPE %%%> Serializer->WriteGuid(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_GUID_TYPE %%%> // <%%% START IF_ARRAY_INT64_TYPE %%%> Serializer->WriteInt64(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_INT64_TYPE %%%> // <%%% START IF_ARRAY_INTEGER_TYPE %%%> Serializer->WriteInteger(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), otSLong, &(fItems[i]), i); // <%%% END IF_ARRAY_INTEGER_TYPE %%%> // <%%% START IF_ARRAY_STRING_TYPE %%%> Serializer->WriteUTF8String(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_STRING_TYPE %%%> // <%%% START IF_ARRAY_UTF8STRING_TYPE %%%> Serializer->WriteUTF8String(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_UTF8STRING_TYPE %%%> // <%%% START IF_ARRAY_VARIANT_TYPE %%%> Serializer->WriteVariant(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_VARIANT_TYPE %%%> // <%%% START IF_ARRAY_WIDESTRING_TYPE %%%> Serializer->WriteWideString(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_WIDESTRING_TYPE %%%> // <%%% START IF_ARRAY_XML_TYPE %%%> Serializer->WriteXml(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_XML_TYPE %%%> // <%%% START IF_ARRAY_ARRAY_TYPE %%%> Serializer->WriteArray(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_ARRAY_TYPE %%%> // <%%% START IF_ARRAY_ENUM_TYPE %%%> Serializer->WriteEnumerated(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), TypeInfo(%ARRAY_TYPE%), &(fItems[i]), i); // <%%% END IF_ARRAY_ENUM_TYPE %%%> // <%%% START IF_ARRAY_STRUCT_TYPE %%%> Serializer->WriteStruct(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i); // <%%% END IF_ARRAY_STRUCT_TYPE %%%> } void __fastcall %ARRAY_NAME%::Grow() { int Delta; int Capacity = fItems.Length; if (Capacity > 64) { Delta = Capacity / 4; } else { if (Capacity > 8) Delta = 16; else Delta = 4; } fItems.set_length(Capacity + Delta); } // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> %ARRAY_TYPE%* __fastcall %ARRAY_NAME%::GetItems(const int Index) // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> // <%%% START IF_ARRAY_TYPE_SIMPLE %%%> %ARRAY_TYPE% __fastcall %ARRAY_NAME%::GetItems(const int Index) // <%%% END IF_ARRAY_TYPE_SIMPLE %%%> { if ((Index < 0) || (Index >= Count)) { RaiseError(LoadResourceString(&_err_ArrayIndexOutOfBounds), ARRAYOFCONST((Index))); } return fItems[Index]; } // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> void __fastcall %ARRAY_NAME%::SetItems(const int Index, %ARRAY_TYPE%* Value) // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> // <%%% START IF_ARRAY_TYPE_SIMPLE %%%> void __fastcall %ARRAY_NAME%::SetItems(const int Index, %ARRAY_TYPE% Value) // <%%% END IF_ARRAY_TYPE_SIMPLE %%%> { if ((Index < 0) || (Index >= Count)) { RaiseError(LoadResourceString(&_err_ArrayIndexOutOfBounds), ARRAYOFCONST((Index))); } // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> delete fItems[Index]; // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> fItems[Index] = Value; } int __fastcall %ARRAY_NAME%::GetCount() { return fCount; } void* __fastcall %ARRAY_NAME%::GetItemRef(const int Index) { if ((Index < 0) || (Index >= Count)) { RaiseError(LoadResourceString(&_err_ArrayIndexOutOfBounds), ARRAYOFCONST((Index))); } return &fItems[Index]; } // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> void __fastcall %ARRAY_NAME%::SetItemRef(const int Index, void* Ref) { if ((Index < 0) || (Index >= Count)) { RaiseError(LoadResourceString(&_err_ArrayIndexOutOfBounds), ARRAYOFCONST((Index))); } if (Ref != fItems[Index]) { delete fItems[Index]; fItems[Index] = reinterpret_cast<%ARRAY_TYPE%*>(Ref); } } // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> void __fastcall %ARRAY_NAME%::Clear() { // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> for (int i = 0; i < Count; i++) delete fItems[i]; // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> fItems.set_length(0); fCount = 0; } void __fastcall %ARRAY_NAME%::Delete(const int Index) { if (Index >= Count) { RaiseError(LoadResourceString(&_err_InvalidIndex), ARRAYOFCONST((Index))); } // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> delete fItems[Index]; // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> if (Index < Count - 1) for (int i = Index; i < Count - 1 ; i++) fItems[i] = fItems[i + 1]; fItems.set_length(Count - 1); fCount--; } void __fastcall %ARRAY_NAME%::Resize(const int ElementCount) { // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> int i; for(i = fCount -1; i >= ElementCount; --i) delete fItems[i]; // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> fItems.set_length(ElementCount); // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> for(i = fCount; i <= ElementCount -1; ++i) fItems[i] = new %ARRAY_TYPE%(); // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> fCount = ElementCount; } // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> %ARRAY_TYPE%* __fastcall %ARRAY_NAME%::Add() { %ARRAY_TYPE%* result = new %ARRAY_TYPE%(); Add(result); return result; } // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> // <%%% START IF_ARRAY_TYPE_COMPLEX %%%> int __fastcall %ARRAY_NAME%::Add(%ARRAY_TYPE%* Value) // <%%% END IF_ARRAY_TYPE_COMPLEX %%%> // <%%% START IF_ARRAY_TYPE_SIMPLE %%%> int __fastcall %ARRAY_NAME%::Add(%ARRAY_TYPE% Value) // <%%% END IF_ARRAY_TYPE_SIMPLE %%%> { int result = Count; if (fItems.Length == result) Grow(); fItems[result] = Value; fCount++; return result; } // <%%% END ARRAYS %%%> // <%%% START EXCEPTIONS %%%> // %EXCEPTION_NAME% %EXCEPTION_NAME%::%EXCEPTION_NAME%(AnsiString anExceptionMessage // <%%% START ANCESTOR_FIELDS %%%> // <%%% START IF_FIELD_TYPE_SIMPLE %%%> , %FIELD_TYPE% a%FIELD_NAME% // <%%% END IF_FIELD_TYPE_SIMPLE %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> , %FIELD_TYPE%* a%FIELD_NAME% // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% END ANCESTOR_FIELDS %%%> // <%%% START FIELDS_NO_STRIP %%%> // <%%% START IF_FIELD_TYPE_SIMPLE %%%> , %FIELD_TYPE% a%FIELD_NAME% // <%%% END IF_FIELD_TYPE_SIMPLE %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> , %FIELD_TYPE%* a%FIELD_NAME% // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% END FIELDS_NO_STRIP %%%> ): %EXCEPTION_ANCESTOR_NAME%(anExceptionMessage // <%%% START ANCESTOR_FIELDS %%%> , a%FIELD_NAME% // <%%% END ANCESTOR_FIELDS %%%> ) { // <%%% START FIELDS_NO_STRIP %%%> f%FIELD_NAME% = a%FIELD_NAME%; // <%%% END FIELDS_NO_STRIP %%%> } // <%%% START IF_HAS_FIELDS %%%> void __fastcall %EXCEPTION_NAME%::ReadException(TObject* ASerializer) { if (dynamic_cast(ASerializer)->RecordStrictOrder) { // <%%% START IF_STRUCT_HAS_ANCESTOR %%%> inherited::ReadException(ASerializer); // <%%% END IF_STRUCT_HAS_ANCESTOR %%%> // <%%% START FIELDS_NO_STRIP %%%> // <%%% START IF_FIELD_TYPE_SIMPLE %%%> %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_SIMPLE %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% START IF_FIELD_BINARY_TYPE %%%> dynamic_cast(ASerializer)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_BINARY_TYPE %%%> // <%%% START IF_FIELD_BOOLEAN_TYPE %%%> dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%); // <%%% END IF_FIELD_BOOLEAN_TYPE %%%> // <%%% START IF_FIELD_CURRENCY_TYPE %%%> dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%); // <%%% END IF_FIELD_CURRENCY_TYPE %%%> // <%%% START IF_FIELD_DATETIME_TYPE %%%> dynamic_cast(ASerializer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DATETIME_TYPE %%%> // <%%% START IF_FIELD_DECIMAL_TYPE %%%> dynamic_cast(ASerializer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DECIMAL_TYPE %%%> // <%%% START IF_FIELD_DOUBLE_TYPE %%%> dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%); // <%%% END IF_FIELD_DOUBLE_TYPE %%%> // <%%% START IF_FIELD_GUID_TYPE %%%> dynamic_cast(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_GUID_TYPE %%%> // <%%% START IF_FIELD_INT64_TYPE %%%> dynamic_cast(ASerializer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_INT64_TYPE %%%> // <%%% START IF_FIELD_INTEGER_TYPE %%%> dynamic_cast(ASerializer)->ReadInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%); // <%%% END IF_FIELD_INTEGER_TYPE %%%> // <%%% START IF_FIELD_STRING_TYPE %%%> dynamic_cast(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRING_TYPE %%%> // <%%% START IF_FIELD_UTF8STRING_TYPE %%%> dynamic_cast(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_UTF8STRING_TYPE %%%> // <%%% START IF_FIELD_VARIANT_TYPE %%%> dynamic_cast(ASerializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_VARIANT_TYPE %%%> // <%%% START IF_FIELD_WIDESTRING_TYPE %%%> dynamic_cast(ASerializer)->ReadWideString("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_WIDESTRING_TYPE %%%> // <%%% START IF_FIELD_XML_TYPE %%%> dynamic_cast(ASerializer)->ReadXml("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_XML_TYPE %%%> // <%%% START IF_FIELD_ARRAY_TYPE %%%> dynamic_cast(ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_ARRAY_TYPE %%%> // <%%% START IF_FIELD_ENUM_TYPE %%%> dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%); // <%%% END IF_FIELD_ENUM_TYPE %%%> // <%%% START IF_FIELD_STRUCT_TYPE %%%> dynamic_cast(ASerializer)->ReadStruct("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_STRUCT_TYPE %%%> %FIELD_NAME% = l_%FIELD_NAME%; // <%%% END FIELDS_NO_STRIP %%%> } else { // <%%% START ENTIRE_HIERARCHY_FIELDS %%%> // <%%% START IF_FIELD_TYPE_SIMPLE %%%> %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_SIMPLE %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% START IF_FIELD_BINARY_TYPE %%%> dynamic_cast(ASerializer)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_BINARY_TYPE %%%> // <%%% START IF_FIELD_BOOLEAN_TYPE %%%> dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%); // <%%% END IF_FIELD_BOOLEAN_TYPE %%%> // <%%% START IF_FIELD_CURRENCY_TYPE %%%> dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%); // <%%% END IF_FIELD_CURRENCY_TYPE %%%> // <%%% START IF_FIELD_DATETIME_TYPE %%%> dynamic_cast(ASerializer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DATETIME_TYPE %%%> // <%%% START IF_FIELD_DECIMAL_TYPE %%%> dynamic_cast(ASerializer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DECIMAL_TYPE %%%> // <%%% START IF_FIELD_DOUBLE_TYPE %%%> dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%); // <%%% END IF_FIELD_DOUBLE_TYPE %%%> // <%%% START IF_FIELD_GUID_TYPE %%%> dynamic_cast(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_GUID_TYPE %%%> // <%%% START IF_FIELD_INT64_TYPE %%%> dynamic_cast(ASerializer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_INT64_TYPE %%%> // <%%% START IF_FIELD_INTEGER_TYPE %%%> dynamic_cast(ASerializer)->ReadInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%); // <%%% END IF_FIELD_INTEGER_TYPE %%%> // <%%% START IF_FIELD_STRING_TYPE %%%> dynamic_cast(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRING_TYPE %%%> // <%%% START IF_FIELD_UTF8STRING_TYPE %%%> dynamic_cast(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_UTF8STRING_TYPE %%%> // <%%% START IF_FIELD_VARIANT_TYPE %%%> dynamic_cast(ASerializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_VARIANT_TYPE %%%> // <%%% START IF_FIELD_WIDESTRING_TYPE %%%> dynamic_cast(ASerializer)->ReadWideString("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_WIDESTRING_TYPE %%%> // <%%% START IF_FIELD_XML_TYPE %%%> dynamic_cast(ASerializer)->ReadXml("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_XML_TYPE %%%> // <%%% START IF_FIELD_ARRAY_TYPE %%%> dynamic_cast(ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_ARRAY_TYPE %%%> // <%%% START IF_FIELD_ENUM_TYPE %%%> dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%); // <%%% END IF_FIELD_ENUM_TYPE %%%> // <%%% START IF_FIELD_STRUCT_TYPE %%%> dynamic_cast(ASerializer)->ReadStruct("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_STRUCT_TYPE %%%> %FIELD_NAME% = l_%FIELD_NAME%; // <%%% END ENTIRE_HIERARCHY_FIELDS %%%> } } void __fastcall %EXCEPTION_NAME%::WriteException(TObject* ASerializer) { if (dynamic_cast(ASerializer)->RecordStrictOrder) { // <%%% START IF_STRUCT_HAS_ANCESTOR %%%> inherited::WriteException(ASerializer); // <%%% END IF_STRUCT_HAS_ANCESTOR %%%> // <%%% START FIELDS_NO_STRIP %%%> // <%%% START IF_FIELD_TYPE_SIMPLE %%%> %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_SIMPLE %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% START IF_FIELD_BINARY_TYPE %%%> dynamic_cast(ASerializer)->WriteBinary("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_BINARY_TYPE %%%> // <%%% START IF_FIELD_BOOLEAN_TYPE %%%> dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%); // <%%% END IF_FIELD_BOOLEAN_TYPE %%%> // <%%% START IF_FIELD_CURRENCY_TYPE %%%> dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%); // <%%% END IF_FIELD_CURRENCY_TYPE %%%> // <%%% START IF_FIELD_DATETIME_TYPE %%%> dynamic_cast(ASerializer)->WriteDateTime("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DATETIME_TYPE %%%> // <%%% START IF_FIELD_DECIMAL_TYPE %%%> dynamic_cast(ASerializer)->WriteDecimal("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DECIMAL_TYPE %%%> // <%%% START IF_FIELD_DOUBLE_TYPE %%%> dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%); // <%%% END IF_FIELD_DOUBLE_TYPE %%%> // <%%% START IF_FIELD_GUID_TYPE %%%> dynamic_cast(ASerializer)->WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_GUID_TYPE %%%> // <%%% START IF_FIELD_INT64_TYPE %%%> dynamic_cast(ASerializer)->WriteInt64("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_INT64_TYPE %%%> // <%%% START IF_FIELD_INTEGER_TYPE %%%> dynamic_cast(ASerializer)->WriteInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%); // <%%% END IF_FIELD_INTEGER_TYPE %%%> // <%%% START IF_FIELD_STRING_TYPE %%%> dynamic_cast(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRING_TYPE %%%> // <%%% START IF_FIELD_UTF8STRING_TYPE %%%> dynamic_cast(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_UTF8STRING_TYPE %%%> // <%%% START IF_FIELD_VARIANT_TYPE %%%> dynamic_cast(ASerializer)->WriteVariant("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_VARIANT_TYPE %%%> // <%%% START IF_FIELD_WIDESTRING_TYPE %%%> dynamic_cast(ASerializer)->WriteWideString("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_WIDESTRING_TYPE %%%> // <%%% START IF_FIELD_XML_TYPE %%%> dynamic_cast(ASerializer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_XML_TYPE %%%> // <%%% START IF_FIELD_ARRAY_TYPE %%%> dynamic_cast(ASerializer)->WriteArray("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_ARRAY_TYPE %%%> // <%%% START IF_FIELD_ENUM_TYPE %%%> dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%); // <%%% END IF_FIELD_ENUM_TYPE %%%> // <%%% START IF_FIELD_STRUCT_TYPE %%%> dynamic_cast(ASerializer)->WriteStruct("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRUCT_TYPE %%%> // <%%% END FIELDS_NO_STRIP %%%> } else { // <%%% START ENTIRE_HIERARCHY_FIELDS %%%> // <%%% START IF_FIELD_TYPE_SIMPLE %%%> %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_SIMPLE %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% START IF_FIELD_BINARY_TYPE %%%> dynamic_cast(ASerializer)->WriteBinary("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_BINARY_TYPE %%%> // <%%% START IF_FIELD_BOOLEAN_TYPE %%%> dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%); // <%%% END IF_FIELD_BOOLEAN_TYPE %%%> // <%%% START IF_FIELD_CURRENCY_TYPE %%%> dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%); // <%%% END IF_FIELD_CURRENCY_TYPE %%%> // <%%% START IF_FIELD_DATETIME_TYPE %%%> dynamic_cast(ASerializer)->WriteDateTime("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DATETIME_TYPE %%%> // <%%% START IF_FIELD_DECIMAL_TYPE %%%> dynamic_cast(ASerializer)->WriteDecimal("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DECIMAL_TYPE %%%> // <%%% START IF_FIELD_DOUBLE_TYPE %%%> dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%); // <%%% END IF_FIELD_DOUBLE_TYPE %%%> // <%%% START IF_FIELD_GUID_TYPE %%%> dynamic_cast(ASerializer)->WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_GUID_TYPE %%%> // <%%% START IF_FIELD_INT64_TYPE %%%> dynamic_cast(ASerializer)->WriteInt64("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_INT64_TYPE %%%> // <%%% START IF_FIELD_INTEGER_TYPE %%%> dynamic_cast(ASerializer)->WriteInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%); // <%%% END IF_FIELD_INTEGER_TYPE %%%> // <%%% START IF_FIELD_STRING_TYPE %%%> dynamic_cast(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRING_TYPE %%%> // <%%% START IF_FIELD_UTF8STRING_TYPE %%%> dynamic_cast(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_UTF8STRING_TYPE %%%> // <%%% START IF_FIELD_VARIANT_TYPE %%%> dynamic_cast(ASerializer)->WriteVariant("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_VARIANT_TYPE %%%> // <%%% START IF_FIELD_WIDESTRING_TYPE %%%> dynamic_cast(ASerializer)->WriteWideString("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_WIDESTRING_TYPE %%%> // <%%% START IF_FIELD_XML_TYPE %%%> dynamic_cast(ASerializer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_XML_TYPE %%%> // <%%% START IF_FIELD_ARRAY_TYPE %%%> dynamic_cast(ASerializer)->WriteArray("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_ARRAY_TYPE %%%> // <%%% START IF_FIELD_ENUM_TYPE %%%> dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%); // <%%% END IF_FIELD_ENUM_TYPE %%%> // <%%% START IF_FIELD_STRUCT_TYPE %%%> dynamic_cast(ASerializer)->WriteStruct("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRUCT_TYPE %%%> // <%%% END ENTIRE_HIERARCHY_FIELDS %%%> } } // <%%% END IF_HAS_FIELDS %%%> // <%%% END EXCEPTIONS %%%> // <%%% START STRUCTS %%%> // %STRUCT_NAME% void __fastcall %STRUCT_NAME%::Assign(Classes::TPersistent* iSource) { inherited::Assign(iSource); // inherited typedef // <%%% START IF_HAS_FIELDS %%%> %STRUCT_NAME%* lSource = dynamic_cast<%STRUCT_NAME%*>(iSource); if (lSource) { // <%%% END IF_HAS_FIELDS %%%> // <%%% START FIELDS_NO_STRIP %%%> // <%%% START IF_FIELD_TYPE_SIMPLE %%%> %FIELD_NAME% = lSource->%FIELD_NAME%; // <%%% END IF_FIELD_TYPE_SIMPLE %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> // <%%% START IF_NOT_AUTO_CREATE_FIELDS %%%> if (f%FIELD_NAME% != NULL) %FIELD_NAME%->Assign(lSource->%FIELD_NAME%); // <%%% END IF_NOT_AUTO_CREATE_FIELDS %%%> // <%%% START IF_AUTO_CREATE_FIELDS %%%> %FIELD_NAME%->Assign(lSource->%FIELD_NAME%); // <%%% END IF_AUTO_CREATE_FIELDS %%%> // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% END FIELDS_NO_STRIP %%%> // <%%% START IF_HAS_FIELDS %%%> } // <%%% END IF_HAS_FIELDS %%%> } // <%%% START FIELDS_NO_STRIP %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> %FIELD_TYPE%* __fastcall %STRUCT_NAME%::Get%FIELD_NAME%() { // <%%% START IF_AUTO_CREATE_FIELDS %%%> if (f%FIELD_NAME% == NULL) f%FIELD_NAME% = new %FIELD_TYPE%(); // <%%% END IF_AUTO_CREATE_FIELDS %%%> return f%FIELD_NAME%; } // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% END FIELDS_NO_STRIP %%%> // <%%% START IF_HAS_FIELDS %%%> void __fastcall %STRUCT_NAME%::ReadComplex(TObject* ASerializer) { if (dynamic_cast(ASerializer)->RecordStrictOrder) { // <%%% START IF_STRUCT_HAS_ANCESTOR %%%> inherited::ReadException(ASerializer); // <%%% END IF_STRUCT_HAS_ANCESTOR %%%> // <%%% START FIELDS_NO_STRIP %%%> // <%%% START IF_FIELD_TYPE_SIMPLE %%%> %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_SIMPLE %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% START IF_FIELD_BINARY_TYPE %%%> dynamic_cast(ASerializer)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_BINARY_TYPE %%%> // <%%% START IF_FIELD_BOOLEAN_TYPE %%%> dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%); // <%%% END IF_FIELD_BOOLEAN_TYPE %%%> // <%%% START IF_FIELD_CURRENCY_TYPE %%%> dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%); // <%%% END IF_FIELD_CURRENCY_TYPE %%%> // <%%% START IF_FIELD_DATETIME_TYPE %%%> dynamic_cast(ASerializer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DATETIME_TYPE %%%> // <%%% START IF_FIELD_DECIMAL_TYPE %%%> dynamic_cast(ASerializer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DECIMAL_TYPE %%%> // <%%% START IF_FIELD_DOUBLE_TYPE %%%> dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%); // <%%% END IF_FIELD_DOUBLE_TYPE %%%> // <%%% START IF_FIELD_GUID_TYPE %%%> dynamic_cast(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_GUID_TYPE %%%> // <%%% START IF_FIELD_INT64_TYPE %%%> dynamic_cast(ASerializer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_INT64_TYPE %%%> // <%%% START IF_FIELD_INTEGER_TYPE %%%> dynamic_cast(ASerializer)->ReadInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%); // <%%% END IF_FIELD_INTEGER_TYPE %%%> // <%%% START IF_FIELD_STRING_TYPE %%%> dynamic_cast(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRING_TYPE %%%> // <%%% START IF_FIELD_UTF8STRING_TYPE %%%> dynamic_cast(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_UTF8STRING_TYPE %%%> // <%%% START IF_FIELD_VARIANT_TYPE %%%> dynamic_cast(ASerializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_VARIANT_TYPE %%%> // <%%% START IF_FIELD_WIDESTRING_TYPE %%%> dynamic_cast(ASerializer)->ReadWideString("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_WIDESTRING_TYPE %%%> // <%%% START IF_FIELD_XML_TYPE %%%> dynamic_cast(ASerializer)->ReadXml("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_XML_TYPE %%%> // <%%% START IF_FIELD_ARRAY_TYPE %%%> dynamic_cast(ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_ARRAY_TYPE %%%> // <%%% START IF_FIELD_ENUM_TYPE %%%> dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%); // <%%% END IF_FIELD_ENUM_TYPE %%%> // <%%% START IF_FIELD_STRUCT_TYPE %%%> dynamic_cast(ASerializer)->ReadStruct("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_STRUCT_TYPE %%%> %FIELD_NAME% = l_%FIELD_NAME%; // <%%% END FIELDS_NO_STRIP %%%> } else { // <%%% START ENTIRE_HIERARCHY_FIELDS %%%> // <%%% START IF_FIELD_TYPE_SIMPLE %%%> %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_SIMPLE %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% START IF_FIELD_BINARY_TYPE %%%> dynamic_cast(ASerializer)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_BINARY_TYPE %%%> // <%%% START IF_FIELD_BOOLEAN_TYPE %%%> dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%); // <%%% END IF_FIELD_BOOLEAN_TYPE %%%> // <%%% START IF_FIELD_CURRENCY_TYPE %%%> dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%); // <%%% END IF_FIELD_CURRENCY_TYPE %%%> // <%%% START IF_FIELD_DATETIME_TYPE %%%> dynamic_cast(ASerializer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DATETIME_TYPE %%%> // <%%% START IF_FIELD_DECIMAL_TYPE %%%> dynamic_cast(ASerializer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DECIMAL_TYPE %%%> // <%%% START IF_FIELD_DOUBLE_TYPE %%%> dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%); // <%%% END IF_FIELD_DOUBLE_TYPE %%%> // <%%% START IF_FIELD_GUID_TYPE %%%> dynamic_cast(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_GUID_TYPE %%%> // <%%% START IF_FIELD_INT64_TYPE %%%> dynamic_cast(ASerializer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_INT64_TYPE %%%> // <%%% START IF_FIELD_INTEGER_TYPE %%%> dynamic_cast(ASerializer)->ReadInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%); // <%%% END IF_FIELD_INTEGER_TYPE %%%> // <%%% START IF_FIELD_STRING_TYPE %%%> dynamic_cast(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRING_TYPE %%%> // <%%% START IF_FIELD_UTF8STRING_TYPE %%%> dynamic_cast(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_UTF8STRING_TYPE %%%> // <%%% START IF_FIELD_VARIANT_TYPE %%%> dynamic_cast(ASerializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_VARIANT_TYPE %%%> // <%%% START IF_FIELD_WIDESTRING_TYPE %%%> dynamic_cast(ASerializer)->ReadWideString("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_WIDESTRING_TYPE %%%> // <%%% START IF_FIELD_XML_TYPE %%%> dynamic_cast(ASerializer)->ReadXml("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_XML_TYPE %%%> // <%%% START IF_FIELD_ARRAY_TYPE %%%> dynamic_cast(ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_ARRAY_TYPE %%%> // <%%% START IF_FIELD_ENUM_TYPE %%%> dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%); // <%%% END IF_FIELD_ENUM_TYPE %%%> // <%%% START IF_FIELD_STRUCT_TYPE %%%> dynamic_cast(ASerializer)->ReadStruct("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%); if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%; // <%%% END IF_FIELD_STRUCT_TYPE %%%> %FIELD_NAME% = l_%FIELD_NAME%; // <%%% END ENTIRE_HIERARCHY_FIELDS %%%> } } void __fastcall %STRUCT_NAME%::WriteComplex(TObject* ASerializer) { if (dynamic_cast(ASerializer)->RecordStrictOrder) { // <%%% START IF_STRUCT_HAS_ANCESTOR %%%> inherited::WriteException(ASerializer); // <%%% END IF_STRUCT_HAS_ANCESTOR %%%> // <%%% START FIELDS_NO_STRIP %%%> // <%%% START IF_FIELD_TYPE_SIMPLE %%%> %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_SIMPLE %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% START IF_FIELD_BINARY_TYPE %%%> dynamic_cast(ASerializer)->WriteBinary("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_BINARY_TYPE %%%> // <%%% START IF_FIELD_BOOLEAN_TYPE %%%> dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%); // <%%% END IF_FIELD_BOOLEAN_TYPE %%%> // <%%% START IF_FIELD_CURRENCY_TYPE %%%> dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%); // <%%% END IF_FIELD_CURRENCY_TYPE %%%> // <%%% START IF_FIELD_DATETIME_TYPE %%%> dynamic_cast(ASerializer)->WriteDateTime("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DATETIME_TYPE %%%> // <%%% START IF_FIELD_DECIMAL_TYPE %%%> dynamic_cast(ASerializer)->WriteDecimal("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DECIMAL_TYPE %%%> // <%%% START IF_FIELD_DOUBLE_TYPE %%%> dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%); // <%%% END IF_FIELD_DOUBLE_TYPE %%%> // <%%% START IF_FIELD_GUID_TYPE %%%> dynamic_cast(ASerializer)->WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_GUID_TYPE %%%> // <%%% START IF_FIELD_INT64_TYPE %%%> dynamic_cast(ASerializer)->WriteInt64("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_INT64_TYPE %%%> // <%%% START IF_FIELD_INTEGER_TYPE %%%> dynamic_cast(ASerializer)->WriteInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%); // <%%% END IF_FIELD_INTEGER_TYPE %%%> // <%%% START IF_FIELD_STRING_TYPE %%%> dynamic_cast(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRING_TYPE %%%> // <%%% START IF_FIELD_UTF8STRING_TYPE %%%> dynamic_cast(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_UTF8STRING_TYPE %%%> // <%%% START IF_FIELD_VARIANT_TYPE %%%> dynamic_cast(ASerializer)->WriteVariant("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_VARIANT_TYPE %%%> // <%%% START IF_FIELD_WIDESTRING_TYPE %%%> dynamic_cast(ASerializer)->WriteWideString("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_WIDESTRING_TYPE %%%> // <%%% START IF_FIELD_XML_TYPE %%%> dynamic_cast(ASerializer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_XML_TYPE %%%> // <%%% START IF_FIELD_ARRAY_TYPE %%%> dynamic_cast(ASerializer)->WriteArray("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_ARRAY_TYPE %%%> // <%%% START IF_FIELD_ENUM_TYPE %%%> dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%); // <%%% END IF_FIELD_ENUM_TYPE %%%> // <%%% START IF_FIELD_STRUCT_TYPE %%%> dynamic_cast(ASerializer)->WriteStruct("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRUCT_TYPE %%%> // <%%% END FIELDS_NO_STRIP %%%> } else { // <%%% START ENTIRE_HIERARCHY_FIELDS %%%> // <%%% START IF_FIELD_TYPE_SIMPLE %%%> %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_SIMPLE %%%> // <%%% START IF_FIELD_TYPE_COMPLEX %%%> %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%; // <%%% END IF_FIELD_TYPE_COMPLEX %%%> // <%%% START IF_FIELD_BINARY_TYPE %%%> dynamic_cast(ASerializer)->WriteBinary("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_BINARY_TYPE %%%> // <%%% START IF_FIELD_BOOLEAN_TYPE %%%> dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%); // <%%% END IF_FIELD_BOOLEAN_TYPE %%%> // <%%% START IF_FIELD_CURRENCY_TYPE %%%> dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%); // <%%% END IF_FIELD_CURRENCY_TYPE %%%> // <%%% START IF_FIELD_DATETIME_TYPE %%%> dynamic_cast(ASerializer)->WriteDateTime("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DATETIME_TYPE %%%> // <%%% START IF_FIELD_DECIMAL_TYPE %%%> dynamic_cast(ASerializer)->WriteDecimal("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_DECIMAL_TYPE %%%> // <%%% START IF_FIELD_DOUBLE_TYPE %%%> dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%); // <%%% END IF_FIELD_DOUBLE_TYPE %%%> // <%%% START IF_FIELD_GUID_TYPE %%%> dynamic_cast(ASerializer)->WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_GUID_TYPE %%%> // <%%% START IF_FIELD_INT64_TYPE %%%> dynamic_cast(ASerializer)->WriteInt64("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_INT64_TYPE %%%> // <%%% START IF_FIELD_INTEGER_TYPE %%%> dynamic_cast(ASerializer)->WriteInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%); // <%%% END IF_FIELD_INTEGER_TYPE %%%> // <%%% START IF_FIELD_STRING_TYPE %%%> dynamic_cast(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRING_TYPE %%%> // <%%% START IF_FIELD_UTF8STRING_TYPE %%%> dynamic_cast(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_UTF8STRING_TYPE %%%> // <%%% START IF_FIELD_VARIANT_TYPE %%%> dynamic_cast(ASerializer)->WriteVariant("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_VARIANT_TYPE %%%> // <%%% START IF_FIELD_WIDESTRING_TYPE %%%> dynamic_cast(ASerializer)->WriteWideString("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_WIDESTRING_TYPE %%%> // <%%% START IF_FIELD_XML_TYPE %%%> dynamic_cast(ASerializer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_XML_TYPE %%%> // <%%% START IF_FIELD_ARRAY_TYPE %%%> dynamic_cast(ASerializer)->WriteArray("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_ARRAY_TYPE %%%> // <%%% START IF_FIELD_ENUM_TYPE %%%> dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%); // <%%% END IF_FIELD_ENUM_TYPE %%%> // <%%% START IF_FIELD_STRUCT_TYPE %%%> dynamic_cast(ASerializer)->WriteStruct("%FIELD_NAME%", &l_%FIELD_NAME%); // <%%% END IF_FIELD_STRUCT_TYPE %%%> // <%%% END ENTIRE_HIERARCHY_FIELDS %%%> } } // <%%% END IF_HAS_FIELDS %%%> //%STRUCT_COLLECTION_NAME% %STRUCT_NAME%* __fastcall %STRUCT_COLLECTION_NAME%::Add() { return dynamic_cast<%STRUCT_NAME%*>(inherited::Add()); } %STRUCT_NAME%* __fastcall %STRUCT_COLLECTION_NAME%::GetItems(const int Index) { return dynamic_cast<%STRUCT_NAME%*>(inherited::Items[Index]); } void __fastcall %STRUCT_COLLECTION_NAME%::SetItems(const int Index, %STRUCT_NAME%* Value) { dynamic_cast<%STRUCT_NAME%*>(inherited::Items[Index])->Assign(Value); } // <%%% START ARRAYS_IS_FOUND %%%> void %STRUCT_COLLECTION_NAME%::LoadFromArray(%ARRAY_NAME%* anArray) { Clear(); for(int i = 0; i <= anArray->Count-1; ++i) Add()->Assign((*anArray)[i]); } void %STRUCT_COLLECTION_NAME%::SaveToArray(%ARRAY_NAME%* anArray) { anArray->Clear(); anArray->Resize(Count); for(int i = 0; i <= Count-1; ++i) { anArray->Items[i] = new %STRUCT_NAME%; anArray->Items[i]->Assign(Items[i]); } } // <%%% END ARRAYS_IS_FOUND %%%> // <%%% END STRUCTS %%%> // <%%% START SERVICES %%%> // <%%% START FUNCTION_OPERATIONS %%%> // <%%% START IF_RESULT_SIMPLE %%%> %OPERATION_RESULT% __fastcall T%SERVICE_NAME%_Proxy::%OPERATION_NAME%( // <%%% END IF_RESULT_SIMPLE %%%> // <%%% START IF_RESULT_COMPLEX %%%> %OPERATION_RESULT%* __fastcall T%SERVICE_NAME%_Proxy::%OPERATION_NAME%( // <%%% END IF_RESULT_COMPLEX %%%> // <%%% START PARAMS %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%, // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%, // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END PARAMS %%%> ) { // <%%% START IF_RESULT_SIMPLE %%%> %OPERATION_RESULT% result; // <%%% END IF_RESULT_SIMPLE %%%> // <%%% START IF_RESULT_COMPLEX %%%> %OPERATION_RESULT%* result; // <%%% END IF_RESULT_COMPLEX %%%> // <%%% START OUT_PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> %PARAM_NAME% = NULL; // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END OUT_PARAMS_NO_STRIP %%%> // <%%% START IF_RESULT_COMPLEX %%%> result = NULL; // <%%% END IF_RESULT_COMPLEX %%%> try { __Message->InitializeRequestMessage(__TransportChannel, "%LIBRARY_NAME%", __InterfaceName, "%OPERATION_NAME%"); // <%%% START IN_PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END IN_PARAMS_NO_STRIP %%%> __Message->Finalize(); __TransportChannel->Dispatch(__Message); // <%%% START OUT_PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> __Message->Read("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> __Message->Read("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END OUT_PARAMS_NO_STRIP %%%> // <%%% START IF_RESULT_SIMPLE %%%> __Message->Read("Result", __Get%OPERATION_RESULT%Info, &result, TParamAttributes(%OPERATION_RESULT_ATTRIBUTE%)); // <%%% END IF_RESULT_SIMPLE %%%> // <%%% START IF_RESULT_COMPLEX %%%> __Message->Read("Result", __typeinfo(%OPERATION_RESULT%), result, TParamAttributes(%OPERATION_RESULT_ATTRIBUTE%)); // <%%% END IF_RESULT_COMPLEX %%%> } __finally { __Message->FreeStream(); } return result; } // <%%% END FUNCTION_OPERATIONS %%%> // <%%% START PROCEDURE_OPERATIONS %%%> void __fastcall T%SERVICE_NAME%_Proxy::%OPERATION_NAME%( // <%%% START PARAMS %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%, // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%, // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END PARAMS %%%> ) { // <%%% START OUT_PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> %PARAM_NAME% = NULL; // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END OUT_PARAMS_NO_STRIP %%%> try { __Message->InitializeRequestMessage(__TransportChannel, "%LIBRARY_NAME%", __InterfaceName, "%OPERATION_NAME%"); // <%%% START IN_PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END IN_PARAMS_NO_STRIP %%%> __Message->Finalize(); __TransportChannel->Dispatch(__Message); // <%%% START OUT_PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> __Message->Read("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> __Message->Read("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END OUT_PARAMS_NO_STRIP %%%> } __finally { __Message->FreeStream(); } } // <%%% END PROCEDURE_OPERATIONS %%%> // <%%% END SERVICES %%%> // <%%% START EVENT_SINKS %%%> namespace %NAMESPACE_NAME% { // T%EVENT_SINK_NAME%_Writer class DELPHICLASS T%EVENT_SINK_NAME%_Writer; class T%EVENT_SINK_NAME%_Writer : public T%EVENT_SINK_WRITER_ANCESTOR_NAME%, I%EVENT_SINK_NAME%_Writer { protected: // <%%% START OPERATIONS %%%> void __fastcall %OPERATION_NAME%(const GUID __Sender // <%%% START PARAMS %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> , %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME% // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> , %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME% // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END PARAMS %%%> ); // <%%% END OPERATIONS %%%> }; } // namespace %NAMESPACE_NAME% // <%%% START OPERATIONS %%%> void __fastcall T%EVENT_SINK_NAME%_Writer::%OPERATION_NAME%(const GUID __Sender // <%%% START PARAMS %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> , %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME% // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> , %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME% // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END PARAMS %%%> ) { Binary* __eventdata = new Binary(""); try { __Message->InitializeEventMessage(NULL, "%LIBRARY_NAME%", EID_%EVENT_SINK_NAME%, "%OPERATION_NAME%"); // <%%% START PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END PARAMS_NO_STRIP %%%> __Message->Finalize(); __Message->WriteToStream(__eventdata); Repository->StoreEventData(__Sender, __eventdata, TROEventWriter::ExcludeSender, TROEventWriter::ExcludeSessionList, TROEventWriter::SessionList->CommaText); } __finally { delete __eventdata; } } // <%%% END OPERATIONS %%%> /* T%EVENT_SINK_NAME%_Invoker */ namespace %NAMESPACE_NAME% { class DELPHICLASS T%EVENT_SINK_NAME%_Invoker; class T%EVENT_SINK_NAME%_Invoker : public T%EVENT_SINK_INVOKER_ANCESTOR_NAME% { __published: // <%%% START OPERATIONS %%%> void __fastcall Invoke_%OPERATION_NAME%(TROEventReceiver* __EventReceiver, IROMessage* __Message, IUnknown* __Target); // <%%% END OPERATIONS %%%> }; } // namespace %NAMESPACE_NAME% // <%%% START OPERATIONS %%%> void __fastcall T%EVENT_SINK_NAME%_Invoker::Invoke_%OPERATION_NAME%(TROEventReceiver* __EventReceiver, IROMessage* __Message, IUnknown* __Target) { // <%%% START PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> %PARAM_TYPE% %PARAM_NAME%; // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> %PARAM_TYPE%* %PARAM_NAME%; // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END PARAMS_NO_STRIP %%%> // <%%% START IF_HAS_COMPLEX_TYPE %%%> TROObjectDisposer* __lObjectDisposer; // <%%% END IF_HAS_COMPLEX_TYPE %%%> I%EVENT_SINK_NAME%* __%EVENT_SINK_NAME%Instance; // <%%% START PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> %PARAM_NAME% = NULL; // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END PARAMS_NO_STRIP %%%> try { // <%%% START IN_PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> __Message->Read("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> __Message->Read("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END IN_PARAMS_NO_STRIP %%%> __%EVENT_SINK_NAME%Instance = dynamic_cast(__Target); __%EVENT_SINK_NAME%Instance->%OPERATION_NAME%( // <%%% START PARAMS %%%> %PARAM_NAME%, // <%%% END PARAMS %%%> ); // <%%% START OUT_PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_SIMPLE %%%> __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_SIMPLE %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%)); // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END OUT_PARAMS_NO_STRIP %%%> } __finally { // <%%% START IF_HAS_COMPLEX_TYPE %%%> __lObjectDisposer = new TROObjectDisposer(__EventReceiver->operator IInterface *()); try { // <%%% START PARAMS_NO_STRIP %%%> // <%%% START IF_PARAM_TYPE_COMPLEX %%%> __lObjectDisposer->Add(%PARAM_NAME%); // <%%% END IF_PARAM_TYPE_COMPLEX %%%> // <%%% END PARAMS_NO_STRIP %%%> } __finally { delete __lObjectDisposer; } // <%%% END IF_HAS_COMPLEX_TYPE %%%> } } // <%%% END OPERATIONS %%%> // <%%% END EVENT_SINKS %%%> void __initialization_%UNIT_NAME%() { // <%%% START STRUCTS %%%> RegisterROClass(__classid(%STRUCT_NAME%)); // <%%% END STRUCTS %%%> // <%%% START ARRAYS %%%> RegisterROClass(__classid(%ARRAY_NAME%)); // <%%% END ARRAYS %%%> // <%%% START EXCEPTIONS %%%> RegisterExceptionClass(__classid(%EXCEPTION_NAME%)); // <%%% END EXCEPTIONS %%%> // <%%% START SERVICES %%%> RegisterProxyClass(I%SERVICE_NAME%_IID, __classid(T%SERVICE_NAME%_Proxy)); // <%%% END SERVICES %%%> // <%%% START EVENT_SINKS %%%> RegisterEventWriterClass(I%EVENT_SINK_NAME%_IID, __classid(T%EVENT_SINK_NAME%_Writer)); RegisterEventInvokerClass(EID_%EVENT_SINK_NAME%, __classid(T%EVENT_SINK_NAME%_Invoker)); // <%%% END EVENT_SINKS %%%> } void __finalization_%UNIT_NAME%() { // <%%% START STRUCTS %%%> UnregisterROClass(__classid(%STRUCT_NAME%)); // <%%% END STRUCTS %%%> // <%%% START ARRAYS %%%> UnregisterROClass(__classid(%ARRAY_NAME%)); // <%%% END ARRAYS %%%> // <%%% START EXCEPTIONS %%%> UnregisterExceptionClass(__classid(%EXCEPTION_NAME%)); // <%%% END EXCEPTIONS %%%> // <%%% START SERVICES %%%> UnregisterProxyClass(I%SERVICE_NAME%_IID); // <%%% END SERVICES %%%> // <%%% START EVENT_SINKS %%%> UnregisterEventWriterClass(I%EVENT_SINK_NAME%_IID); UnregisterEventInvokerClass(EID_%EVENT_SINK_NAME%); // <%%% END EVENT_SINKS %%%> }