+ }
+
+ hlaInteractionClass->setSubscriptionType(interactionClass->getSubscriptionType());
+ hlaInteractionClass->setPublicationType(interactionClass->getPublicationType());
+
+ // process the parameters
+ for (unsigned j = 0; j < interactionClass->getNumParameters(); ++j) {
+ const Parameter* parameter = interactionClass->getParameter(j);
+ unsigned index = hlaInteractionClass->addParameter(parameter->getName());
+ hlaInteractionClass->setParameterDataType(index, federate.getDataType(parameter->getDataType()));
+ }
+ }
+
+ // Provide all object classes
+ unsigned numObjectClasses = getNumObjectClasses();
+ for (unsigned i = 0; i < numObjectClasses; ++i) {
+ const ObjectClass* objectClass = getObjectClass(i);
+
+ SGSharedPtr<HLAObjectClass> hlaObjectClass;
+ hlaObjectClass = federate.createObjectClass(objectClass->getName());
+ if (!hlaObjectClass.valid()) {
+ SG_LOG(SG_IO, SG_INFO, "Ignoring Object class \"" << objectClass->getName() << "\".");
+ continue;
+ }
+
+ // process the attributes
+ for (unsigned j = 0; j < objectClass->getNumAttributes(); ++j) {
+ const Attribute* attribute = objectClass->getAttribute(j);
+
+ unsigned index = hlaObjectClass->addAttribute(attribute->getName());
+ hlaObjectClass->setAttributeDataType(index, federate.getDataType(attribute->getDataType()));
+
+ hlaObjectClass->setAttributeSubscriptionType(index, attribute->getSubscriptionType());
+ hlaObjectClass->setAttributePublicationType(index, attribute->getPublicationType());
+ hlaObjectClass->setAttributeUpdateType(index, attribute->getUpdateType());
+ }