예제 #1
0
 public CsUpdate this[int i]
 {
     get
     {
         ulong bit = ((ulong)1) << i;
         int   val = 0;
         if ((vals.Item2 & bit) != 0)
         {
             val = val | 1;
         }
         if ((vals.Item3 & bit) != 0)
         {
             val = val | 2;
         }
         if ((vals.Item4 & bit) != 0)
         {
             val = val | 4;
         }
         CsUpdate res = (CsUpdate)val;
         return(res);
     }
 }
예제 #2
0
        public CsUpdateSeq Or(int i, CsUpdate upd)
        {
            ulong bit  = ((ulong)1) << i;
            ulong set0 = vals.Item2;
            ulong set1 = vals.Item3;
            ulong incr = vals.Item4;

            if (upd.HasFlag(CsUpdate.SET0))
            {
                set0 = set0 | bit;
            }
            if (upd.HasFlag(CsUpdate.SET1))
            {
                set1 = set1 | bit;
            }
            if (upd.HasFlag(CsUpdate.INCR))
            {
                incr = incr | bit;
            }
            CsUpdateSeq res = new CsUpdateSeq(vals.Item1, set0, set1, incr);

            return(res);
        }