package com.ifpdos.udi.sdk.service.doc.base.democode;

import com.ifpdos.udi.sdk.service.doc.base.ApiInfo;
import com.ifpdos.udi.sdk.service.doc.base.ClassParser;
import com.ifpdos.udi.sdk.service.doc.base.Notify;
import com.ifpdos.udi.sdk.service.doc.base.Request;
import com.ifpdos.udi.sdk.service.doc.base.Uri;
import com.ifpdos.udi.sdk.service.doc.base.Utils;
import d.e.a.f;
import g.h0.c.g;
import g.h0.c.l;
import g.i;
import g.k;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.StringReader;
import java.util.LinkedHashMap;
import java.util.Map;

/* JADX INFO: compiled from: CppNotifyCodeGenerator.kt */
/* JADX INFO: loaded from: classes.dex */
@i
public final class CppNotifyCodeGenerator extends DemoCodeGenerator {
    public static final Companion Companion = new Companion(null);
    private static final String NOTIFY_DEMO_CODE_TEMPLATE = "\n``` c++\n// 目前该调用方式只在Windows/Linux上支持\n#include \"libudisdk/client.h\"\n#include <string>\n\nclass EventCallback : public udisdk::EventSource::EventCallback {\npublic:\n    void OnNewEvent(const std::string& event, const std::string& data) override {\n {{^notifyJson}}\n        /* event 是 {{&url}}, 没有 data 数据 */\n{{/notifyJson}}\n{{#notifyJson}}\n        /*\n        event 是 {{&url}}, \n        data 是数据的 json:\n{{&notifyJson}}\n        */\n{{/notifyJson}}\n    }\n\n    void OnError(const std::string& error) {\n    }\n};\n\nint main() {\n    const auto& callback = std::make_shared<EventCallback>();\n    \n    // token需要向平台组申请\n    udisdk::EventSource event_source(token, callback);\n\n    event_source.Add({ \"{{&url}}\" });\n\n    while(getchar() != EOF)\n        ;\n}\n```\n";

    /* JADX INFO: compiled from: CppNotifyCodeGenerator.kt */
    @i
    public static final class Companion {
        private Companion() {
        }

        public /* synthetic */ Companion(g gVar) {
            this();
        }
    }

    @Override // com.ifpdos.udi.sdk.service.doc.base.democode.DemoCodeGenerator
    public String genGetRequestDemo(ApiInfo apiInfo, ClassParser classParser) {
        l.f(apiInfo, "info");
        l.f(classParser, "classParser");
        return null;
    }

    @Override // com.ifpdos.udi.sdk.service.doc.base.democode.DemoCodeGenerator
    public String genNotifyRegisterDemo(ApiInfo apiInfo, ClassParser classParser) throws IOException {
        l.f(apiInfo, "info");
        l.f(classParser, "classParser");
        LinkedHashMap linkedHashMap = new LinkedHashMap();
        Request getterRequest = apiInfo.getGetterRequest();
        if (getterRequest != null) {
            genDemoJson(apiInfo.getUri(), getterRequest.getRequestClass(), linkedHashMap, classParser, false);
        }
        Request setterRequest = apiInfo.getSetterRequest();
        if (setterRequest != null) {
            genDemoJson(apiInfo.getUri(), setterRequest.getRequestClass(), linkedHashMap, classParser, false);
        }
        Uri uri = apiInfo.getUri();
        Notify notify = apiInfo.getNotify();
        l.c(notify);
        String strGenDemoJson = genDemoJson(uri, notify.getNotifyClass(), new LinkedHashMap(), classParser, false);
        k[] kVarArr = new k[2];
        kVarArr[0] = new k("url", genDemoUrl(new Uri(apiInfo.getUri().getPath()), linkedHashMap, apiInfo.getNotify().getNotifyClass(), classParser));
        kVarArr[1] = new k("notifyJson", strGenDemoJson != null ? Utils.INSTANCE.addTab(strGenDemoJson, 2) : null);
        Map mapV = g.c0.g.v(kVarArr);
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(1024);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(byteArrayOutputStream);
        new f().a(new StringReader(NOTIFY_DEMO_CODE_TEMPLATE), "code").g(outputStreamWriter, mapV);
        outputStreamWriter.flush();
        String string = byteArrayOutputStream.toString();
        l.e(string, "out.toString()");
        return string;
    }

    @Override // com.ifpdos.udi.sdk.service.doc.base.democode.DemoCodeGenerator
    public String genPostRequestDemo(ApiInfo apiInfo, ClassParser classParser) {
        l.f(apiInfo, "info");
        l.f(classParser, "classParser");
        return null;
    }
}
