Răsfoiți Sursa

[cpp] More native externs for cpp

Hugh 9 ani în urmă
părinte
comite
cc9a4f95dc
3 a modificat fișierele cu 29 adăugiri și 49 ștergeri
  1. 1 1
      std/cpp/NativeSys.hx
  2. 21 38
      std/cpp/_std/Sys.hx
  3. 7 10
      std/cpp/_std/sys/net/Host.hx

+ 1 - 1
std/cpp/NativeSys.hx

@@ -13,7 +13,7 @@ extern class NativeSys
 
 
    @:extern @:native("_hx_std_sys_sleep")
-   public static function sys_sleep(f:Int) : Void { }
+   public static function sys_sleep(f:Float) : Void { }
 
 
    @:extern @:native("_hx_std_set_time_locale")

+ 21 - 38
std/cpp/_std/Sys.hx

@@ -19,6 +19,8 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  */
+import cpp.NativeSys;
+
 @:coreApi class Sys {
 
 	public static function print( v : Dynamic ) : Void {
@@ -32,21 +34,21 @@
 
    @:access(sys.io.FileInput)
 	public static function stdin() : haxe.io.Input {
-		return new sys.io.FileInput(file_stdin());
+		return new sys.io.FileInput(cpp.NativeFile.file_stdin());
 	}
 
    @:access(sys.io.FileOutput)
 	public static function stdout() : haxe.io.Output {
-		return new sys.io.FileOutput(file_stdout());
+		return new sys.io.FileOutput(cpp.NativeFile.file_stdout());
 	}
 
    @:access(sys.io.FileOutput)
 	public static function stderr() : haxe.io.Output {
-		return new sys.io.FileOutput(file_stderr());
+		return new sys.io.FileOutput(cpp.NativeFile.file_stderr());
 	}
 
 	public static function getChar( echo : Bool ) : Int {
-		return getch(echo);
+		return NativeSys.sys_getch(echo);
 	}
 
 	public static function args() : Array<String> untyped {
@@ -54,39 +56,39 @@
 	}
 
 	public static function getEnv( s : String ):String {
-		var v = get_env(s);
+		var v = NativeSys.get_env(s);
 		if( v == null )
 			return null;
 		return v;
 	}
 
 	public static function putEnv( s : String, v : String ) : Void {
-		put_env(s,v);
+		NativeSys.put_env(s,v);
 	}
 
 	public static function sleep( seconds : Float ) : Void {
-		_sleep(seconds);
+		NativeSys.sys_sleep(seconds);
 	}
 
 	public static function setTimeLocale( loc : String ) : Bool {
-		return set_time_locale(loc);
+		return NativeSys.set_time_locale(loc);
 	}
 
 	public static function getCwd() : String {
-		return new String(get_cwd());
+		return NativeSys.get_cwd();
 	}
 
 	public static function setCwd( s : String ) : Void {
-		set_cwd(s);
+		NativeSys.set_cwd(s);
 	}
 
 	public static function systemName() : String {
-		return sys_string();
+		return NativeSys.sys_string();
 	}
 
 	public static function command( cmd : String, ?args : Array<String> ) : Int {
 		if (args == null) {
-			return sys_command(cmd);
+			return NativeSys.sys_command(cmd);
 		} else {
 			switch (systemName()) {
 				case "Windows":
@@ -94,10 +96,10 @@
 						for (a in [StringTools.replace(cmd, "/", "\\")].concat(args))
 						StringTools.quoteWinArg(a, true)
 					].join(" ");
-					return sys_command(cmd);
+					return NativeSys.sys_command(cmd);
 				case _:
 					cmd = [cmd].concat(args).map(StringTools.quoteUnixArg).join(" ");
-					return sys_command(cmd);
+					return NativeSys.sys_command(cmd);
 			}
 		}
 	}
@@ -107,23 +109,23 @@
 	}
 
 	public static function time() : Float {
-		return sys_time();
+		return NativeSys.sys_time();
 	}
 
 	public static function cpuTime() : Float {
-		return sys_cpu_time();
+		return NativeSys.sys_cpu_time();
 	}
 
 	@:deprecated("Use programPath instead") public static function executablePath() : String {
-		return new String(sys_exe_path());
+		return NativeSys.sys_exe_path();
 	}
 
 	public static function programPath() : String {
-		return _programPath;
+		return NativeSys.sys_exe_path();
 	}
 
 	public static function environment() : Map<String,String> {
-		var vars:Array<String> = sys_env();
+		var vars:Array<String> = NativeSys.sys_env();
 		var result = new haxe.ds.StringMap<String>();
 		var i = 0;
 		while(i<vars.length) {
@@ -133,23 +135,4 @@
 		return result;
 	}
 
-	private static var get_env = cpp.Lib.load("std","get_env",1);
-	private static var put_env = cpp.Lib.load("std","put_env",2);
-	private static var _sleep = cpp.Lib.load("std","sys_sleep",1);
-	private static var set_time_locale = cpp.Lib.load("std","set_time_locale",1);
-	private static var get_cwd = cpp.Lib.load("std","get_cwd",0);
-	private static var set_cwd = cpp.Lib.load("std","set_cwd",1);
-	private static var sys_string = cpp.Lib.load("std","sys_string",0);
-	private static var sys_command = cpp.Lib.load("std","sys_command",1);
-	private static var sys_time = cpp.Lib.load("std","sys_time",0);
-	private static var sys_cpu_time = cpp.Lib.load("std","sys_cpu_time",0);
-	private static var sys_exe_path = cpp.Lib.load("std","sys_exe_path",0);
-	private static var _programPath = sys.FileSystem.fullPath(new String(sys_exe_path()));
-	private static var sys_env = cpp.Lib.load("std","sys_env",0);
-
-	private static var file_stdin = cpp.Lib.load("std","file_stdin",0);
-	private static var file_stdout = cpp.Lib.load("std","file_stdout",0);
-	private static var file_stderr = cpp.Lib.load("std","file_stderr",0);
-
-	private static var getch = cpp.Lib.load("std","sys_getch",1);
 }

+ 7 - 10
std/cpp/_std/sys/net/Host.hx

@@ -21,6 +21,8 @@
  */
 package sys.net;
 
+import cpp.NativeSocket;
+
 @:coreApi
 class Host {
 
@@ -30,28 +32,23 @@ class Host {
 
 	public function new( name : String ) : Void {
 		host = name;
-		ip = host_resolve(name);
+		ip = NativeSocket.host_resolve(name);
 	}
 
 	public function toString() : String {
-		return new String(host_to_string(ip));
+		return NativeSocket.host_to_string(ip);
 	}
 
 	public function reverse() : String {
-		return new String(host_reverse(ip));
+		return NativeSocket.host_reverse(ip);
 	}
 
 	public static function localhost() : String {
-		return new String(host_local());
+		return NativeSocket.host_local();
 	}
 
 	static function __init__() : Void {
-		cpp.Lib.load("std","socket_init",0)();
+		NativeSocket.socket_init();
 	}
 
-	private static var host_resolve = cpp.Lib.load("std","host_resolve",1);
-	private static var host_reverse = cpp.Lib.load("std","host_reverse",1);
-	private static var host_to_string = cpp.Lib.load("std","host_to_string",1);
-	private static var host_local = cpp.Lib.load("std","host_local",0);
-
 }