1/*- 2 * See the file LICENSE for redistribution information. 3 * 4 * Copyright (c) 2009 Oracle. All rights reserved. 5 * 6 */ 7using System; 8using System.Collections.Generic; 9using System.Text; 10using BerkeleyDB.Internal; 11 12namespace BerkeleyDB { 13 internal class LockOperation { 14 internal static LockOperation DUMP = new LockOperation(db_lockop_t.DB_LOCK_DUMP); 15 internal static LockOperation GET = new LockOperation(db_lockop_t.DB_LOCK_GET); 16 internal static LockOperation GET_TIMEOUT = new LockOperation(db_lockop_t.DB_LOCK_GET_TIMEOUT); 17 internal static LockOperation INHERIT = new LockOperation(db_lockop_t.DB_LOCK_INHERIT); 18 internal static LockOperation PUT = new LockOperation(db_lockop_t.DB_LOCK_PUT); 19 internal static LockOperation PUT_ALL = new LockOperation(db_lockop_t.DB_LOCK_PUT_ALL); 20 internal static LockOperation PUT_OBJ = new LockOperation(db_lockop_t.DB_LOCK_PUT_OBJ); 21 internal static LockOperation PUT_READ = new LockOperation(db_lockop_t.DB_LOCK_PUT_READ); 22 internal static LockOperation TIMEOUT = new LockOperation(db_lockop_t.DB_LOCK_TIMEOUT); 23 internal static LockOperation TRADE = new LockOperation(db_lockop_t.DB_LOCK_TRADE); 24 internal static LockOperation UPGRADE_WRITE = new LockOperation(db_lockop_t.DB_LOCK_UPGRADE_WRITE); 25 26 private db_lockop_t op; 27 private LockOperation(db_lockop_t o) { 28 op = o; 29 } 30 static internal db_lockop_t GetOperation(LockOperation lo) { 31 return lo.op; 32 } 33 34 static internal LockOperation GetLockOperation(db_lockop_t o) { 35 switch (o) { 36 case db_lockop_t.DB_LOCK_DUMP: 37 return DUMP; 38 case db_lockop_t.DB_LOCK_GET: 39 return GET; 40 case db_lockop_t.DB_LOCK_GET_TIMEOUT: 41 return GET_TIMEOUT; 42 case db_lockop_t.DB_LOCK_INHERIT: 43 return INHERIT; 44 case db_lockop_t.DB_LOCK_PUT: 45 return PUT; 46 case db_lockop_t.DB_LOCK_PUT_ALL: 47 return PUT_ALL; 48 case db_lockop_t.DB_LOCK_PUT_OBJ: 49 return PUT_OBJ; 50 case db_lockop_t.DB_LOCK_PUT_READ: 51 return PUT_READ; 52 case db_lockop_t.DB_LOCK_TIMEOUT: 53 return TIMEOUT; 54 case db_lockop_t.DB_LOCK_TRADE: 55 return TRADE; 56 case db_lockop_t.DB_LOCK_UPGRADE_WRITE: 57 return UPGRADE_WRITE; 58 } 59 throw new ArgumentException("Unknown db_lockop_t value."); 60 } 61 } 62} 63