diff --git a/lib/platform/platform_base.dart b/lib/platform/platform_base.dart index abe3391..05d5c77 100644 --- a/lib/platform/platform_base.dart +++ b/lib/platform/platform_base.dart @@ -1,6 +1,8 @@ +import 'dart:typed_data'; + import 'package:dart_framework/platform/platform_stub.dart' - if (dart.library.io) 'package:dart_framework/log/log_writer_io.dart' - if (dart.library.html) 'package:dart_framework/log/log_writer_web.dart'; + if (dart.library.io) 'package:dart_framework/platform/platform_io.dart' + if (dart.library.html) 'package:dart_framework/platform/platform_web.dart'; abstract class LogWriter { factory LogWriter() => getLogWriter(); @@ -11,4 +13,8 @@ abstract class LogWriter { void end(); } -void initializeApp(String name, String appID) => initialize(name, appID); \ No newline at end of file +void initializeApp(String name, String appID) => initialize(name, appID); + +Future getIPAddressPlatform(String domain) => getIPAddress(domain); + +Future readFileBytePlatform(String filePath) => readFileBytePlatform(filePath); \ No newline at end of file diff --git a/lib/platform/platform_io.dart b/lib/platform/platform_io.dart index 57861ea..78a21bd 100644 --- a/lib/platform/platform_io.dart +++ b/lib/platform/platform_io.dart @@ -1,4 +1,5 @@ import 'dart:io'; +import 'dart:typed_data'; import 'package:dart_framework/platform/platform_base.dart'; import 'package:dart_framework/utils/system_util.dart'; @@ -28,6 +29,35 @@ void initialize(String name, String appID) { intMin = -intMax; } +Future getIPAddress(String domain) async { + late String ipAddress; + var regEx = RegExp(r'(://)([a-zA-Z0-9-.]+)(/|:)'); + var match = regEx.firstMatch(domain); + if (match != null && match.groupCount > 2) { + domain = match.group(2)!; + var list = await InternetAddress.lookup(domain); + for (var address in list) { + ipAddress = address.address; + break; + } + } + return dataFutrue(ipAddress); +} + +Future readFileByte(String filePath) async { + Uri myUri = Uri.parse(filePath); + File audioFile = File.fromUri(myUri); + Uint8List? bytes; + await audioFile.readAsBytes().then((value) { + bytes = Uint8List.fromList(value); + print('reading of bytes is completed'); + }).catchError((onError) { + print('Exception Error while reading audio from path:$onError'); + }); + return dataFutrue(bytes); +} + + class LogWriterIO extends IsolateBase implements LogWriter { late int _id; diff --git a/lib/platform/platform_stub.dart b/lib/platform/platform_stub.dart index 4ee777a..312223f 100644 --- a/lib/platform/platform_stub.dart +++ b/lib/platform/platform_stub.dart @@ -1,5 +1,11 @@ +import 'dart:typed_data'; + import 'package:dart_framework/platform/platform_base.dart'; LogWriter getLogWriter() => throw UnsupportedError('Cannot create a instance'); -void initialize(String name, String appID) => throw UnsupportedError('Cannot create a instance'); \ No newline at end of file +void initialize(String name, String appID) => throw UnsupportedError('Cannot execute method'); + +Future getIPAddress(String domain) => throw UnsupportedError('Cannot execute method'); + +Future readFileByte(String filePath) => throw UnsupportedError('Cannot execute method'); \ No newline at end of file diff --git a/lib/platform/platform_web.dart b/lib/platform/platform_web.dart index fc56455..a8bbe28 100644 --- a/lib/platform/platform_web.dart +++ b/lib/platform/platform_web.dart @@ -1,3 +1,5 @@ +import 'dart:typed_data'; + import 'package:dart_framework/platform/platform_base.dart'; import 'package:dart_framework/utils/system_util.dart'; @@ -11,6 +13,10 @@ void initialize(String name, String appID) { intMin = -intMax; } +Future getIPAddress(String domain) => dataFutrue(''); + +Future readFileByte(String filePath) => dataFutrue(null); + class LogWriterWeb implements LogWriter { @override diff --git a/lib/utils/system_util.dart b/lib/utils/system_util.dart index 8093366..fcea940 100644 --- a/lib/utils/system_util.dart +++ b/lib/utils/system_util.dart @@ -82,22 +82,7 @@ Map? getMapFromYaml(String yamlStr) { return map; } -Future getIPAddress(String domain) async { - var c = Completer(); - late String ipAddress; - var regEx = RegExp(r'(://)([a-zA-Z0-9-.]+)(/|:)'); - var match = regEx.firstMatch(domain); - if (match != null && match.groupCount > 2) { - domain = match.group(2)!; - var list = await InternetAddress.lookup(domain); - for (var address in list) { - ipAddress = address.address; - break; - } - } - c.complete(ipAddress); - return c.future; -} +Future getIPAddress(String domain) => getIPAddressPlatform(domain); Future get simpleFuture { var c = Completer(); @@ -111,17 +96,4 @@ Future dataFutrue(T data) { return c.future; } -Future readFileByte(String filePath) async { - var c = Completer(); - Uri myUri = Uri.parse(filePath); - File audioFile = File.fromUri(myUri); - Uint8List? bytes; - await audioFile.readAsBytes().then((value) { - bytes = Uint8List.fromList(value); - print('reading of bytes is completed'); - }).catchError((onError) { - print('Exception Error while reading audio from path:$onError'); - }); - c.complete(bytes); - return c.future; -} +Future readFileByte(String filePath) => readFileBytePlatform(filePath); \ No newline at end of file