Changeset 3130

Show
Ignore:
Timestamp:
07/10/08 16:51:05 (5 years ago)
Author:
getxsick
Message:

Flags class improvements.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branch/UMPA/umpa/protocols/base.py

    r3128 r3130  
    5656        Field.__init__(self, len(names), auto) 
    5757 
     58        self._ordered_fields = list(names) 
    5859        # we overwrite an attribute self._value 
    5960        # because we need a list instead of simple var here 
    60         self._value = {} 
    61         self._ordered_fields = list(names) 
     61        false_list = [ False for i in xrange(self._bits) ] 
     62        self._value = dict(zip(self._ordered_fields, false_list)) 
    6263 
    6364    def _is_valid(self, name): 
    6465        return self._value.has_key(name) 
    6566 
    66     def set(self, kw): 
    67         for flag_name in kw: 
     67    def _set_bit(self, names, value): 
     68        for flag_name in names: 
    6869            if self._is_valid(flag_name): 
    69                 self._value[flag_name] = kw[flag_name] 
     70                self._value[flag_name] = value 
    7071            else: 
    7172                raise UMPAAttributeException, attr + ' not allowed' 
     73 
     74    def set(self, *names): 
     75        self._set_bit(names, True) 
     76 
     77    def unset(self, *names): 
     78        self._set_bit(names, False) 
    7279 
    7380    def get(self, *names): 
     
    7986            result = self._value 
    8087        return result 
     88 
     89    def fillout(self): 
     90        print "Not implemented yet" 
     91        return False 
    8192 
    8293class Protocol(object):