diff options
author | tworm <tworm@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-03-23 20:53:39 +0000 |
---|---|---|
committer | tworm <tworm@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-03-23 20:53:39 +0000 |
commit | 8885bc5cd406fc86fbbba50d3b1f6b0f53346cbd (patch) | |
tree | 9c9be2cf2b6984aa2b791cd498d1cb645e11f886 /TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl | |
parent | e42795b77e4f4659e9ac3ea398ec8ae27ae45cd4 (diff) | |
download | ATCD-8885bc5cd406fc86fbbba50d3b1f6b0f53346cbd.tar.gz |
IDL file for the concurrency service
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl b/TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl new file mode 100644 index 00000000000..66b25e4486b --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl @@ -0,0 +1,100 @@ +/* -*- C++ -*- */ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// cos +// +// = FILENAME +// CosTransaction.idl +// +// = DESCRIPTION +// The concurrency service description is downloaded from +// ftp://www.omg.org/pub/docs/formal/97-11-02.idl +// +// = AUTHOR +// OMG and Torben Worm <tworm@cs.wustl.edu> +// +// ============================================================================ + +//CONCURRENCY CONTROL SERVICE +//described in CORBAservices: Common Object Services Specification, chapter 7 + + +//CosConcurrencyControl Module, page 7-8 +//Includes the following interfaces: +// LockCoordinator, LockSet, TransactionalLockSet, LockSetFactory + +// The part depending on the transaction service may be included by defining +// TAO_HAS_TRANSACTION_CONTROL_SERVICE + +#if defined(TAO_HAS_TRANSACTION_CONTROL_SERVICE) +#include <CosTransactions.idl> +#endif + +module CosConcurrencyControl { + + enum lock_mode { + read, + write, + upgrade, + intention_read, + intention_write + }; + + exception LockNotHeld{}; + + interface LockCoordinator + { + void drop_locks(); + }; + + interface LockSet + { + void lock(in lock_mode mode); + boolean try_lock(in lock_mode mode); + + void unlock(in lock_mode mode) + raises(LockNotHeld); + void change_mode(in lock_mode held_mode, + in lock_mode new_mode) + raises(LockNotHeld); + #if defined(TAO_HAS_TRANSACTION_CONTROL_SERVICE) + LockCoordinator get_coordinator( + in CosTransactions::Coordinator which); + #endif // TAO_HAS_TRANSACTION_CONTROL_SERVICE + }; + + #if defined(TAO_HAS_TRANSACTION_CONTROL_SERVICE) + interface TransactionalLockSet + { + void lock(in CosTransactions::Coordinator current, + in lock_mode mode); + boolean try_lock(in CosTransactions::Coordinator current, + in lock_mode mode); + void unlock(in CosTransactions::Coordinator current, + in lock_mode mode) + raises(LockNotHeld); + void change_mode(in CosTransactions::Coordinator current, + in lock_mode held_mode, + in lock_mode new_mode) + raises(LockNotHeld); + LockCoordinator get_coordinator( + in CosTransactions::Coordinator which); + }; + #endif // TAO_HAS_TRANSACTION_CONTROL_SERVICE + + interface LockSetFactory + { + LockSet create(); + LockSet create_related(in LockSet which); + #if defined(TAO_HAS_TRANSACTION_CONTROL_SERVICE) + TransactionalLockSet create_transactional(); + TransactionalLockSet create_transactional_related(in + TransactionalLockSet which); + #endif // TAO_HAS_TRANSACTION_CONTROL_SERVICE + }; +}; + + |