Lines Matching refs:self

57     def __init__(self, why): # pylint: disable=super-init-not-called  argument
58 self.why = why
60 def __str__(self): argument
61 return str(self.why)
66 def __init__(self, name): argument
67 self._name = name
68 self._entries = []
69 self._tags = {}
72 def AddEntry(self, entry): argument
73 if entry.Tag() in self._tags:
77 % (entry.Name(), entry.Tag(), self._tags[entry.Tag()], LINE_COUNT)
79 self._entries.append(entry)
80 self._tags[entry.Tag()] = entry.Name()
83 def Name(self): argument
84 return self._name
86 def EntryTagName(self, entry): argument
89 name = "%s_%s" % (self._name, entry.Name())
102 def __init__(self, name): argument
103 Struct.__init__(self, name)
105 def PrintTags(self, filep): argument
107 filep.write("/* Tag definition for %s */\n" % self._name)
108 filep.write("enum %s_ {\n" % self._name.lower())
109 for entry in self._entries:
110 filep.write(" %s=%d,\n" % (self.EntryTagName(entry), entry.Tag()))
111 filep.write(" %s_MAX_TAGS\n" % (self._name.upper()))
114 def PrintForwardDeclaration(self, filep): argument
115 filep.write("struct %s;\n" % self._name)
117 def PrintDeclaration(self, filep): argument
118 filep.write("/* Structure declaration for %s */\n" % self._name)
119 filep.write("struct %s_access_ {\n" % self._name)
120 for entry in self._entries:
125 self.PrintIndented(filep, " ", dcl)
128 filep.write("struct %s {\n" % self._name)
129 filep.write(" struct %s_access_ *base;\n\n" % self._name)
130 for entry in self._entries:
132 self.PrintIndented(filep, " ", dcl)
134 for entry in self._entries:
150 % {"name": self._name}
154 for entry in self._entries:
155 self.PrintIndented(
158 self.PrintIndented(filep, "", entry.GetDeclaration(entry.GetFuncName()))
160 self.PrintIndented(filep, "", entry.AddDeclaration(entry.AddFuncName()))
162 filep.write("/* --- %s done --- */\n\n" % self._name)
164 def PrintCode(self, filep): argument
170 % (self._name)
177 % {"name": self._name}
179 for entry in self._entries:
180 self.PrintIndented(filep, " ", entry.CodeBase())
202 % {"name": self._name}
205 for entry in self._entries:
206 self.PrintIndented(filep, " ", entry.CodeInitialize("tmp"))
217 for entry in self._entries:
219 self.PrintIndented(filep, "", entry.CodeAdd())
223 for entry in self._entries:
224 self.PrintIndented(filep, "", entry.CodeAssign())
228 for entry in self._entries:
229 self.PrintIndented(filep, "", entry.CodeGet())
238 % {"name": self._name}
240 for entry in self._entries:
241 self.PrintIndented(filep, " ", entry.CodeClear("tmp"))
251 % {"name": self._name}
254 for entry in self._entries:
255 self.PrintIndented(filep, " ", entry.CodeFree("tmp"))
269 % {"name": self._name}
271 for entry in self._entries:
277 self.PrintIndented(
282 self.EntryTagName(entry),
304 % {"name": self._name}
306 for entry in self._entries:
307 filep.write(" case %s:\n" % (self.EntryTagName(entry)))
316 self.PrintIndented(
321 self.EntryTagName(entry),
348 % {"name": self._name}
358 % {"name": self._name}
360 for entry in self._entries:
367 self.PrintIndented(filep, " ", code)
369 self.PrintIndented(
403 % {"name": self._name}
421 % {"name": self._name}
426 def __init__(self, ent_type, name, tag): argument
427 self._type = ent_type
428 self._name = name
429 self._tag = int(tag)
430 self._ctype = ent_type
431 self._optional = False
432 self._can_be_array = False
433 self._array = False
434 self._line_count = -1
435 self._struct = None
436 self._refname = None
438 self._optpointer = True
439 self._optaddarg = True
445 def SetStruct(self, struct): argument
446 self._struct = struct
448 def LineCount(self): argument
449 assert self._line_count != -1
450 return self._line_count
452 def SetLineCount(self, number): argument
453 self._line_count = number
455 def Array(self): argument
456 return self._array
458 def Optional(self): argument
459 return self._optional
461 def Tag(self): argument
462 return self._tag
464 def Name(self): argument
465 return self._name
467 def Type(self): argument
468 return self._type
470 def MakeArray(self): argument
471 self._array = True
473 def MakeOptional(self): argument
474 self._optional = True
476 def Verify(self): argument
477 if self.Array() and not self._can_be_array:
480 "around line %d" % (self._name, self.LineCount())
482 if not self._struct:
485 "around line %d" % (self._name, self.LineCount())
487 if self._optional and self._array:
490 "around line %d" % (self._name, self.LineCount())
493 def GetTranslation(self, extradict=None): argument
497 "parent_name": self._struct.Name(),
498 "name": self._name,
499 "ctype": self._ctype,
500 "refname": self._refname,
501 "optpointer": self._optpointer and "*" or "",
502 "optreference": self._optpointer and "&" or "",
503 "optaddarg": self._optaddarg and ", const %s value" % self._ctype or "",
510 def GetVarName(self, var): argument
511 return "%(var)s->%(name)s_data" % self.GetTranslation({"var": var})
513 def GetVarLen(self, _var): argument
514 return "sizeof(%s)" % self._ctype
516 def GetFuncName(self): argument
517 return "%s_%s_get" % (self._struct.Name(), self._name)
519 def GetDeclaration(self, funcname): argument
521 "int %s(struct %s *, %s *);" % (funcname, self._struct.Name(), self._ctype)
525 def CodeGet(self): argument
534 code = code % self.GetTranslation()
537 def AssignFuncName(self): argument
538 return "%s_%s_assign" % (self._struct.Name(), self._name)
540 def AddFuncName(self): argument
541 return "%s_%s_add" % (self._struct.Name(), self._name)
543 def AssignDeclaration(self, funcname): argument
546 % (funcname, self._struct.Name(), self._ctype)
550 def CodeAssign(self): argument
562 code = code % self.GetTranslation()
565 def CodeClear(self, structname): argument
566 code = ["%s->%s_set = 0;" % (structname, self.Name())]
578 def CodeBase(self): argument
580 if self.Array():
584 code = code % self.GetTranslation()
589 def __init__(self, ent_type, name, tag, length): argument
591 super(EntryBytes, self).__init__(ent_type, name, tag)
593 self._length = length
594 self._ctype = "ev_uint8_t"
600 def GetVarLen(self, _var): argument
601 return "(%s)" % self._length
608 def GetDeclaration(self, funcname): argument
610 "int %s(struct %s *, %s **);" % (funcname, self._struct.Name(), self._ctype)
614 def AssignDeclaration(self, funcname): argument
617 % (funcname, self._struct.Name(), self._ctype)
621 def Declaration(self): argument
622 dcl = ["ev_uint8_t %s_data[%s];" % (self._name, self._length)]
626 def CodeGet(self): argument
627 name = self._name
631 % (self._struct.Name(), name, self._struct.Name(), self._ctype),
641 def CodeAssign(self): argument
642 name = self._name
646 % (self._struct.Name(), name, self._struct.Name(), self._ctype),
649 " memcpy(msg->%s_data, value, %s);" % (name, self._length),
655 def CodeUnmarshal(self, buf, tag_name, var_name, var_len): argument
665 self.GetTranslation(
675 def CodeClear(self, structname): argument
677 "%s->%s_set = 0;" % (structname, self.Name()),
679 % (structname, self._name, structname, self._name),
684 def CodeInitialize(self, name): argument
687 % (name, self._name, name, self._name)
691 def Verify(self): argument
692 if not self._length:
695 "around line %d" % (self._name, self.LineCount())
698 super(EntryBytes, self).Verify()
702 def __init__(self, ent_type, name, tag, bits=32): argument
704 super(EntryInt, self).__init__(ent_type, name, tag)
706 self._can_be_array = True
708 self._ctype = "ev_uint32_t"
709 self._marshal_type = "int"
711 self._ctype = "ev_uint64_t"
712 self._marshal_type = "int64"
731 def CodeUnmarshal(self, buf, tag_name, var_name, _var_len): argument
738 code = "\n".join(code) % self.GetTranslation(
739 {"ma": self._marshal_type, "buf": buf, "tag": tag_name, "var": var_name}
743 def CodeMarshal(self, buf, tag_name, var_name, _var_len): argument
746 % (self._marshal_type, buf, tag_name, var_name)
750 def Declaration(self): argument
751 dcl = ["%s %s_data;" % (self._ctype, self._name)]
755 def CodeInitialize(self, name): argument
756 code = ["%s->%s_data = 0;" % (name, self._name)]
761 def __init__(self, ent_type, name, tag): argument
763 super(EntryString, self).__init__(ent_type, name, tag)
765 self._can_be_array = True
766 self._ctype = "char *"
807 def GetVarLen(self, var): argument
808 return "strlen(%s)" % self.GetVarName(var)
814 def CodeAssign(self): argument
826 self.GetTranslation()
831 def CodeUnmarshal(self, buf, tag_name, var_name, _var_len): argument
838 code = "\n".join(code) % self.GetTranslation(
848 def CodeClear(self, structname): argument
850 "if (%s->%s_set == 1) {" % (structname, self.Name()),
851 " free(%s->%s_data);" % (structname, self.Name()),
852 " %s->%s_data = NULL;" % (structname, self.Name()),
853 " %s->%s_set = 0;" % (structname, self.Name()),
859 def CodeInitialize(self, name): argument
860 code = ["%s->%s_data = NULL;" % (name, self._name)]
863 def CodeFree(self, name): argument
865 "if (%s->%s_data != NULL)" % (name, self._name),
866 " free (%s->%s_data);" % (name, self._name),
871 def Declaration(self): argument
872 dcl = ["char *%s_data;" % self._name]
878 def __init__(self, ent_type, name, tag, refname): argument
880 super(EntryStruct, self).__init__(ent_type, name, tag)
882 self._optpointer = False
883 self._can_be_array = True
884 self._refname = refname
885 self._ctype = "struct %s*" % refname
886 self._optaddarg = False
888 def GetInitializer(self): argument
891 def GetVarLen(self, _var): argument
894 def CodeArrayAdd(self, varname, _value): argument
901 return TranslateList(code, self.GetTranslation({"varname": varname}))
903 def CodeArrayFree(self, var): argument
904 code = ["%(refname)s_free(%(var)s);" % self.GetTranslation({"var": var})]
907 def CodeArrayAssign(self, var, srcvar): argument
932 return TranslateList(code, self.GetTranslation({"var": var, "srcvar": srcvar}))
934 def CodeGet(self): argument
935 name = self._name
939 % (self._struct.Name(), name, self._struct.Name(), self._ctype),
942 " msg->%s_data = %s_new();" % (name, self._refname),
953 def CodeAssign(self): argument
991 % self.GetTranslation()
995 def CodeComplete(self, structname, var_name): argument
1003 code, self.GetTranslation({"structname": structname, "var": var_name})
1006 def CodeUnmarshal(self, buf, tag_name, var_name, _var_len): argument
1017 code = "\n".join(code) % self.GetTranslation(
1022 def CodeMarshal(self, buf, tag_name, var_name, _var_len): argument
1024 "evtag_marshal_%s(%s, %s, %s);" % (self._refname, buf, tag_name, var_name)
1028 def CodeClear(self, structname): argument
1030 "if (%s->%s_set == 1) {" % (structname, self.Name()),
1031 " %s_free(%s->%s_data);" % (self._refname, structname, self.Name()),
1032 " %s->%s_data = NULL;" % (structname, self.Name()),
1033 " %s->%s_set = 0;" % (structname, self.Name()),
1039 def CodeInitialize(self, name): argument
1040 code = ["%s->%s_data = NULL;" % (name, self._name)]
1043 def CodeFree(self, name): argument
1045 "if (%s->%s_data != NULL)" % (name, self._name),
1046 " %s_free(%s->%s_data);" % (self._refname, name, self._name),
1051 def Declaration(self): argument
1052 dcl = ["%s %s_data;" % (self._ctype, self._name)]
1058 def __init__(self, ent_type, name, tag): argument
1060 super(EntryVarBytes, self).__init__(ent_type, name, tag)
1062 self._ctype = "ev_uint8_t *"
1068 def GetVarLen(self, var): argument
1069 return "%(var)s->%(name)s_length" % self.GetTranslation({"var": var})
1076 def GetDeclaration(self, funcname): argument
1079 % (funcname, self._struct.Name(), self._ctype)
1083 def AssignDeclaration(self, funcname): argument
1086 % (funcname, self._struct.Name(), self._ctype)
1090 def CodeAssign(self): argument
1091 name = self._name
1096 % (self._struct.Name(), name, self._struct.Name(), self._ctype),
1111 def CodeGet(self): argument
1112 name = self._name
1116 % (self._struct.Name(), name, self._struct.Name(), self._ctype),
1127 def CodeUnmarshal(self, buf, tag_name, var_name, var_len): argument
1142 code = "\n".join(code) % self.GetTranslation(
1152 def CodeClear(self, structname): argument
1154 "if (%s->%s_set == 1) {" % (structname, self.Name()),
1155 " free (%s->%s_data);" % (structname, self.Name()),
1156 " %s->%s_data = NULL;" % (structname, self.Name()),
1157 " %s->%s_length = 0;" % (structname, self.Name()),
1158 " %s->%s_set = 0;" % (structname, self.Name()),
1164 def CodeInitialize(self, name): argument
1166 "%s->%s_data = NULL;" % (name, self._name),
1167 "%s->%s_length = 0;" % (name, self._name),
1171 def CodeFree(self, name): argument
1173 "if (%s->%s_data != NULL)" % (name, self._name),
1174 " free(%s->%s_data);" % (name, self._name),
1179 def Declaration(self): argument
1181 "ev_uint8_t *%s_data;" % self._name,
1182 "ev_uint32_t %s_length;" % self._name,
1191 def __init__(self, entry): argument
1193 super(EntryArray, self).__init__(entry._type, entry._name, entry._tag)
1195 self._entry = entry
1196 self._refname = entry._refname
1197 self._ctype = self._entry._ctype
1198 self._optional = True
1199 self._optpointer = self._entry._optpointer
1200 self._optaddarg = self._entry._optaddarg
1204 return "%(var)s->%(name)s_data[%(index)s]" % self._entry.GetTranslation(
1205 {"var": var_name, "index": self._index}
1208 self._entry.GetVarName = GetVarName
1210 def GetInitializer(self): argument
1213 def GetVarName(self, var): argument
1216 def GetVarLen(self, _var_name): argument
1219 def GetDeclaration(self, funcname): argument
1223 % self.GetTranslation({"funcname": funcname})
1227 def AssignDeclaration(self, funcname): argument
1230 % (funcname, self._struct.Name(), self._ctype)
1234 def AddDeclaration(self, funcname): argument
1238 % self.GetTranslation({"funcname": funcname})
1242 def CodeGet(self): argument
1253 self.GetTranslation()
1258 def CodeAssign(self): argument
1269 code = TranslateList(code, self.GetTranslation())
1271 codearrayassign = self._entry.CodeArrayAssign(
1272 "msg->%(name)s_data[off]" % self.GetTranslation(), "value"
1276 code += TranslateList([" }", " return (0);", "}"], self.GetTranslation())
1280 def CodeAdd(self): argument
1281 codearrayadd = self._entry.CodeArrayAdd(
1282 "msg->%(name)s_data[msg->%(name)s_length - 1]" % self.GetTranslation(),
1311 code = TranslateList(code, self.GetTranslation())
1325 self.GetTranslation(),
1330 def CodeComplete(self, structname, var_name): argument
1331 self._index = "i"
1332 tmp = self._entry.CodeComplete(structname, self._entry.GetVarName(var_name))
1337 translate = self.GetTranslation({"structname": structname})
1352 def CodeUnmarshal(self, buf, tag_name, var_name, _var_len): argument
1353 translate = self.GetTranslation(
1358 "init": self._entry.GetInitializer(),
1372 self._index = "%(var)s->%(name)s_length" % translate
1373 code += self._entry.CodeUnmarshal(
1376 self._entry.GetVarName(var_name),
1377 self._entry.GetVarLen(var_name),
1384 def CodeMarshal(self, buf, tag_name, var_name, _var_len): argument
1387 self._index = "i"
1388 code += self._entry.CodeMarshal(
1391 self._entry.GetVarName(var_name),
1392 self._entry.GetVarLen(var_name),
1396 code = "\n".join(code) % self.GetTranslation({"var": var_name})
1400 def CodeClear(self, structname): argument
1401 translate = self.GetTranslation({"structname": structname})
1402 codearrayfree = self._entry.CodeArrayFree(
1404 % self.GetTranslation({"structname": structname})
1435 def CodeInitialize(self, name): argument
1437 "%s->%s_data = NULL;" % (name, self._name),
1438 "%s->%s_length = 0;" % (name, self._name),
1439 "%s->%s_num_allocated = 0;" % (name, self._name),
1443 def CodeFree(self, structname): argument
1444 code = self.CodeClear(structname)
1448 self.GetTranslation({"structname": structname}),
1453 def Declaration(self): argument
1455 "%s *%s_data;" % (self._ctype, self._name),
1456 "int %s_length;" % self._name,
1457 "int %s_num_allocated;" % self._name,
1701 def __init__(self): argument
1711 def HeaderPreamble(self, name): argument
1712 guard = self.GuardName(name)
1739 def HeaderPostamble(self, name): argument
1740 guard = self.GuardName(name)
1830 def __init__(self, argv=None): argument
1838 self.filename = None
1839 self.header_file = None
1840 self.impl_file = None
1841 self.factory = CCodeGenerator()
1855 self.impl_file = extra_args[0].replace("\\", "/")
1857 self.header_file = extra_args[0].replace("\\", "/")
1858 self.impl_file = extra_args[1].replace("\\", "/")
1862 self.rpc_file = args.rpc_file
1864 if not self.impl_file:
1865 self.impl_file = self.factory.CodeFilename(self.rpc_file.name)
1867 if not self.header_file:
1868 self.header_file = self.factory.HeaderFilename(self.impl_file)
1870 if not self.impl_file.endswith(".c"):
1872 if not self.header_file.endswith(".h"):
1875 def run(self): argument
1876 filename = self.rpc_file.name
1877 header_file = self.header_file
1878 impl_file = self.impl_file
1879 factory = self.factory
1883 with self.rpc_file:
1884 entities = Parse(factory, self.rpc_file)