/// ============================================================================ /// PIB DDS MESSAGE DEFINITIONS /// ============================================================================ /// /// File: pib_dds_msg.idl /// /// Copyright � 2013 and beyond by Consequor Consulting AG, Germany. /// All rights reserved. /// /// DO NOT COPY, USE, DISTRIBUTE IN ANY FORM WITHOUT WRITTEN /// PERMISSION BY CONSEQUOR CONSULTING AG. /// /// ---------------------------------------------------------------------------- /// /// Usable with RTI's rtiddsgen. For more information on rtiddsgen see /// /// ---------------------------------------------------------------------------- /// $Header$ /// /// $Log$ /// ---------------------------------------------------------------------------- #if !defined( __PIB_DDS_MSG_IDL__ ) #define __PIB_DDS_MSG_IDL__ #include "pib_dds_idl_version_info.idl" #include "pib_dds_base.idl" #include "pib_dds_object.idl" #include "pib_dds_uom.idl" #include "pib_dds_actor.idl" #include "pib_dds_bom.idl" #include "pib_dds_item.idl" #include "pib_dds_lifecycle.idl" #include "pib_dds_organization.idl" #include "pib_dds_project.idl" #include "pib_dds_relation.idl" #include "pib_dds_supplychain.idl" #include "pib_dds_task.idl" #include "pib_dds_usagecontext.idl" // pib_dds_system.idl may not be imported here. The messages in // pib_dds_system.idl will be sent atomically - therefore not as // part of a pib_msg structure. module pib_dds { enum msg_element_kind { // pib_actor.idl MSG_ELEMENT_KIND_PERSON, MSG_ELEMENT_KIND_APPLICATION, MSG_ELEMENT_KIND_ACTOR, // pib_base.idl MSG_ELEMENT_KIND_PARTICIPANT_INFO, MSG_ELEMENT_KIND_RELATION, MSG_ELEMENT_KIND_BRANCH, // pib_bom.idl MSG_ELEMENT_KIND_BOM, // pib_item.idl MSG_ELEMENT_KIND_ITEM, // pib_lifecycle.idl MSG_ELEMENT_KIND_STATUS_CHANGE, MSG_ELEMENT_KIND_LIFECYCLE_CHANGE, // pib_object.idl // None // pib_organization.idl MSG_ELEMENT_KIND_ORGANIZATION, // pib_project.idl MSG_ELEMENT_KIND_PROJECT, // pib_supply_chain.idl MSG_ELEMENT_KIND_STORAGE_LOCATION, MSG_ELEMENT_KIND_PLANT, // pib_system.idl // None - System messages are always sent atomically, one by one. // pib_task.idl MSG_ELEMENT_KIND_TASK, // pib_uom.idl // None // pib_usage_context.idl MSG_ELEMENT_KIND_USAGECONTEXT }; union msg_element switch ( msg_element_kind ) { case MSG_ELEMENT_KIND_PERSON: person person; case MSG_ELEMENT_KIND_APPLICATION: application application; case MSG_ELEMENT_KIND_ACTOR: actor actor; case MSG_ELEMENT_KIND_PARTICIPANT_INFO: participant_info participant_info; case MSG_ELEMENT_KIND_RELATION: relation relation; case MSG_ELEMENT_KIND_BRANCH: branch branch; case MSG_ELEMENT_KIND_BOM: bom bom; case MSG_ELEMENT_KIND_ITEM: item item; case MSG_ELEMENT_KIND_STATUS_CHANGE: status_change status_change; case MSG_ELEMENT_KIND_LIFECYCLE_CHANGE: lifecycle_change lifecycle_change; case MSG_ELEMENT_KIND_ORGANIZATION: organization organization; case MSG_ELEMENT_KIND_PROJECT: project project; case MSG_ELEMENT_KIND_STORAGE_LOCATION: storage_location storage_location; case MSG_ELEMENT_KIND_PLANT: plant plant; case MSG_ELEMENT_KIND_TASK: task task; case MSG_ELEMENT_KIND_USAGECONTEXT: usage_context usage_context; }; const unsigned long long MSG_MAX_NR_MSG_ELEMENTS = 128; struct msg { participant_info participant; sequence< msg_element, MSG_MAX_NR_MSG_ELEMENTS > msg_elements; }; }; #endif