Example #1
0
def send_list(a):
    lines = []
    fname = a.name()
    m = a.member()

    if a.member().is_list():
        print "Lists-of-lists are currently not implemented, sorry."
        sys.exit(1)

    tab = xorp_indent(1)
    tab2 = xorp_indent(2)

    lines.append("size_t sz_%s = %s.size();" % (fname, fname))
    lines.append("nout += outp->writeListBegin(%s, sz_%s);" % \
 (wire_type(m), fname))

    lines.append("if (sz_%s > 0) {" % fname)
    lines.append(tab + "for (size_t i_%s = 1; i_%s <= sz_%s; i_%s++) {" % \
 (fname, fname, fname, fname))
    lines.append(tab2 + "const XrlAtom& xa = %s.get(i_%s);" % \
 (fname, fname))
    mfname = "xa_%s" % m.type()  # member field name with XIF type
    lines.append(tab2 + "const %s& %s = xa.%s();" % \
 (m.cpp_type(), mfname, m.accessor()))

    # now marshal out the member type, indented at this level correctly.
    for l in send_arg(m, mfname):
        lines.append(tab2 + l)

    lines.append(tab + "}")  # close for
    lines.append("}")  # close if
    lines.append("nout += outp->writeListEnd();")  # close thrift list
    return lines
Example #2
0
def send_list(a):
    lines = []
    fname = a.name()
    m = a.member()

    if a.member().is_list():
	print "Lists-of-lists are currently not implemented, sorry."
	sys.exit(1)

    tab = xorp_indent(1)
    tab2 = xorp_indent(2)

    lines.append("size_t sz_%s = %s.size();" % (fname, fname))
    lines.append("nout += outp->writeListBegin(%s, sz_%s);" % \
	(wire_type(m), fname))

    lines.append("if (sz_%s > 0) {" % fname)
    lines.append(tab + "for (size_t i_%s = 1; i_%s <= sz_%s; i_%s++) {" % \
	(fname, fname, fname, fname))
    lines.append(tab2 + "const XrlAtom& xa = %s.get(i_%s);" % \
	(fname, fname))
    mfname = "xa_%s" % m.type()	    # member field name with XIF type
    lines.append(tab2 + "const %s& %s = xa.%s();" % \
	(m.cpp_type(), mfname, m.accessor()))

    # now marshal out the member type, indented at this level correctly.
    for l in send_arg(m, mfname):
    	lines.append(tab2 + l)

    lines.append(tab + "}")	# close for
    lines.append("}")		# close if
    lines.append("nout += outp->writeListEnd();")   # close thrift list
    return lines
Example #3
0
def recv_list(a, fname):
    lines = []
    m = a.member()

    if a.member().is_list():
        print "Lists-of-lists are currently not implemented, sorry."
        sys.exit(1)

    tab = xorp_indent(1)
    lines.append("uint32_t sz_%s;" % fname)
    lines.append("TType mt_%s;" % fname)
    lines.append("nin += inp->readListBegin(mt_%s, sz_%s);" % \
 tuple([fname] * 2))
    lines.append("for (uint32_t i_%s = 0; i_%s < sz_%s; i_%s++) {" % \
 tuple([fname] * 4))

    # Now read in base type.
    mfname = "tmp_%s" % fname
    lines.append(tab + "%s %s;" % (m.cpp_type(), mfname))

    for l in recv_arg(m, mfname):
        lines.append(tab + l)

    # now convert to XrlAtom and append to our collection in local scope.
    lines.append(tab + ("%s.append(XrlAtom(tmp_%s));" % \
 tuple([fname] * 2)))
    lines.append("}")
    lines.append("nin += inp->readListEnd();")
    return lines
Example #4
0
def recv_list(a, fname):
    lines = []
    m = a.member()

    if a.member().is_list():
	print "Lists-of-lists are currently not implemented, sorry."
	sys.exit(1)

    tab = xorp_indent(1)
    lines.append("uint32_t sz_%s;" % fname)
    lines.append("TType mt_%s;" % fname)
    lines.append("nin += inp->readListBegin(mt_%s, sz_%s);" % \
	tuple([fname] * 2))
    lines.append("for (uint32_t i_%s = 0; i_%s < sz_%s; i_%s++) {" % \
	tuple([fname] * 4))

    # Now read in base type.
    mfname = "tmp_%s" % fname
    lines.append(tab + "%s %s;" % (m.cpp_type(), mfname))

    for l in recv_arg(m, mfname):
    	lines.append(tab + l)

    # now convert to XrlAtom and append to our collection in local scope.
    lines.append(tab + ("%s.append(XrlAtom(tmp_%s));" % \
	tuple([fname] * 2)))
    lines.append("}")
    lines.append("nin += inp->readListEnd();")
    return lines