%%------------------------------------------------------------
%%
%% Implementation stub file
%% 
%% Target: oe_CosTransactions
%% Source: /tmp/a/ports/lang/erlang/work/otp_src_R9C-0/lib/cosTransactions/src/CosTransactions.idl
%% IC vsn: 4.2.1
%% 
%% This file is automatically generated. DO NOT EDIT IT.
%%
%%------------------------------------------------------------

-module(oe_CosTransactions).
-ic_compiled("4_2_1").


-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/CosTransactions:1.0", "CosTransactions", "1.0"),

    orber_ifr:'ModuleDef_create_enum'(OE_1, "IDL:omg.org/CosTransactions/Status:1.0", "Status", "1.0", ["StatusActive",
   "StatusMarkedRollback",
   "StatusPrepared",
   "StatusCommitted",
   "StatusRolledBack",
   "StatusUnknown",
   "StatusNoTransaction",
   "StatusPreparing",
   "StatusCommitting",
   "StatusRollingBack"]),

    orber_ifr:'ModuleDef_create_enum'(OE_1, "IDL:omg.org/CosTransactions/Vote:1.0", "Vote", "1.0", ["VoteCommit","VoteRollback","VoteReadOnly"]),

    orber_ifr:'ModuleDef_create_struct'(OE_1, "IDL:omg.org/CosTransactions/otid_t:1.0", "otid_t", "1.0", [#structmember{name="formatID", type=tk_long, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, tk_long)}, #structmember{name="bqual_length", type=tk_long, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, tk_long)}, #structmember{name="tid", type={tk_sequence,tk_octet,0}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_sequence,tk_octet,0})}]),

    orber_ifr:'ModuleDef_create_struct'(OE_1, "IDL:omg.org/CosTransactions/TransIdentity:1.0", "TransIdentity", "1.0", [#structmember{name="coord", type={tk_objref,
                                     "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                     "Coordinator"}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                  "Coordinator"})}, #structmember{name="term", type={tk_objref,
                                    "IDL:omg.org/CosTransactions/Terminator:1.0",
                                    "Terminator"}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Terminator:1.0",
                                                  "Terminator"})}, #structmember{name="otid", type={tk_struct,
                                    "IDL:omg.org/CosTransactions/otid_t:1.0",
                                    "otid_t",
                                    [{"formatID",tk_long},
                                     {"bqual_length",tk_long},
                                     {"tid",{tk_sequence,tk_octet,0}}]}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_struct,
                                                  "IDL:omg.org/CosTransactions/otid_t:1.0",
                                                  "otid_t",
                                                  [{"formatID",tk_long},
                                                   {"bqual_length",tk_long},
                                                   {"tid",
                                                    {tk_sequence,tk_octet,0}}]})}]),

    orber_ifr:'ModuleDef_create_struct'(OE_1, "IDL:omg.org/CosTransactions/PropagationContext:1.0", "PropagationContext", "1.0", [#structmember{name="timeout", type=tk_ulong, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, tk_ulong)}, #structmember{name="current", type={tk_struct,
                                       "IDL:omg.org/CosTransactions/TransIdentity:1.0",
                                       "TransIdentity",
                                       [{"coord",
                                         {tk_objref,
                                             "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                             "Coordinator"}},
                                        {"term",
                                         {tk_objref,
                                             "IDL:omg.org/CosTransactions/Terminator:1.0",
                                             "Terminator"}},
                                        {"otid",
                                         {tk_struct,
                                             "IDL:omg.org/CosTransactions/otid_t:1.0",
                                             "otid_t",
                                             [{"formatID",tk_long},
                                              {"bqual_length",tk_long},
                                              {"tid",{tk_sequence,tk_octet,0}}]}}]}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_struct,
                                                  "IDL:omg.org/CosTransactions/TransIdentity:1.0",
                                                  "TransIdentity",
                                                  [{"coord",
                                                    {tk_objref,
                                                        "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                        "Coordinator"}},
                                                   {"term",
                                                    {tk_objref,
                                                        "IDL:omg.org/CosTransactions/Terminator:1.0",
                                                        "Terminator"}},
                                                   {"otid",
                                                    {tk_struct,
                                                        "IDL:omg.org/CosTransactions/otid_t:1.0",
                                                        "otid_t",
                                                        [{"formatID",tk_long},
                                                         {"bqual_length",
                                                          tk_long},
                                                         {"tid",
                                                          {tk_sequence,
                                                              tk_octet,
                                                              0}}]}}]})}, #structmember{name="parents", type={tk_sequence,
                                       {tk_struct,
                                           "IDL:omg.org/CosTransactions/TransIdentity:1.0",
                                           "TransIdentity",
                                           [{"coord",
                                             {tk_objref,
                                                 "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                 "Coordinator"}},
                                            {"term",
                                             {tk_objref,
                                                 "IDL:omg.org/CosTransactions/Terminator:1.0",
                                                 "Terminator"}},
                                            {"otid",
                                             {tk_struct,
                                                 "IDL:omg.org/CosTransactions/otid_t:1.0",
                                                 "otid_t",
                                                 [{"formatID",tk_long},
                                                  {"bqual_length",tk_long},
                                                  {"tid",
                                                   {tk_sequence,tk_octet,0}}]}}]},
                                       0}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_sequence,
                                                  {tk_struct,
                                                      "IDL:omg.org/CosTransactions/TransIdentity:1.0",
                                                      "TransIdentity",
                                                      [{"coord",
                                                        {tk_objref,
                                                            "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                            "Coordinator"}},
                                                       {"term",
                                                        {tk_objref,
                                                            "IDL:omg.org/CosTransactions/Terminator:1.0",
                                                            "Terminator"}},
                                                       {"otid",
                                                        {tk_struct,
                                                            "IDL:omg.org/CosTransactions/otid_t:1.0",
                                                            "otid_t",
                                                            [{"formatID",
                                                              tk_long},
                                                             {"bqual_length",
                                                              tk_long},
                                                             {"tid",
                                                              {tk_sequence,
                                                                  tk_octet,
                                                                  0}}]}}]},
                                                  0})}, #structmember{name="implementation_specific_data", type=tk_any, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, tk_any)}]),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/HeuristicRollback:1.0", "HeuristicRollback", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/HeuristicCommit:1.0", "HeuristicCommit", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/HeuristicMixed:1.0", "HeuristicMixed", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/HeuristicHazard:1.0", "HeuristicHazard", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/WrongTransaction:1.0", "WrongTransaction", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/SubtransactionsUnavailable:1.0", "SubtransactionsUnavailable", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/NotSubtransaction:1.0", "NotSubtransaction", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/Inactive:1.0", "Inactive", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/NotPrepared:1.0", "NotPrepared", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/NoTransaction:1.0", "NoTransaction", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/InvalidControl:1.0", "InvalidControl", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/Unavailable:1.0", "Unavailable", "1.0", []),

    orber_ifr:'ModuleDef_create_exception'(OE_1, "IDL:omg.org/CosTransactions/SynchronizationUnavailable:1.0", "SynchronizationUnavailable", "1.0", []),

    OE_2 = orber_ifr:'ModuleDef_create_interface'(OE_1, "IDL:omg.org/CosTransactions/TransactionFactory:1.0", "TransactionFactory", "1.0", []),

    orber_ifr:'InterfaceDef_create_operation'(OE_2, "IDL:omg.org/CosTransactions/TransactionFactory/create:1.0", "create", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Control:1.0",
                                                  "Control"}), 'OP_NORMAL', [#parameterdescription{name="time_out", type=tk_ulong, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, tk_ulong), mode='PARAM_IN'}
], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_2, "IDL:omg.org/CosTransactions/TransactionFactory/recreate:1.0", "recreate", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Control:1.0",
                                                  "Control"}), 'OP_NORMAL', [#parameterdescription{name="ctx", type={tk_struct,
                                           "IDL:omg.org/CosTransactions/PropagationContext:1.0",
                                           "PropagationContext",
                                           [{"timeout",tk_ulong},
                                            {"current",
                                             {tk_struct,
                                                 "IDL:omg.org/CosTransactions/TransIdentity:1.0",
                                                 "TransIdentity",
                                                 [{"coord",
                                                   {tk_objref,
                                                       "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                       "Coordinator"}},
                                                  {"term",
                                                   {tk_objref,
                                                       "IDL:omg.org/CosTransactions/Terminator:1.0",
                                                       "Terminator"}},
                                                  {"otid",
                                                   {tk_struct,
                                                       "IDL:omg.org/CosTransactions/otid_t:1.0",
                                                       "otid_t",
                                                       [{"formatID",tk_long},
                                                        {"bqual_length",
                                                         tk_long},
                                                        {"tid",
                                                         {tk_sequence,
                                                             tk_octet,
                                                             0}}]}}]}},
                                            {"parents",
                                             {tk_sequence,
                                                 {tk_struct,
                                                     "IDL:omg.org/CosTransactions/TransIdentity:1.0",
                                                     "TransIdentity",
                                                     [{"coord",
                                                       {tk_objref,
                                                           "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                           "Coordinator"}},
                                                      {"term",
                                                       {tk_objref,
                                                           "IDL:omg.org/CosTransactions/Terminator:1.0",
                                                           "Terminator"}},
                                                      {"otid",
                                                       {tk_struct,
                                                           "IDL:omg.org/CosTransactions/otid_t:1.0",
                                                           "otid_t",
                                                           [{"formatID",
                                                             tk_long},
                                                            {"bqual_length",
                                                             tk_long},
                                                            {"tid",
                                                             {tk_sequence,
                                                                 tk_octet,
                                                                 0}}]}}]},
                                                 0}},
                                            {"implementation_specific_data",
                                             tk_any}]}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_struct,
                                                  "IDL:omg.org/CosTransactions/PropagationContext:1.0",
                                                  "PropagationContext",
                                                  [{"timeout",tk_ulong},
                                                   {"current",
                                                    {tk_struct,
                                                        "IDL:omg.org/CosTransactions/TransIdentity:1.0",
                                                        "TransIdentity",
                                                        [{"coord",
                                                          {tk_objref,
                                                              "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                              "Coordinator"}},
                                                         {"term",
                                                          {tk_objref,
                                                              "IDL:omg.org/CosTransactions/Terminator:1.0",
                                                              "Terminator"}},
                                                         {"otid",
                                                          {tk_struct,
                                                              "IDL:omg.org/CosTransactions/otid_t:1.0",
                                                              "otid_t",
                                                              [{"formatID",
                                                                tk_long},
                                                               {"bqual_length",
                                                                tk_long},
                                                               {"tid",
                                                                {tk_sequence,
                                                                    tk_octet,
                                                                    0}}]}}]}},
                                                   {"parents",
                                                    {tk_sequence,
                                                        {tk_struct,
                                                            "IDL:omg.org/CosTransactions/TransIdentity:1.0",
                                                            "TransIdentity",
                                                            [{"coord",
                                                              {tk_objref,
                                                                  "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                                  "Coordinator"}},
                                                             {"term",
                                                              {tk_objref,
                                                                  "IDL:omg.org/CosTransactions/Terminator:1.0",
                                                                  "Terminator"}},
                                                             {"otid",
                                                              {tk_struct,
                                                                  "IDL:omg.org/CosTransactions/otid_t:1.0",
                                                                  "otid_t",
                                                                  [{"formatID",
                                                                    tk_long},
                                                                   {"bqual_length",
                                                                    tk_long},
                                                                   {"tid",
                                                                    {tk_sequence,
                                                                        tk_octet,
                                                                        0}}]}}]},
                                                        0}},
                                                   {"implementation_specific_data",
                                                    tk_any}]}), mode='PARAM_IN'}
], [], []),

    OE_3 = orber_ifr:'ModuleDef_create_interface'(OE_1, "IDL:omg.org/CosTransactions/Control:1.0", "Control", "1.0", []),

    orber_ifr:'InterfaceDef_create_operation'(OE_3, "IDL:omg.org/CosTransactions/Control/get_terminator:1.0", "get_terminator", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Terminator:1.0",
                                                  "Terminator"}), 'OP_NORMAL', [], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/Unavailable:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_3, "IDL:omg.org/CosTransactions/Control/get_coordinator:1.0", "get_coordinator", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                  "Coordinator"}), 'OP_NORMAL', [], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/Unavailable:1.0")], []),

    OE_4 = orber_ifr:'ModuleDef_create_interface'(OE_1, "IDL:omg.org/CosTransactions/Terminator:1.0", "Terminator", "1.0", []),

    orber_ifr:'InterfaceDef_create_operation'(OE_4, "IDL:omg.org/CosTransactions/Terminator/commit:1.0", "commit", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [#parameterdescription{name="report_heuristics", type=tk_boolean, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, tk_boolean), mode='PARAM_IN'}
], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicHazard:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicMixed:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_4, "IDL:omg.org/CosTransactions/Terminator/rollback:1.0", "rollback", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [], []),

    OE_5 = orber_ifr:'ModuleDef_create_interface'(OE_1, "IDL:omg.org/CosTransactions/Coordinator:1.0", "Coordinator", "1.0", []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/get_status:1.0", "get_status", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_enum,
                                                  "IDL:omg.org/CosTransactions/Status:1.0",
                                                  "Status",
                                                  ["StatusActive",
                                                   "StatusMarkedRollback",
                                                   "StatusPrepared",
                                                   "StatusCommitted",
                                                   "StatusRolledBack",
                                                   "StatusUnknown",
                                                   "StatusNoTransaction",
                                                   "StatusPreparing",
                                                   "StatusCommitting",
                                                   "StatusRollingBack"]}), 'OP_NORMAL', [], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/get_parent_status:1.0", "get_parent_status", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_enum,
                                                  "IDL:omg.org/CosTransactions/Status:1.0",
                                                  "Status",
                                                  ["StatusActive",
                                                   "StatusMarkedRollback",
                                                   "StatusPrepared",
                                                   "StatusCommitted",
                                                   "StatusRolledBack",
                                                   "StatusUnknown",
                                                   "StatusNoTransaction",
                                                   "StatusPreparing",
                                                   "StatusCommitting",
                                                   "StatusRollingBack"]}), 'OP_NORMAL', [], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/get_top_level_status:1.0", "get_top_level_status", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_enum,
                                                  "IDL:omg.org/CosTransactions/Status:1.0",
                                                  "Status",
                                                  ["StatusActive",
                                                   "StatusMarkedRollback",
                                                   "StatusPrepared",
                                                   "StatusCommitted",
                                                   "StatusRolledBack",
                                                   "StatusUnknown",
                                                   "StatusNoTransaction",
                                                   "StatusPreparing",
                                                   "StatusCommitting",
                                                   "StatusRollingBack"]}), 'OP_NORMAL', [], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/is_same_transaction:1.0", "is_same_transaction", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_boolean), 'OP_NORMAL', [#parameterdescription{name="tc", type={tk_objref,
                                          "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                          "Coordinator"}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                  "Coordinator"}), mode='PARAM_IN'}
], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/is_related_transaction:1.0", "is_related_transaction", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_boolean), 'OP_NORMAL', [#parameterdescription{name="tc", type={tk_objref,
                                          "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                          "Coordinator"}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                  "Coordinator"}), mode='PARAM_IN'}
], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/is_ancestor_transaction:1.0", "is_ancestor_transaction", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_boolean), 'OP_NORMAL', [#parameterdescription{name="tc", type={tk_objref,
                                          "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                          "Coordinator"}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                  "Coordinator"}), mode='PARAM_IN'}
], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/is_descendant_transaction:1.0", "is_descendant_transaction", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_boolean), 'OP_NORMAL', [#parameterdescription{name="tc", type={tk_objref,
                                          "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                          "Coordinator"}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                  "Coordinator"}), mode='PARAM_IN'}
], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/is_top_level_transaction:1.0", "is_top_level_transaction", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_boolean), 'OP_NORMAL', [], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/hash_transaction:1.0", "hash_transaction", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_ulong), 'OP_NORMAL', [], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/hash_top_level_tran:1.0", "hash_top_level_tran", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_ulong), 'OP_NORMAL', [], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/register_resource:1.0", "register_resource", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/RecoveryCoordinator:1.0",
                                                  "RecoveryCoordinator"}), 'OP_NORMAL', [#parameterdescription{name="r", type={tk_objref,
                                         "IDL:omg.org/CosTransactions/Resource:1.0",
                                         "Resource"}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Resource:1.0",
                                                  "Resource"}), mode='PARAM_IN'}
], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/Inactive:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/register_subtran_aware:1.0", "register_subtran_aware", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [#parameterdescription{name="r", type={tk_objref,
                                         "IDL:omg.org/CosTransactions/SubtransactionAwareResource:1.0",
                                         "SubtransactionAwareResource"}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/SubtransactionAwareResource:1.0",
                                                  "SubtransactionAwareResource"}), mode='PARAM_IN'}
], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/NotSubtransaction:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/Inactive:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/rollback_only:1.0", "rollback_only", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/Inactive:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/get_transaction_name:1.0", "get_transaction_name", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_string,0}), 'OP_NORMAL', [], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/create_subtransaction:1.0", "create_subtransaction", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Control:1.0",
                                                  "Control"}), 'OP_NORMAL', [], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/Inactive:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/SubtransactionsUnavailable:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_5, "IDL:omg.org/CosTransactions/Coordinator/get_txcontext:1.0", "get_txcontext", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_struct,
                                                  "IDL:omg.org/CosTransactions/PropagationContext:1.0",
                                                  "PropagationContext",
                                                  [{"timeout",tk_ulong},
                                                   {"current",
                                                    {tk_struct,
                                                        "IDL:omg.org/CosTransactions/TransIdentity:1.0",
                                                        "TransIdentity",
                                                        [{"coord",
                                                          {tk_objref,
                                                              "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                              "Coordinator"}},
                                                         {"term",
                                                          {tk_objref,
                                                              "IDL:omg.org/CosTransactions/Terminator:1.0",
                                                              "Terminator"}},
                                                         {"otid",
                                                          {tk_struct,
                                                              "IDL:omg.org/CosTransactions/otid_t:1.0",
                                                              "otid_t",
                                                              [{"formatID",
                                                                tk_long},
                                                               {"bqual_length",
                                                                tk_long},
                                                               {"tid",
                                                                {tk_sequence,
                                                                    tk_octet,
                                                                    0}}]}}]}},
                                                   {"parents",
                                                    {tk_sequence,
                                                        {tk_struct,
                                                            "IDL:omg.org/CosTransactions/TransIdentity:1.0",
                                                            "TransIdentity",
                                                            [{"coord",
                                                              {tk_objref,
                                                                  "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                                  "Coordinator"}},
                                                             {"term",
                                                              {tk_objref,
                                                                  "IDL:omg.org/CosTransactions/Terminator:1.0",
                                                                  "Terminator"}},
                                                             {"otid",
                                                              {tk_struct,
                                                                  "IDL:omg.org/CosTransactions/otid_t:1.0",
                                                                  "otid_t",
                                                                  [{"formatID",
                                                                    tk_long},
                                                                   {"bqual_length",
                                                                    tk_long},
                                                                   {"tid",
                                                                    {tk_sequence,
                                                                        tk_octet,
                                                                        0}}]}}]},
                                                        0}},
                                                   {"implementation_specific_data",
                                                    tk_any}]}), 'OP_NORMAL', [], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/Unavailable:1.0")], []),

    OE_6 = orber_ifr:'ModuleDef_create_interface'(OE_1, "IDL:omg.org/CosTransactions/RecoveryCoordinator:1.0", "RecoveryCoordinator", "1.0", []),

    orber_ifr:'InterfaceDef_create_operation'(OE_6, "IDL:omg.org/CosTransactions/RecoveryCoordinator/replay_completion:1.0", "replay_completion", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_enum,
                                                  "IDL:omg.org/CosTransactions/Status:1.0",
                                                  "Status",
                                                  ["StatusActive",
                                                   "StatusMarkedRollback",
                                                   "StatusPrepared",
                                                   "StatusCommitted",
                                                   "StatusRolledBack",
                                                   "StatusUnknown",
                                                   "StatusNoTransaction",
                                                   "StatusPreparing",
                                                   "StatusCommitting",
                                                   "StatusRollingBack"]}), 'OP_NORMAL', [#parameterdescription{name="r", type={tk_objref,
                                         "IDL:omg.org/CosTransactions/Resource:1.0",
                                         "Resource"}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Resource:1.0",
                                                  "Resource"}), mode='PARAM_IN'}
], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/NotPrepared:1.0")], []),

    OE_7 = orber_ifr:'ModuleDef_create_interface'(OE_1, "IDL:omg.org/CosTransactions/Resource:1.0", "Resource", "1.0", []),

    orber_ifr:'InterfaceDef_create_operation'(OE_7, "IDL:omg.org/CosTransactions/Resource/prepare:1.0", "prepare", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_enum,
                                                  "IDL:omg.org/CosTransactions/Vote:1.0",
                                                  "Vote",
                                                  ["VoteCommit",
                                                   "VoteRollback",
                                                   "VoteReadOnly"]}), 'OP_NORMAL', [], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicHazard:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicMixed:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_7, "IDL:omg.org/CosTransactions/Resource/rollback:1.0", "rollback", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicHazard:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicMixed:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicCommit:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_7, "IDL:omg.org/CosTransactions/Resource/commit:1.0", "commit", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicHazard:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicMixed:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicRollback:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/NotPrepared:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_7, "IDL:omg.org/CosTransactions/Resource/commit_one_phase:1.0", "commit_one_phase", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicMixed:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicRollback:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/HeuristicHazard:1.0")], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_7, "IDL:omg.org/CosTransactions/Resource/forget:1.0", "forget", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [], []),

    OE_8 = orber_ifr:'ModuleDef_create_interface'(OE_1, "IDL:omg.org/CosTransactions/SubtransactionAwareResource:1.0", "SubtransactionAwareResource", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/Resource:1.0")]),

    orber_ifr:'InterfaceDef_create_operation'(OE_8, "IDL:omg.org/CosTransactions/SubtransactionAwareResource/commit_subtransaction:1.0", "commit_subtransaction", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [#parameterdescription{name="parent", type={tk_objref,
                                              "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                              "Coordinator"}, type_def=orber_ifr:'Repository_create_idltype'(OE_IFR, {tk_objref,
                                                  "IDL:omg.org/CosTransactions/Coordinator:1.0",
                                                  "Coordinator"}), mode='PARAM_IN'}
], [], []),

    orber_ifr:'InterfaceDef_create_operation'(OE_8, "IDL:omg.org/CosTransactions/SubtransactionAwareResource/rollback_subtransaction:1.0", "rollback_subtransaction", "1.0", orber_ifr:'Repository_create_idltype'(OE_IFR, tk_void), 'OP_NORMAL', [], [], []),

    OE_9 = oe_get_top_module(OE_IFR, "IDL:omg.org/ETraP:1.0", "ETraP", "1.0"),

    OE_10 = orber_ifr:'ModuleDef_create_interface'(OE_9, "IDL:omg.org/ETraP/Server:1.0", "Server", "1.0", [orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/Control:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/RecoveryCoordinator:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/Resource:1.0"), orber_ifr:lookup_id(OE_IFR,"IDL:omg.org/CosTransactions/Coordinator:1.0")]),

    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/CosTransactions/Status:1.0") of
    []  ->
      true;
    _ ->
      exit({allready_registered,"IDL:omg.org/CosTransactions/Status:1.0"})
 end.


%% No included idl-files detected.
include_reg_test(OE_IFR) -> 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/ETraP/Server:1.0"),
    oe_destroy_if_empty(OE_IFR, "IDL:omg.org/ETraP:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/SubtransactionAwareResource:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/Resource:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/RecoveryCoordinator:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/Coordinator:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/Terminator:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/Control:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/TransactionFactory:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/SynchronizationUnavailable:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/Unavailable:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/InvalidControl:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/NoTransaction:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/NotPrepared:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/Inactive:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/NotSubtransaction:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/SubtransactionsUnavailable:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/WrongTransaction:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/HeuristicHazard:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/HeuristicMixed:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/HeuristicCommit:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/HeuristicRollback:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/PropagationContext:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/TransIdentity:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/otid_t:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/Vote:1.0"),
    oe_destroy(OE_IFR, "IDL:omg.org/CosTransactions/Status:1.0"),
    oe_destroy_if_empty(OE_IFR, "IDL:omg.org/CosTransactions: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() ->

    [].

