MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / GenerateClient

Method GenerateClient

source/generator_csharp.cpp:7216–8064  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7214}
7215
7216void GeneratorCSharp::GenerateClient(const std::string& domain, const std::shared_ptr<Package>& p, bool final)
7217{
7218 // Generate namespace begin
7219 WriteLine();
7220 WriteLineIndent("namespace " + domain + *p->name + ".FBE {");
7221 Indent(1);
7222
7223 std::string sender = (final ? "FinalSender" : "Sender");
7224 std::string receiver = (final ? "FinalReceiver" : "Receiver");
7225 std::string client = (final ? "FinalClient" : "Client");
7226 std::string model = (final ? "FinalModel" : "Model");
7227 std::string listener = "I" + client + "Listener";
7228 std::string sender_listener = "I" + sender + "Listener";
7229 std::string receiver_listener = "I" + receiver + "Listener";
7230
7231 // Generate client listener begin
7232 WriteLine();
7233 if (final)
7234 WriteLineIndent("// Fast Binary Encoding " + domain + *p->name + " final client listener interface");
7235 else
7236 WriteLineIndent("// Fast Binary Encoding " + domain + *p->name + " client listener interface");
7237 WriteIndent("public interface " + listener);
7238 if (p->import)
7239 {
7240 bool first = true;
7241 Write(" : ");
7242 for (const auto& import : p->import->imports)
7243 {
7244 Write(std::string(first ? "" : ", ") + domain + *import + ".FBE." + listener);
7245 first = false;
7246 }
7247 }
7248 else
7249 Write(" : " + domain + "FBE.IClientListener");
7250 Write(", " + sender_listener + ", " + receiver_listener);
7251 WriteLine();
7252 WriteLineIndent("{");
7253 Indent(1);
7254
7255 // Generate client listener end
7256 Indent(-1);
7257 WriteLineIndent("}");
7258
7259 // Generate client begin
7260 WriteLine();
7261 if (final)
7262 WriteLineIndent("// Fast Binary Encoding " + domain + *p->name + " final client");
7263 else
7264 WriteLineIndent("// Fast Binary Encoding " + domain + *p->name + " client");
7265 WriteLineIndent("public class " + client + " : " + domain + "FBE.Client, " + listener);
7266 WriteLineIndent("{");
7267 Indent(1);
7268
7269 // Generate imported clients accessors
7270 if (p->import)
7271 {
7272 WriteLineIndent("// Imported clients");
7273 for (const auto& import : p->import->imports)

Callers

nothing calls this directly

Calls 5

insertMethod · 0.80
endMethod · 0.80
assignMethod · 0.80
emptyMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected