Exemple #1
0
static void generateMethodDispatcher(CodeFile& f, Service* s, Method& m)
{
	f.output("public static bool %s(bintalk.IReader __r__, %sProxy __p__)", m.getNameC(), s->getNameC());
	f.indent("{");
	for(size_t i = 0; i < m.fields_.size(); i++)
	{
		Field& field = m.fields_[i];
		std::string tn;
		getFieldTypeName(field, tn); 
		std::string dft;
		getFieldDefault(field, dft);
		f.output("%s %s= %s;", 
			tn.c_str(),
			field.getNameC(),
			dft.c_str());
	}
	generateFieldContainerDSCode(f, &m);
	f.listBegin(",", false, "return __p__.%s(", m.getNameC());
	for(size_t i = 0; i < m.fields_.size(); i++)
	{
		Field& field = m.fields_[i];
		f.listItem("%s", field.getNameC());
	}
	f.listEnd(");");
	f.recover("}");
}
Exemple #2
0
static void generateServiceStubMethod(CodeFile& f, Method& m)
{
	f.listBegin(",", false, "def %s(", m.getNameC());
	f.listItem("self");
	for(size_t i = 0; i < m.fields_.size(); i++)
	{
		Field& field = m.fields_[i];
		f.listItem("%s", field.getNameC());
	}
	f.listEnd("):");
	f.indent();
	f.output("__b__ = []");
	f.output("protocol_writer.write_mid(%d, __b__)", m.mid_);
	generateFieldContainerSCode(f, &m, false);
	f.output("self.call(__b__)");
	f.recover();
}
Exemple #3
0
static void generateProxyAbstractMethod(CodeFile& f, Method& m)
{
	f.listBegin(",", false, "bool %s(", m.getNameC());
	for(size_t i = 0; i < m.fields_.size(); i++)
	{
		Field& field = m.fields_[i];
		std::string tn;
		getFieldTypeName(field, tn); 
		f.listItem("%s %s",tn.c_str(), field.getNameC());
	}
	f.listEnd(");");
}
Exemple #4
0
static void generateServiceDispatcherMethod(CodeFile& f, Service* s, Method& m)
{
	f.output("def %s_%s(__b__, __p__, __proxy__):", s->getNameC(), m.getNameC());
	f.indent();
	generateFieldContainerDSCode(f, &m, false);
	f.listBegin(",", false, "__proxy__.%s(", m.getNameC());
	for(size_t i = 0; i < m.fields_.size(); i++)
		f.listItem("%s", m.fields_[i].getNameC());
	f.listEnd(")");
	f.output("return __p__");
	f.recover();
	f.output("%sDispatcher.append(%s_%s)", s->getNameC(), s->getNameC(), m.getNameC());
}
Exemple #5
0
static void generateStubMethod(CodeFile& f, Service* s, Method& m)
{
	f.listBegin(",", false, "public void %s(", m.getNameC());
	for(size_t i = 0; i < m.fields_.size(); i++)
	{
		Field& field = m.fields_[i];
		std::string tn;
		getFieldTypeName(field, tn); 
		f.listItem("%s %s", tn.c_str(), field.getNameC());
	}
	f.listEnd(")");
	f.indent("{");
	f.output("bintalk.IWriter __w__ = methodBegin();");
	f.output("bintalk.ProtocolWriter.writeMid(__w__, %d);", m.mid_);
	generateFieldContainerSCode(f, &m);
	f.output("methodEnd();");
	f.recover("}");
}