costransactions.idl
来自「OTP是开放电信平台的简称」· IDL 代码 · 共 194 行
IDL
194 行
#ifndef _COSTRANSACTIONS_IDL#define _COSTRANSACTIONS_IDL#pragma prefix "omg.org"module CosTransactions { // DATATYPES enum Status { StatusActive, StatusMarkedRollback, StatusPrepared, StatusCommitted, StatusRolledBack, StatusUnknown, StatusNoTransaction, StatusPreparing, StatusCommitting, StatusRollingBack }; enum Vote { VoteCommit, VoteRollback, VoteReadOnly }; // Forward references for interfaces defined later in module interface Control; interface Terminator; interface Coordinator; interface Resource; interface RecoveryCoordinator; interface SubtransactionAwareResource; interface TransactionFactory; interface TransactionalObject; // interface Synchronization; // Structure definitions struct otid_t { long formatID; /*format identifier. 0 is OSI TP */ long bqual_length; sequence <octet> tid; }; struct TransIdentity { Coordinator coord; Terminator term; otid_t otid; }; struct PropagationContext { unsigned long timeout; TransIdentity current; sequence <TransIdentity> parents; any implementation_specific_data; }; // interface Current; // Standard exceptions // Defined in orber/include/corba.hrl // exception TransactionRequired {}; // exception TransactionRolledBack {}; // exception InvalidTransaction {}; // Heuristic exceptions exception HeuristicRollback {}; exception HeuristicCommit {}; exception HeuristicMixed {}; exception HeuristicHazard {}; // Exception from Orb operations exception WrongTransaction {}; // Other transaction-specific exceptions exception SubtransactionsUnavailable {}; exception NotSubtransaction {}; exception Inactive {}; exception NotPrepared {}; exception NoTransaction {}; exception InvalidControl {}; exception Unavailable {}; exception SynchronizationUnavailable {}; interface TransactionFactory { Control create(in unsigned long time_out); Control recreate(in PropagationContext ctx); }; interface Control { Terminator get_terminator() raises(Unavailable); Coordinator get_coordinator() raises(Unavailable); }; interface Terminator { void commit(in boolean report_heuristics) raises( HeuristicMixed, HeuristicHazard ); void rollback(); }; interface Coordinator { Status get_status(); Status get_parent_status(); Status get_top_level_status(); boolean is_same_transaction(in Coordinator tc); boolean is_related_transaction(in Coordinator tc); boolean is_ancestor_transaction(in Coordinator tc); boolean is_descendant_transaction(in Coordinator tc); boolean is_top_level_transaction(); unsigned long hash_transaction(); unsigned long hash_top_level_tran(); RecoveryCoordinator register_resource(in Resource r) raises(Inactive); // void register_synchronization (in Synchronization sync)// raises(Inactive, SynchronizationUnavailable); void register_subtran_aware(in SubtransactionAwareResource r) raises(Inactive, NotSubtransaction); void rollback_only() raises(Inactive); string get_transaction_name(); Control create_subtransaction() raises(SubtransactionsUnavailable, Inactive); PropagationContext get_txcontext () raises(Unavailable); }; interface RecoveryCoordinator { Status replay_completion(in Resource r) raises(NotPrepared); }; interface Resource { Vote prepare() raises(HeuristicMixed, HeuristicHazard); void rollback() raises( HeuristicCommit, HeuristicMixed, HeuristicHazard ); void commit() raises( NotPrepared, HeuristicRollback, HeuristicMixed, HeuristicHazard ); void commit_one_phase() raises( HeuristicHazard, HeuristicRollback, HeuristicMixed); void forget(); }; // interface TransactionalObject { // }; // interface Synchronization : TransactionalObject {// void before_completion();// void after_completion(in CosTransactions::Status status);// }; interface SubtransactionAwareResource : Resource { void commit_subtransaction(in Coordinator parent); void rollback_subtransaction(); }; }; // End of CosTransactions Modulemodule ETraP { // interface Server interface Server : CosTransactions::Coordinator, CosTransactions::Resource, CosTransactions::RecoveryCoordinator, CosTransactions::Control { };// interface Server :// CosTransactions::Coordinator, CosTransactions::Resource,// CosTransactions::RecoveryCoordinator, CosTransactions::Control,// CosTransactions::Synchronization {// }; }; // End of ETraP Module#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?