xfer
This commit is contained in:
		@@ -18,26 +18,26 @@ struct _VeilidPlugin
 | 
			
		||||
G_DEFINE_TYPE(VeilidPlugin, veilid_plugin, g_object_get_type())
 | 
			
		||||
 | 
			
		||||
// Called when a method call is received from Flutter.
 | 
			
		||||
static void veilid_plugin_handle_method_call(
 | 
			
		||||
    VeilidPlugin *self,
 | 
			
		||||
    FlMethodCall *method_call)
 | 
			
		||||
{
 | 
			
		||||
  g_autoptr(FlMethodResponse) response = nullptr;
 | 
			
		||||
// static void veilid_plugin_handle_method_call(
 | 
			
		||||
//     VeilidPlugin *self,
 | 
			
		||||
//     FlMethodCall *method_call)
 | 
			
		||||
// {
 | 
			
		||||
//   g_autoptr(FlMethodResponse) response = nullptr;
 | 
			
		||||
 | 
			
		||||
  //const gchar *method = fl_method_call_get_name(method_call);
 | 
			
		||||
//   //const gchar *method = fl_method_call_get_name(method_call);
 | 
			
		||||
 | 
			
		||||
  // if (strcmp(method, "getPlatformVersion") == 0) {
 | 
			
		||||
  //   struct utsname uname_data = {};
 | 
			
		||||
  //   uname(&uname_data);
 | 
			
		||||
  //   g_autofree gchar *version = g_strdup_printf("Linux %s", uname_data.version);
 | 
			
		||||
  //   g_autoptr(FlValue) result = fl_value_new_string(version);
 | 
			
		||||
  //   response = FL_METHOD_RESPONSE(fl_method_success_response_new(result));
 | 
			
		||||
  // } else {
 | 
			
		||||
  response = FL_METHOD_RESPONSE(fl_method_not_implemented_response_new());
 | 
			
		||||
  // }
 | 
			
		||||
//   // if (strcmp(method, "getPlatformVersion") == 0) {
 | 
			
		||||
//   //   struct utsname uname_data = {};
 | 
			
		||||
//   //   uname(&uname_data);
 | 
			
		||||
//   //   g_autofree gchar *version = g_strdup_printf("Linux %s", uname_data.version);
 | 
			
		||||
//   //   g_autoptr(FlValue) result = fl_value_new_string(version);
 | 
			
		||||
//   //   response = FL_METHOD_RESPONSE(fl_method_success_response_new(result));
 | 
			
		||||
//   // } else {
 | 
			
		||||
//   response = FL_METHOD_RESPONSE(fl_method_not_implemented_response_new());
 | 
			
		||||
//   // }
 | 
			
		||||
 | 
			
		||||
  fl_method_call_respond(method_call, response, nullptr);
 | 
			
		||||
}
 | 
			
		||||
//   fl_method_call_respond(method_call, response, nullptr);
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
static void veilid_plugin_dispose(GObject *object)
 | 
			
		||||
{
 | 
			
		||||
@@ -51,26 +51,26 @@ static void veilid_plugin_class_init(VeilidPluginClass *klass)
 | 
			
		||||
 | 
			
		||||
static void veilid_plugin_init(VeilidPlugin *self) {}
 | 
			
		||||
 | 
			
		||||
static void method_call_cb(FlMethodChannel *channel, FlMethodCall *method_call,
 | 
			
		||||
                           gpointer user_data)
 | 
			
		||||
{
 | 
			
		||||
  VeilidPlugin *plugin = VEILID_PLUGIN(user_data);
 | 
			
		||||
  veilid_plugin_handle_method_call(plugin, method_call);
 | 
			
		||||
}
 | 
			
		||||
// static void method_call_cb(FlMethodChannel *channel, FlMethodCall *method_call,
 | 
			
		||||
//                            gpointer user_data)
 | 
			
		||||
// {
 | 
			
		||||
//   VeilidPlugin *plugin = VEILID_PLUGIN(user_data);
 | 
			
		||||
//   veilid_plugin_handle_method_call(plugin, method_call);
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
void veilid_plugin_register_with_registrar(FlPluginRegistrar *registrar)
 | 
			
		||||
{
 | 
			
		||||
  VeilidPlugin *plugin = VEILID_PLUGIN(
 | 
			
		||||
      g_object_new(veilid_plugin_get_type(), nullptr));
 | 
			
		||||
  // VeilidPlugin *plugin = VEILID_PLUGIN(
 | 
			
		||||
  //     g_object_new(veilid_plugin_get_type(), nullptr));
 | 
			
		||||
 | 
			
		||||
  g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
 | 
			
		||||
  g_autoptr(FlMethodChannel) channel =
 | 
			
		||||
      fl_method_channel_new(fl_plugin_registrar_get_messenger(registrar),
 | 
			
		||||
                            "veilid",
 | 
			
		||||
                            FL_METHOD_CODEC(codec));
 | 
			
		||||
  fl_method_channel_set_method_call_handler(channel, method_call_cb,
 | 
			
		||||
                                            g_object_ref(plugin),
 | 
			
		||||
                                            g_object_unref);
 | 
			
		||||
  // g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
 | 
			
		||||
  // g_autoptr(FlMethodChannel) channel =
 | 
			
		||||
  //     fl_method_channel_new(fl_plugin_registrar_get_messenger(registrar),
 | 
			
		||||
  //                           "veilid",
 | 
			
		||||
  //                           FL_METHOD_CODEC(codec));
 | 
			
		||||
  // fl_method_channel_set_method_call_handler(channel, method_call_cb,
 | 
			
		||||
  //                                           g_object_ref(plugin),
 | 
			
		||||
  //                                           g_object_unref);
 | 
			
		||||
 | 
			
		||||
  g_object_unref(plugin);
 | 
			
		||||
  // g_object_unref(plugin);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -14,68 +14,74 @@
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include <sstream>
 | 
			
		||||
 | 
			
		||||
namespace {
 | 
			
		||||
namespace
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
class VeilidPlugin : public flutter::Plugin {
 | 
			
		||||
 public:
 | 
			
		||||
  static void RegisterWithRegistrar(flutter::PluginRegistrarWindows *registrar);
 | 
			
		||||
  class VeilidPlugin : public flutter::Plugin
 | 
			
		||||
  {
 | 
			
		||||
  public:
 | 
			
		||||
    static void RegisterWithRegistrar(flutter::PluginRegistrarWindows *registrar);
 | 
			
		||||
 | 
			
		||||
  VeilidPlugin();
 | 
			
		||||
    VeilidPlugin();
 | 
			
		||||
 | 
			
		||||
  virtual ~VeilidPlugin();
 | 
			
		||||
    virtual ~VeilidPlugin();
 | 
			
		||||
 | 
			
		||||
 private:
 | 
			
		||||
  // Called when a method is called on this plugin's channel from Dart.
 | 
			
		||||
  void HandleMethodCall(
 | 
			
		||||
      const flutter::MethodCall<flutter::EncodableValue> &method_call,
 | 
			
		||||
      std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
 | 
			
		||||
};
 | 
			
		||||
  private:
 | 
			
		||||
    // Called when a method is called on this plugin's channel from Dart.
 | 
			
		||||
    void HandleMethodCall(
 | 
			
		||||
        const flutter::MethodCall<flutter::EncodableValue> &method_call,
 | 
			
		||||
        std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
// static
 | 
			
		||||
void VeilidPlugin::RegisterWithRegistrar(
 | 
			
		||||
    flutter::PluginRegistrarWindows *registrar) {
 | 
			
		||||
  auto channel =
 | 
			
		||||
      std::make_unique<flutter::MethodChannel<flutter::EncodableValue>>(
 | 
			
		||||
          registrar->messenger(), "veilid",
 | 
			
		||||
          &flutter::StandardMethodCodec::GetInstance());
 | 
			
		||||
  // static
 | 
			
		||||
  void VeilidPlugin::RegisterWithRegistrar(
 | 
			
		||||
      flutter::PluginRegistrarWindows *registrar)
 | 
			
		||||
  {
 | 
			
		||||
    auto channel =
 | 
			
		||||
        std::make_unique<flutter::MethodChannel<flutter::EncodableValue>>(
 | 
			
		||||
            registrar->messenger(), "veilid",
 | 
			
		||||
            &flutter::StandardMethodCodec::GetInstance());
 | 
			
		||||
 | 
			
		||||
  auto plugin = std::make_unique<VeilidPlugin>();
 | 
			
		||||
    auto plugin = std::make_unique<VeilidPlugin>();
 | 
			
		||||
 | 
			
		||||
  channel->SetMethodCallHandler(
 | 
			
		||||
      [plugin_pointer = plugin.get()](const auto &call, auto result) {
 | 
			
		||||
        plugin_pointer->HandleMethodCall(call, std::move(result));
 | 
			
		||||
      });
 | 
			
		||||
    channel->SetMethodCallHandler(
 | 
			
		||||
        [plugin_pointer = plugin.get()](const auto &call, auto result)
 | 
			
		||||
        {
 | 
			
		||||
          plugin_pointer->HandleMethodCall(call, std::move(result));
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
  registrar->AddPlugin(std::move(plugin));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
VeilidPlugin::VeilidPlugin() {}
 | 
			
		||||
 | 
			
		||||
VeilidPlugin::~VeilidPlugin() {}
 | 
			
		||||
 | 
			
		||||
void VeilidPlugin::HandleMethodCall(
 | 
			
		||||
    const flutter::MethodCall<flutter::EncodableValue> &method_call,
 | 
			
		||||
    std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
 | 
			
		||||
  if (method_call.method_name().compare("getPlatformVersion") == 0) {
 | 
			
		||||
    std::ostringstream version_stream;
 | 
			
		||||
    version_stream << "Windows ";
 | 
			
		||||
    if (IsWindows10OrGreater()) {
 | 
			
		||||
      version_stream << "10+";
 | 
			
		||||
    } else if (IsWindows8OrGreater()) {
 | 
			
		||||
      version_stream << "8";
 | 
			
		||||
    } else if (IsWindows7OrGreater()) {
 | 
			
		||||
      version_stream << "7";
 | 
			
		||||
    }
 | 
			
		||||
    result->Success(flutter::EncodableValue(version_stream.str()));
 | 
			
		||||
  } else {
 | 
			
		||||
    result->NotImplemented();
 | 
			
		||||
    registrar->AddPlugin(std::move(plugin));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
}  // namespace
 | 
			
		||||
  VeilidPlugin::VeilidPlugin() {}
 | 
			
		||||
 | 
			
		||||
  VeilidPlugin::~VeilidPlugin() {}
 | 
			
		||||
 | 
			
		||||
  void VeilidPlugin::HandleMethodCall(
 | 
			
		||||
      const flutter::MethodCall<flutter::EncodableValue> &method_call,
 | 
			
		||||
      std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result)
 | 
			
		||||
  {
 | 
			
		||||
    // if (method_call.method_name().compare("getPlatformVersion") == 0) {
 | 
			
		||||
    //   std::ostringstream version_stream;
 | 
			
		||||
    //   version_stream << "Windows ";
 | 
			
		||||
    //   if (IsWindows10OrGreater()) {
 | 
			
		||||
    //     version_stream << "10+";
 | 
			
		||||
    //   } else if (IsWindows8OrGreater()) {
 | 
			
		||||
    //     version_stream << "8";
 | 
			
		||||
    //   } else if (IsWindows7OrGreater()) {
 | 
			
		||||
    //     version_stream << "7";
 | 
			
		||||
    //   }
 | 
			
		||||
    //   result->Success(flutter::EncodableValue(version_stream.str()));
 | 
			
		||||
    // } else {
 | 
			
		||||
    result->NotImplemented();
 | 
			
		||||
    // }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
} // namespace
 | 
			
		||||
 | 
			
		||||
void VeilidPluginRegisterWithRegistrar(
 | 
			
		||||
    FlutterDesktopPluginRegistrarRef registrar) {
 | 
			
		||||
    FlutterDesktopPluginRegistrarRef registrar)
 | 
			
		||||
{
 | 
			
		||||
  VeilidPlugin::RegisterWithRegistrar(
 | 
			
		||||
      flutter::PluginRegistrarManager::GetInstance()
 | 
			
		||||
          ->GetRegistrar<flutter::PluginRegistrarWindows>(registrar));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user