summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl
diff options
context:
space:
mode:
authortworm <tworm@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-03-23 20:53:39 +0000
committertworm <tworm@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-03-23 20:53:39 +0000
commit8885bc5cd406fc86fbbba50d3b1f6b0f53346cbd (patch)
tree9c9be2cf2b6984aa2b791cd498d1cb645e11f886 /TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl
parente42795b77e4f4659e9ac3ea398ec8ae27ae45cd4 (diff)
downloadATCD-8885bc5cd406fc86fbbba50d3b1f6b0f53346cbd.tar.gz
IDL file for the concurrency service
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl')
-rw-r--r--TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl100
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
+ };
+};
+
+