mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-02-01 11:28:28 +00:00
ipc: Fix class methods, mistaken use of class variables in IPC generator
This commit is contained in:
parent
7b2c54c223
commit
8bd1ac776e
|
@ -7,45 +7,39 @@ import argparse
|
||||||
|
|
||||||
|
|
||||||
class Arg:
|
class Arg:
|
||||||
isAggregate = False
|
@classmethod
|
||||||
name = ''
|
def parseArray(cls, a):
|
||||||
type = ''
|
|
||||||
|
|
||||||
def parseArray(array):
|
|
||||||
ret = []
|
ret = []
|
||||||
for elm in array:
|
for elm in a:
|
||||||
ret.append(Arg(elm))
|
ret.append(cls(elm))
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def getFuncArgumentIn(self):
|
def getFuncArgumentIn(self):
|
||||||
if self.isAggregate:
|
if self.isAggregate:
|
||||||
return self.type + " *" + self.name
|
return self.typename + " *" + self.name
|
||||||
else:
|
else:
|
||||||
return self.type + " " + self.name
|
return self.typename + " " + self.name
|
||||||
|
|
||||||
def getFuncArgumentOut(self):
|
def getFuncArgumentOut(self):
|
||||||
return self.type + " *out_" + self.name
|
return self.typename + " *out_" + self.name
|
||||||
|
|
||||||
def getStructField(self):
|
def getStructField(self):
|
||||||
return self.type + " " + self.name
|
return self.typename + " " + self.name
|
||||||
|
|
||||||
def dump(self):
|
def dump(self):
|
||||||
print("\t\t" + self.type + ": " + self.name)
|
print("\t\t" + self.typename + ": " + self.name)
|
||||||
|
|
||||||
def __init__(self, data):
|
def __init__(self, data):
|
||||||
self.name = data['name']
|
self.name = data['name']
|
||||||
self.type = data['type']
|
self.typename = data['type']
|
||||||
if self.type.find("struct ") == 0:
|
self.isAggregate = False
|
||||||
|
if self.typename.find("struct ") == 0:
|
||||||
self.isAggregate = True
|
self.isAggregate = True
|
||||||
if self.type.find("union ") == 0:
|
if self.typename.find("union ") == 0:
|
||||||
self.isAggregate = True
|
self.isAggregate = True
|
||||||
|
|
||||||
|
|
||||||
class Call:
|
class Call:
|
||||||
id = None
|
|
||||||
name = ''
|
|
||||||
inArgs = []
|
|
||||||
outArgs = []
|
|
||||||
outFds = False
|
|
||||||
|
|
||||||
def dump(self):
|
def dump(self):
|
||||||
print("Call " + self.name)
|
print("Call " + self.name)
|
||||||
|
@ -94,7 +88,12 @@ class Call:
|
||||||
f.write(")")
|
f.write(")")
|
||||||
|
|
||||||
def __init__(self, name, data):
|
def __init__(self, name, data):
|
||||||
|
|
||||||
|
self.id = None
|
||||||
self.name = name
|
self.name = name
|
||||||
|
self.inArgs = []
|
||||||
|
self.outArgs = []
|
||||||
|
self.outFds = False
|
||||||
for key in data:
|
for key in data:
|
||||||
if key == 'id':
|
if key == 'id':
|
||||||
self.id = data[key]
|
self.id = data[key]
|
||||||
|
@ -107,15 +106,16 @@ class Call:
|
||||||
if not self.id:
|
if not self.id:
|
||||||
self.id = "IPC_" + name.upper()
|
self.id = "IPC_" + name.upper()
|
||||||
|
|
||||||
|
|
||||||
class Proto:
|
class Proto:
|
||||||
calls = []
|
@classmethod
|
||||||
|
def parse(cls, data):
|
||||||
|
return cls(data)
|
||||||
|
|
||||||
def parse(data):
|
@classmethod
|
||||||
return Proto(data)
|
def loadAndParse(cls, file):
|
||||||
|
|
||||||
def loadAndParse(file):
|
|
||||||
with open(file) as infile:
|
with open(file) as infile:
|
||||||
return Proto.parse(json.loads(infile.read()))
|
return cls.parse(json.loads(infile.read()))
|
||||||
|
|
||||||
def dump(self):
|
def dump(self):
|
||||||
for call in self.calls:
|
for call in self.calls:
|
||||||
|
@ -125,8 +125,8 @@ class Proto:
|
||||||
self.calls.append(Call(name, data))
|
self.calls.append(Call(name, data))
|
||||||
|
|
||||||
def __init__(self, data):
|
def __init__(self, data):
|
||||||
for name in data:
|
self.calls = []
|
||||||
call = data[name]
|
for name, call in data.items():
|
||||||
self.addCall(name, call)
|
self.addCall(name, call)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue