Exemple #1
0
        public RowAction AddDeleteAction(Session session, Table table, Row row, int[] colMap)
        {
            RowAction action;

            lock (row)
            {
                action = RowAction.AddDeleteAction(session, table, row, colMap);
            }
            session.RowActionList.Add(action);
            session.sessionData.GetRowStore(table).Delete(session, row);
            row.rowAction = null;
            return(action);
        }
Exemple #2
0
        public RowAction AddDeleteAction(Session session, Table table, Row row, int[] colMap)
        {
            bool      flag;
            RowAction action;

            lock (row)
            {
                flag   = row.rowAction == null;
                action = RowAction.AddDeleteAction(session, table, row, colMap);
            }
            session.RowActionList.Add(action);
            if (flag && !row.IsMemory())
            {
                base.RowActionMap.Put(action.GetPos(), action);
            }
            return(action);
        }
        private RowAction AddDeleteActionToRow(Session session, Table table, Row row, int[] colMap)
        {
            RowAction action;

            lock (row)
            {
                if (row.IsMemory())
                {
                    action = RowAction.AddDeleteAction(session, table, row, colMap);
                }
                else
                {
                    base.RowActionMap.WriteLock();
                    try
                    {
                        action = base.RowActionMap.Get(row.GetPos());
                        if (action == null)
                        {
                            action = RowAction.AddDeleteAction(session, table, row, colMap);
                            if (action != null)
                            {
                                base.RowActionMap.Put(row.GetPos(), action);
                            }
                            return(action);
                        }
                        row.rowAction = action;
                        return(RowAction.AddDeleteAction(session, table, row, colMap));
                    }
                    finally
                    {
                        base.RowActionMap.WriteUnLock();
                    }
                }
            }
            return(action);
        }