Esempio n. 1
0
def generate_translation_utils_c(fields):
    skeleton = read_template(TEMPLATES_DIR + "/of12_translation_utils.c.template")
    
    header = fields[0]['header']
    
    code0 = EXPERIMENTAL_INCLUDES_SKELETON % (header, header)
    
    code1 = ""
    for field in fields_iterator(fields):
        code1 += MATCH_TRANSLATION_SKELETON % field
    
    code2    = ""
    for field in fields_iterator(fields):
        code2 += MATCH_SET_SKELETON % field 
    
    code3 = ""
    for field in fields:        
        if field.get('action') in ('push', 'pop'):
            code3 += ACTION_SET_SKELETON % field
            
    code4 = ""
    for field in fields_iterator(fields):
        code4 += REVERSE_MATCH_SKELETON % field         

    code5 = ""
    for field in fields:
        if field.get('action') in ('push', 'pop'):
            code5 += REVERSE_ACTION_SKELETON % field   
    
    code6 = ""
    for field in fields_iterator(fields):
        code6+= MAP_REVERSE_PACKET_MATCH_SKELETON % field               

    return skeleton % (code0, code1, code2, code3, code4, code5, code6)
Esempio n. 2
0
def generate_common_protocol_frame_h(fields):
    skeleton = read_template(TEMPLATES_DIR + "/frame.h.template") 
    
    skeleton_attrs = copy.copy(fields[0])
    
    skeleton_attrs['fields'] = ""
    for field in fields:
        skeleton_attrs['fields'] += "\t\tuint%(length)s_t %(field)s;\n" % field
        
    skeleton_attrs['fields_getters'] = ""
    for field in fields_iterator(fields):
        skeleton_attrs['fields_getters'] += "\tuint%(length)s_t get_%(field)s();\n" % field
    
    skeleton_attrs['fields_setters'] = ""
    for field in fields_iterator(fields):
        skeleton_attrs['fields_setters'] += "\tvoid set_%(field)s(uint%(length)s_t %(field)s);\n" % field
        
    return skeleton % skeleton_attrs
Esempio n. 3
0
def generate_common_protocol_frame_c(fields):
    skeleton = read_template(TEMPLATES_DIR + "/frame.c.template") 
    
    skeleton_attrs = copy.copy(fields[0])
    
    skeleton_attrs['field_printed_list'] = ""
    for field in fields_iterator(fields):
        skeleton_attrs['field_printed_list'] += "%(field)s[%%d] " % field
        
    skeleton_attrs['fields_to_be_printed'] = ""
    for field in fields_iterator(fields):
        skeleton_attrs['fields_to_be_printed'] += "\t\t\tbe%(length)stoh(%(header)s_hdr->%(field)s),\n" % field

    skeleton_attrs['fields_getters'] = ""
    for field in fields_iterator(fields):
        skeleton_attrs['fields_getters'] += FIELD_GETTER % field
        
    skeleton_attrs['fields_setters'] = ""
    for field in fields_iterator(fields):
        skeleton_attrs['fields_setters'] +=  FIELD_SETTER % field
        
    return skeleton % skeleton_attrs