%%------------------------------------------------------------
%%
%% Implementation stub file
%% 
%% Target: oe_CosNotifyComm
%% Source: /work/a/ports/lang/erlang/work/otp_src_R11B-1/lib/cosNotification/src/CosNotifyComm.idl
%% IC vsn: 4.2.11
%% 
%% This file is automatically generated. DO NOT EDIT IT.
%%
%%------------------------------------------------------------

-module(oe_CosNotifyComm).
-ic_compiled("4_2_11").


-include_lib("orber/include/ifr_types.hrl").

%% Interface functions

-export([oe_register/0, oe_unregister/0, oe_get_module/5]).
-export([oe_dependency/0]).



oe_register() ->
    OE_IFR = orber_ifr:find_repository(),

    register_tests(OE_IFR),

    _OE_1 = oe_get_top_module(OE_IFR, "IDL:omg.org/CosNotifyComm:1.0", "CosNotifyComm", "1.0"),

    orber_ifr:'ModuleDef_create_exception'(_OE_1, "IDL:omg.org/CosNotifyComm/InvalidEventType:1.0", "InvalidEventType", "1.0", [#structmember{name="type", type={tk_struct,
                                    "IDL:omg.org/CosNotification/EventType:1.0",
                                    "EventType",
                                    [{"domain_name",{tk_string,0}},
                                     {"type_name",{tk_string,0}}]}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_struct,
                                                  "IDL:omg.org/CosNotification/EventType:1.0",
                                                  "EventType",
                                                  [{"domain_name",
                                                    {tk_string,0}},
                                                   {"type_name",{tk_string,0}}]})}]),

    _OE_2 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/NotifyPublish:1.0", "NotifyPublish", "1.0", []),

    orber_ifr:'InterfaceDef_create_operation'(_OE_2, "IDL:omg.org/CosNotifyComm/NotifyPublish/offer_change:1.0", "offer_change", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [#parameterdescription{name="removed", type={tk_sequence,
                                               {tk_struct,
                                                   "IDL:omg.org/CosNotification/EventType:1.0",
                                                   "EventType",
                                                   [{"domain_name",
                                                     {tk_string,0}},
                                                    {"type_name",
                                                     {tk_string,0}}]},
                                               0}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_sequence,
                                                  {tk_struct,
                                                      "IDL:omg.org/CosNotification/EventType:1.0",
                                                      "EventType",
                                                      [{"domain_name",
                                                        {tk_string,0}},
                                                       {"type_name",
                                                        {tk_string,0}}]},
                                                  0}), mode='PARAM_IN'}
, #parameterdescription{name="added", type={tk_sequence,
                                             {tk_struct,
                                                 "IDL:omg.org/CosNotification/EventType:1.0",
                                                 "EventType",
                                                 [{"domain_name",
                                                   {tk_string,0}},
                                                  {"type_name",{tk_string,0}}]},
                                             0}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_sequence,
                                                  {tk_struct,
                                                      "IDL:omg.org/CosNotification/EventType:1.0",
                                                      "EventType",
                                                      [{"domain_name",
                                                        {tk_string,0}},
                                                       {"type_name",
                                                        {tk_string,0}}]},
                                                  0}), mode='PARAM_IN'}
], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/InvalidEventType:1.0")], []),

    _OE_3 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/NotifySubscribe:1.0", "NotifySubscribe", "1.0", []),

    orber_ifr:'InterfaceDef_create_operation'(_OE_3, "IDL:omg.org/CosNotifyComm/NotifySubscribe/subscription_change:1.0", "subscription_change", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [#parameterdescription{name="removed", type={tk_sequence,
                                               {tk_struct,
                                                   "IDL:omg.org/CosNotification/EventType:1.0",
                                                   "EventType",
                                                   [{"domain_name",
                                                     {tk_string,0}},
                                                    {"type_name",
                                                     {tk_string,0}}]},
                                               0}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_sequence,
                                                  {tk_struct,
                                                      "IDL:omg.org/CosNotification/EventType:1.0",
                                                      "EventType",
                                                      [{"domain_name",
                                                        {tk_string,0}},
                                                       {"type_name",
                                                        {tk_string,0}}]},
                                                  0}), mode='PARAM_IN'}
, #parameterdescription{name="added", type={tk_sequence,
                                             {tk_struct,
                                                 "IDL:omg.org/CosNotification/EventType:1.0",
                                                 "EventType",
                                                 [{"domain_name",
                                                   {tk_string,0}},
                                                  {"type_name",{tk_string,0}}]},
                                             0}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_sequence,
                                                  {tk_struct,
                                                      "IDL:omg.org/CosNotification/EventType:1.0",
                                                      "EventType",
                                                      [{"domain_name",
                                                        {tk_string,0}},
                                                       {"type_name",
                                                        {tk_string,0}}]},
                                                  0}), mode='PARAM_IN'}
], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/InvalidEventType:1.0")], []),

    _OE_4 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/PushConsumer:1.0", "PushConsumer", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosEventComm/PushConsumer:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifyPublish:1.0")]),

    _OE_5 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/PullConsumer:1.0", "PullConsumer", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosEventComm/PullConsumer:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifyPublish:1.0")]),

    _OE_6 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/PullSupplier:1.0", "PullSupplier", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosEventComm/PullSupplier:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifySubscribe:1.0")]),

    _OE_7 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/PushSupplier:1.0", "PushSupplier", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosEventComm/PushSupplier:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifySubscribe:1.0")]),

    _OE_8 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/StructuredPushConsumer:1.0", "StructuredPushConsumer", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifyPublish:1.0")]),

    orber_ifr:'InterfaceDef_create_operation'(_OE_8, "IDL:omg.org/CosNotifyComm/StructuredPushConsumer/push_structured_event:1.0", "push_structured_event", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [#parameterdescription{name="notification", type={tk_struct,
                                                    "IDL:omg.org/CosNotification/StructuredEvent:1.0",
                                                    "StructuredEvent",
                                                    [{"header",
                                                      {tk_struct,
                                                          "IDL:omg.org/CosNotification/EventHeader:1.0",
                                                          "EventHeader",
                                                          [{"fixed_header",
                                                            {tk_struct,
                                                                "IDL:omg.org/CosNotification/FixedEventHeader:1.0",
                                                                "FixedEventHeader",
                                                                [{"event_type",
                                                                  {tk_struct,
                                                                      "IDL:omg.org/CosNotification/EventType:1.0",
                                                                      "EventType",
                                                                      [{"domain_name",
                                                                        {tk_string,
                                                                            0}},
                                                                       {"type_name",
                                                                        {tk_string,
                                                                            0}}]}},
                                                                 {"event_name",
                                                                  {tk_string,
                                                                      0}}]}},
                                                           {"variable_header",
                                                            {tk_sequence,
                                                                {tk_struct,
                                                                    "IDL:omg.org/CosNotification/Property:1.0",
                                                                    "Property",
                                                                    [{"name",
                                                                      {tk_string,
                                                                          0}},
                                                                     {"value",
                                                                      tk_any}]},
                                                                0}}]}},
                                                     {"filterable_data",
                                                      {tk_sequence,
                                                          {tk_struct,
                                                              "IDL:omg.org/CosNotification/Property:1.0",
                                                              "Property",
                                                              [{"name",
                                                                {tk_string,0}},
                                                               {"value",
                                                                tk_any}]},
                                                          0}},
                                                     {"remainder_of_body",
                                                      tk_any}]}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_struct,
                                                  "IDL:omg.org/CosNotification/StructuredEvent:1.0",
                                                  "StructuredEvent",
                                                  [{"header",
                                                    {tk_struct,
                                                        "IDL:omg.org/CosNotification/EventHeader:1.0",
                                                        "EventHeader",
                                                        [{"fixed_header",
                                                          {tk_struct,
                                                              "IDL:omg.org/CosNotification/FixedEventHeader:1.0",
                                                              "FixedEventHeader",
                                                              [{"event_type",
                                                                {tk_struct,
                                                                    "IDL:omg.org/CosNotification/EventType:1.0",
                                                                    "EventType",
                                                                    [{"domain_name",
                                                                      {tk_string,
                                                                          0}},
                                                                     {"type_name",
                                                                      {tk_string,
                                                                          0}}]}},
                                                               {"event_name",
                                                                {tk_string,0}}]}},
                                                         {"variable_header",
                                                          {tk_sequence,
                                                              {tk_struct,
                                                                  "IDL:omg.org/CosNotification/Property:1.0",
                                                                  "Property",
                                                                  [{"name",
                                                                    {tk_string,
                                                                        0}},
                                                                   {"value",
                                                                    tk_any}]},
                                                              0}}]}},
                                                   {"filterable_data",
                                                    {tk_sequence,
                                                        {tk_struct,
                                                            "IDL:omg.org/CosNotification/Property:1.0",
                                                            "Property",
                                                            [{"name",
                                                              {tk_string,0}},
                                                             {"value",tk_any}]},
                                                        0}},
                                                   {"remainder_of_body",
                                                    tk_any}]}), mode='PARAM_IN'}
], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosEventComm/Disconnected:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(_OE_8, "IDL:omg.org/CosNotifyComm/StructuredPushConsumer/disconnect_structured_push_consumer:1.0", "disconnect_structured_push_consumer", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [], []),

    _OE_9 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/StructuredPullConsumer:1.0", "StructuredPullConsumer", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifyPublish:1.0")]),

    orber_ifr:'InterfaceDef_create_operation'(_OE_9, "IDL:omg.org/CosNotifyComm/StructuredPullConsumer/disconnect_structured_pull_consumer:1.0", "disconnect_structured_pull_consumer", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [], []),

    _OE_10 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/StructuredPullSupplier:1.0", "StructuredPullSupplier", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifySubscribe:1.0")]),

    orber_ifr:'InterfaceDef_create_operation'(_OE_10, "IDL:omg.org/CosNotifyComm/StructuredPullSupplier/pull_structured_event:1.0", "pull_structured_event", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_struct,
                                                  "IDL:omg.org/CosNotification/StructuredEvent:1.0",
                                                  "StructuredEvent",
                                                  [{"header",
                                                    {tk_struct,
                                                        "IDL:omg.org/CosNotification/EventHeader:1.0",
                                                        "EventHeader",
                                                        [{"fixed_header",
                                                          {tk_struct,
                                                              "IDL:omg.org/CosNotification/FixedEventHeader:1.0",
                                                              "FixedEventHeader",
                                                              [{"event_type",
                                                                {tk_struct,
                                                                    "IDL:omg.org/CosNotification/EventType:1.0",
                                                                    "EventType",
                                                                    [{"domain_name",
                                                                      {tk_string,
                                                                          0}},
                                                                     {"type_name",
                                                                      {tk_string,
                                                                          0}}]}},
                                                               {"event_name",
                                                                {tk_string,0}}]}},
                                                         {"variable_header",
                                                          {tk_sequence,
                                                              {tk_struct,
                                                                  "IDL:omg.org/CosNotification/Property:1.0",
                                                                  "Property",
                                                                  [{"name",
                                                                    {tk_string,
                                                                        0}},
                                                                   {"value",
                                                                    tk_any}]},
                                                              0}}]}},
                                                   {"filterable_data",
                                                    {tk_sequence,
                                                        {tk_struct,
                                                            "IDL:omg.org/CosNotification/Property:1.0",
                                                            "Property",
                                                            [{"name",
                                                              {tk_string,0}},
                                                             {"value",tk_any}]},
                                                        0}},
                                                   {"remainder_of_body",
                                                    tk_any}]}), 'OP_NORMAL', [], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosEventComm/Disconnected:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(_OE_10, "IDL:omg.org/CosNotifyComm/StructuredPullSupplier/try_pull_structured_event:1.0", "try_pull_structured_event", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_struct,
                                                  "IDL:omg.org/CosNotification/StructuredEvent:1.0",
                                                  "StructuredEvent",
                                                  [{"header",
                                                    {tk_struct,
                                                        "IDL:omg.org/CosNotification/EventHeader:1.0",
                                                        "EventHeader",
                                                        [{"fixed_header",
                                                          {tk_struct,
                                                              "IDL:omg.org/CosNotification/FixedEventHeader:1.0",
                                                              "FixedEventHeader",
                                                              [{"event_type",
                                                                {tk_struct,
                                                                    "IDL:omg.org/CosNotification/EventType:1.0",
                                                                    "EventType",
                                                                    [{"domain_name",
                                                                      {tk_string,
                                                                          0}},
                                                                     {"type_name",
                                                                      {tk_string,
                                                                          0}}]}},
                                                               {"event_name",
                                                                {tk_string,0}}]}},
                                                         {"variable_header",
                                                          {tk_sequence,
                                                              {tk_struct,
                                                                  "IDL:omg.org/CosNotification/Property:1.0",
                                                                  "Property",
                                                                  [{"name",
                                                                    {tk_string,
                                                                        0}},
                                                                   {"value",
                                                                    tk_any}]},
                                                              0}}]}},
                                                   {"filterable_data",
                                                    {tk_sequence,
                                                        {tk_struct,
                                                            "IDL:omg.org/CosNotification/Property:1.0",
                                                            "Property",
                                                            [{"name",
                                                              {tk_string,0}},
                                                             {"value",tk_any}]},
                                                        0}},
                                                   {"remainder_of_body",
                                                    tk_any}]}), 'OP_NORMAL', [#parameterdescription{name="has_event", type=tk_boolean, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, tk_boolean), mode='PARAM_OUT'}
], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosEventComm/Disconnected:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(_OE_10, "IDL:omg.org/CosNotifyComm/StructuredPullSupplier/disconnect_structured_pull_supplier:1.0", "disconnect_structured_pull_supplier", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [], []),

    _OE_11 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/StructuredPushSupplier:1.0", "StructuredPushSupplier", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifySubscribe:1.0")]),

    orber_ifr:'InterfaceDef_create_operation'(_OE_11, "IDL:omg.org/CosNotifyComm/StructuredPushSupplier/disconnect_structured_push_supplier:1.0", "disconnect_structured_push_supplier", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [], []),

    _OE_12 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/SequencePushConsumer:1.0", "SequencePushConsumer", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifyPublish:1.0")]),

    orber_ifr:'InterfaceDef_create_operation'(_OE_12, "IDL:omg.org/CosNotifyComm/SequencePushConsumer/push_structured_events:1.0", "push_structured_events", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [#parameterdescription{name="notifications", type={tk_sequence,
                                                     {tk_struct,
                                                         "IDL:omg.org/CosNotification/StructuredEvent:1.0",
                                                         "StructuredEvent",
                                                         [{"header",
                                                           {tk_struct,
                                                               "IDL:omg.org/CosNotification/EventHeader:1.0",
                                                               "EventHeader",
                                                               [{"fixed_header",
                                                                 {tk_struct,
                                                                     "IDL:omg.org/CosNotification/FixedEventHeader:1.0",
                                                                     "FixedEventHeader",
                                                                     [{"event_type",
                                                                       {tk_struct,
                                                                           "IDL:omg.org/CosNotification/EventType:1.0",
                                                                           "EventType",
                                                                           [{"domain_name",
                                                                             {tk_string,
                                                                                 0}},
                                                                            {"type_name",
                                                                             {tk_string,
                                                                                 0}}]}},
                                                                      {"event_name",
                                                                       {tk_string,
                                                                           0}}]}},
                                                                {"variable_header",
                                                                 {tk_sequence,
                                                                     {tk_struct,
                                                                         "IDL:omg.org/CosNotification/Property:1.0",
                                                                         "Property",
                                                                         [{"name",
                                                                           {tk_string,
                                                                               0}},
                                                                          {"value",
                                                                           tk_any}]},
                                                                     0}}]}},
                                                          {"filterable_data",
                                                           {tk_sequence,
                                                               {tk_struct,
                                                                   "IDL:omg.org/CosNotification/Property:1.0",
                                                                   "Property",
                                                                   [{"name",
                                                                     {tk_string,
                                                                         0}},
                                                                    {"value",
                                                                     tk_any}]},
                                                               0}},
                                                          {"remainder_of_body",
                                                           tk_any}]},
                                                     0}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_sequence,
                                                  {tk_struct,
                                                      "IDL:omg.org/CosNotification/StructuredEvent:1.0",
                                                      "StructuredEvent",
                                                      [{"header",
                                                        {tk_struct,
                                                            "IDL:omg.org/CosNotification/EventHeader:1.0",
                                                            "EventHeader",
                                                            [{"fixed_header",
                                                              {tk_struct,
                                                                  "IDL:omg.org/CosNotification/FixedEventHeader:1.0",
                                                                  "FixedEventHeader",
                                                                  [{"event_type",
                                                                    {tk_struct,
                                                                        "IDL:omg.org/CosNotification/EventType:1.0",
                                                                        "EventType",
                                                                        [{"domain_name",
                                                                          {tk_string,
                                                                              0}},
                                                                         {"type_name",
                                                                          {tk_string,
                                                                              0}}]}},
                                                                   {"event_name",
                                                                    {tk_string,
                                                                        0}}]}},
                                                             {"variable_header",
                                                              {tk_sequence,
                                                                  {tk_struct,
                                                                      "IDL:omg.org/CosNotification/Property:1.0",
                                                                      "Property",
                                                                      [{"name",
                                                                        {tk_string,
                                                                            0}},
                                                                       {"value",
                                                                        tk_any}]},
                                                                  0}}]}},
                                                       {"filterable_data",
                                                        {tk_sequence,
                                                            {tk_struct,
                                                                "IDL:omg.org/CosNotification/Property:1.0",
                                                                "Property",
                                                                [{"name",
                                                                  {tk_string,
                                                                      0}},
                                                                 {"value",
                                                                  tk_any}]},
                                                            0}},
                                                       {"remainder_of_body",
                                                        tk_any}]},
                                                  0}), mode='PARAM_IN'}
], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosEventComm/Disconnected:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(_OE_12, "IDL:omg.org/CosNotifyComm/SequencePushConsumer/disconnect_sequence_push_consumer:1.0", "disconnect_sequence_push_consumer", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [], []),

    _OE_13 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/SequencePullConsumer:1.0", "SequencePullConsumer", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifyPublish:1.0")]),

    orber_ifr:'InterfaceDef_create_operation'(_OE_13, "IDL:omg.org/CosNotifyComm/SequencePullConsumer/disconnect_sequence_pull_consumer:1.0", "disconnect_sequence_pull_consumer", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [], []),

    _OE_14 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/SequencePullSupplier:1.0", "SequencePullSupplier", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifySubscribe:1.0")]),

    orber_ifr:'InterfaceDef_create_operation'(_OE_14, "IDL:omg.org/CosNotifyComm/SequencePullSupplier/pull_structured_events:1.0", "pull_structured_events", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_sequence,
                                                  {tk_struct,
                                                      "IDL:omg.org/CosNotification/StructuredEvent:1.0",
                                                      "StructuredEvent",
                                                      [{"header",
                                                        {tk_struct,
                                                            "IDL:omg.org/CosNotification/EventHeader:1.0",
                                                            "EventHeader",
                                                            [{"fixed_header",
                                                              {tk_struct,
                                                                  "IDL:omg.org/CosNotification/FixedEventHeader:1.0",
                                                                  "FixedEventHeader",
                                                                  [{"event_type",
                                                                    {tk_struct,
                                                                        "IDL:omg.org/CosNotification/EventType:1.0",
                                                                        "EventType",
                                                                        [{"domain_name",
                                                                          {tk_string,
                                                                              0}},
                                                                         {"type_name",
                                                                          {tk_string,
                                                                              0}}]}},
                                                                   {"event_name",
                                                                    {tk_string,
                                                                        0}}]}},
                                                             {"variable_header",
                                                              {tk_sequence,
                                                                  {tk_struct,
                                                                      "IDL:omg.org/CosNotification/Property:1.0",
                                                                      "Property",
                                                                      [{"name",
                                                                        {tk_string,
                                                                            0}},
                                                                       {"value",
                                                                        tk_any}]},
                                                                  0}}]}},
                                                       {"filterable_data",
                                                        {tk_sequence,
                                                            {tk_struct,
                                                                "IDL:omg.org/CosNotification/Property:1.0",
                                                                "Property",
                                                                [{"name",
                                                                  {tk_string,
                                                                      0}},
                                                                 {"value",
                                                                  tk_any}]},
                                                            0}},
                                                       {"remainder_of_body",
                                                        tk_any}]},
                                                  0}), 'OP_NORMAL', [#parameterdescription{name="max_number", type=tk_long, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, tk_long), mode='PARAM_IN'}
], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosEventComm/Disconnected:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(_OE_14, "IDL:omg.org/CosNotifyComm/SequencePullSupplier/try_pull_structured_events:1.0", "try_pull_structured_events", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_sequence,
                                                  {tk_struct,
                                                      "IDL:omg.org/CosNotification/StructuredEvent:1.0",
                                                      "StructuredEvent",
                                                      [{"header",
                                                        {tk_struct,
                                                            "IDL:omg.org/CosNotification/EventHeader:1.0",
                                                            "EventHeader",
                                                            [{"fixed_header",
                                                              {tk_struct,
                                                                  "IDL:omg.org/CosNotification/FixedEventHeader:1.0",
                                                                  "FixedEventHeader",
                                                                  [{"event_type",
                                                                    {tk_struct,
                                                                        "IDL:omg.org/CosNotification/EventType:1.0",
                                                                        "EventType",
                                                                        [{"domain_name",
                                                                          {tk_string,
                                                                              0}},
                                                                         {"type_name",
                                                                          {tk_string,
                                                                              0}}]}},
                                                                   {"event_name",
                                                                    {tk_string,
                                                                        0}}]}},
                                                             {"variable_header",
                                                              {tk_sequence,
                                                                  {tk_struct,
                                                                      "IDL:omg.org/CosNotification/Property:1.0",
                                                                      "Property",
                                                                      [{"name",
                                                                        {tk_string,
                                                                            0}},
                                                                       {"value",
                                                                        tk_any}]},
                                                                  0}}]}},
                                                       {"filterable_data",
                                                        {tk_sequence,
                                                            {tk_struct,
                                                                "IDL:omg.org/CosNotification/Property:1.0",
                                                                "Property",
                                                                [{"name",
                                                                  {tk_string,
                                                                      0}},
                                                                 {"value",
                                                                  tk_any}]},
                                                            0}},
                                                       {"remainder_of_body",
                                                        tk_any}]},
                                                  0}), 'OP_NORMAL', [#parameterdescription{name="has_event", type=tk_boolean, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, tk_boolean), mode='PARAM_OUT'}
, #parameterdescription{name="max_number", type=tk_long, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, tk_long), mode='PARAM_IN'}
], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosEventComm/Disconnected:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(_OE_14, "IDL:omg.org/CosNotifyComm/SequencePullSupplier/disconnect_sequence_pull_supplier:1.0", "disconnect_sequence_pull_supplier", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [], []),

    _OE_15 = orber_ifr:'ModuleDef_create_interface'(_OE_1, "IDL:omg.org/CosNotifyComm/SequencePushSupplier:1.0", "SequencePushSupplier", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosNotifyComm/NotifySubscribe:1.0")]),

    orber_ifr:'InterfaceDef_create_operation'(_OE_15, "IDL:omg.org/CosNotifyComm/SequencePushSupplier/disconnect_sequence_push_supplier:1.0", "disconnect_sequence_push_supplier", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [], []),

    ok.


%% General IFR registration checks.
register_tests(OE_IFR)->
  re_register_test(OE_IFR),
  include_reg_test(OE_IFR).


%% IFR type Re-registration checks.
re_register_test(OE_IFR)->
  case orber_ifr:'Repository_lookup_id'(OE_IFR,"IDL:omg.org/CosNotifyComm/InvalidEventType:1.0") of
    []  ->
      true;
    _ ->
      exit({allready_registered,"IDL:omg.org/CosNotifyComm/InvalidEventType:1.0"})
 end.


%% IFR registration checks for included idl files.
include_reg_test(OE_IFR) ->
  case orber_ifr:'Repository_lookup_id'(OE_IFR,"IDL:omg.org/CosEventComm:1.0") of
    [] ->
      exit({unregistered,"IDL:omg.org/CosEventComm:1.0"});
    _  ->
      true
  end,
  case orber_ifr:'Repository_lookup_id'(OE_IFR,"IDL:omg.org/CosEventChannelAdmin:1.0") of
    [] ->
      exit({unregistered,"IDL:omg.org/CosEventChannelAdmin:1.0"});
    _  ->
      true
  end,
  case orber_ifr:'Repository_lookup_id'(OE_IFR,"IDL:omg.org/CosNotification:1.0") of
    [] ->
      exit({unregistered,"IDL:omg.org/CosNotification:1.0"});
    _  ->
      true
  end,
  true.


%% Fetch top module reference, register if unregistered.
oe_get_top_module(OE_IFR, ID, Name, Version) ->
  case orber_ifr:'Repository_lookup_id'(OE_IFR, ID) of
    [] ->
      orber_ifr:'Repository_create_module'(OE_IFR, ID, Name, Version);
    Mod  ->
      Mod
   end.

%% Fetch module reference, register if unregistered.
oe_get_module(OE_IFR, OE_Parent, ID, Name, Version) ->
  case orber_ifr:'Repository_lookup_id'(OE_IFR, ID) of
    [] ->
      orber_ifr:'ModuleDef_create_module'(OE_Parent, ID, Name, Version);
    Mod  ->
      Mod
   end.



oe_unregister() ->
    OE_IFR = orber_ifr:find_repository(),

    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/SequencePushSupplier:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/SequencePullSupplier:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/SequencePullConsumer:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/SequencePushConsumer:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/StructuredPushSupplier:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/StructuredPullSupplier:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/StructuredPullConsumer:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/StructuredPushConsumer:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/PushSupplier:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/PullSupplier:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/PullConsumer:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/PushConsumer:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/NotifySubscribe:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/NotifyPublish:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosNotifyComm/InvalidEventType:1.0"),
    oe_destroy_if_empty(OE_IFR, "IDL:omg.org/CosNotifyComm:1.0"),
    ok.


oe_destroy_if_empty(OE_IFR,IFR_ID) ->
    case orber_ifr:'Repository_lookup_id'(OE_IFR, IFR_ID) of
	[] ->
	    ok;
	Ref ->
	    case orber_ifr:contents(Ref, 'dk_All', 'true') of
		[] ->
		    orber_ifr:destroy(Ref),
		    ok;
		_ ->
		    ok
	    end
    end.

oe_destroy(OE_IFR,IFR_ID) ->
    case orber_ifr:'Repository_lookup_id'(OE_IFR, IFR_ID) of
	[] ->
	    ok;
	Ref ->
	    orber_ifr:destroy(Ref),
	    ok
    end.



%% Idl file dependency list function
oe_dependency() ->

    {"/work/a/ports/lang/erlang/work/otp_src_R11B-1/lib/cosNotification/src/CosNotifyComm.idl",
     ["/work/a/ports/lang/erlang/work/otp_src_R11B-1/lib/cosEvent/src/CosEventComm.idl",
      "/work/a/ports/lang/erlang/work/otp_src_R11B-1/lib/cosEvent/src/CosEventChannelAdmin.idl",
      "CosNotification.idl"]}.

