From f76982b942535d9a25c10bbc87d9ee39b8689ecf Mon Sep 17 00:00:00 2001 From: Panayot Cankov Date: Mon, 15 May 2017 17:53:16 +0300 Subject: [PATCH] Add C function to obtain the time since the process started. --- ios/TNSWidgets/TNSProcess.h | 17 +++++++++++ ios/TNSWidgets/TNSProcess.m | 28 ++++++++++++++++++ .../TNSWidgets.xcodeproj/project.pbxproj | 8 +++++ .../UserInterfaceState.xcuserstate | Bin 13922 -> 18260 bytes ios/TNSWidgets/TNSWidgets/TNSWidgets.h | 1 + 5 files changed, 54 insertions(+) create mode 100644 ios/TNSWidgets/TNSProcess.h create mode 100644 ios/TNSWidgets/TNSProcess.m diff --git a/ios/TNSWidgets/TNSProcess.h b/ios/TNSWidgets/TNSProcess.h new file mode 100644 index 000000000..926beba96 --- /dev/null +++ b/ios/TNSWidgets/TNSProcess.h @@ -0,0 +1,17 @@ +// +// TNSProcess.h +// TNSWidgets +// +// Created by Panayot Cankov on 15/05/2017. +// Copyright © 2017 Telerik A D. All rights reserved. +// + +#ifndef TNSProcess_h +#define TNSProcess_h + +/** + * Get the milliseconds since the process started. + */ +double __tns_uptime(); + +#endif /* TNSProcess_h */ diff --git a/ios/TNSWidgets/TNSProcess.m b/ios/TNSWidgets/TNSProcess.m new file mode 100644 index 000000000..bfc5d3ce6 --- /dev/null +++ b/ios/TNSWidgets/TNSProcess.m @@ -0,0 +1,28 @@ +// +// TNSProcess.c +// TNSWidgets +// +// Created by Panayot Cankov on 15/05/2017. +// Copyright © 2017 Telerik A D. All rights reserved. +// + +#include "TNSProcess.h" + +#import + +#include +#include +#include + +double __tns_uptime() { + pid_t pid = [[NSProcessInfo processInfo] processIdentifier]; + int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid }; + struct kinfo_proc proc; + size_t size = sizeof(proc); + sysctl(mib, 4, &proc, &size, NULL, 0); + + struct timeval current; + gettimeofday(¤t, NULL); + + return (double)(current.tv_sec - proc.kp_proc.p_starttime.tv_sec) * 1000.0 + (double)(current.tv_usec - proc.kp_proc.p_starttime.tv_usec) / 1000.0; +} diff --git a/ios/TNSWidgets/TNSWidgets.xcodeproj/project.pbxproj b/ios/TNSWidgets/TNSWidgets.xcodeproj/project.pbxproj index 964ae339b..f6ccadaae 100644 --- a/ios/TNSWidgets/TNSWidgets.xcodeproj/project.pbxproj +++ b/ios/TNSWidgets/TNSWidgets.xcodeproj/project.pbxproj @@ -9,6 +9,8 @@ /* Begin PBXBuildFile section */ 8B7321CF1D097ECD00884AC6 /* TNSLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7321CD1D097ECD00884AC6 /* TNSLabel.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8B7321D01D097ECD00884AC6 /* TNSLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B7321CE1D097ECD00884AC6 /* TNSLabel.m */; }; + F915D3551EC9EF5E00071914 /* TNSProcess.m in Sources */ = {isa = PBXBuildFile; fileRef = F915D3531EC9EF5E00071914 /* TNSProcess.m */; }; + F915D3561EC9EF5E00071914 /* TNSProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = F915D3541EC9EF5E00071914 /* TNSProcess.h */; settings = {ATTRIBUTES = (Public, ); }; }; F98F5CB31CD0EFEA00978308 /* TNSWidgets.h in Headers */ = {isa = PBXBuildFile; fileRef = F98F5CB21CD0EFEA00978308 /* TNSWidgets.h */; settings = {ATTRIBUTES = (Public, ); }; }; F98F5CBA1CD0EFEA00978308 /* TNSWidgets.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F98F5CAF1CD0EFEA00978308 /* TNSWidgets.framework */; }; F98F5CBF1CD0EFEA00978308 /* TNSWidgetsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = F98F5CBE1CD0EFEA00978308 /* TNSWidgetsTests.m */; }; @@ -29,6 +31,8 @@ /* Begin PBXFileReference section */ 8B7321CD1D097ECD00884AC6 /* TNSLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TNSLabel.h; sourceTree = ""; }; 8B7321CE1D097ECD00884AC6 /* TNSLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TNSLabel.m; sourceTree = ""; }; + F915D3531EC9EF5E00071914 /* TNSProcess.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TNSProcess.m; path = ../TNSProcess.m; sourceTree = ""; }; + F915D3541EC9EF5E00071914 /* TNSProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TNSProcess.h; path = ../TNSProcess.h; sourceTree = ""; }; F98F5CAF1CD0EFEA00978308 /* TNSWidgets.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TNSWidgets.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F98F5CB21CD0EFEA00978308 /* TNSWidgets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TNSWidgets.h; sourceTree = ""; }; F98F5CB41CD0EFEA00978308 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -79,6 +83,8 @@ F98F5CB11CD0EFEA00978308 /* TNSWidgets */ = { isa = PBXGroup; children = ( + F915D3531EC9EF5E00071914 /* TNSProcess.m */, + F915D3541EC9EF5E00071914 /* TNSProcess.h */, F98F5CB21CD0EFEA00978308 /* TNSWidgets.h */, 8B7321CD1D097ECD00884AC6 /* TNSLabel.h */, 8B7321CE1D097ECD00884AC6 /* TNSLabel.m */, @@ -105,6 +111,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + F915D3561EC9EF5E00071914 /* TNSProcess.h in Headers */, F98F5CB31CD0EFEA00978308 /* TNSWidgets.h in Headers */, F98F5CCB1CD0F09E00978308 /* UIImage+TNSBlocks.h in Headers */, 8B7321CF1D097ECD00884AC6 /* TNSLabel.h in Headers */, @@ -208,6 +215,7 @@ buildActionMask = 2147483647; files = ( 8B7321D01D097ECD00884AC6 /* TNSLabel.m in Sources */, + F915D3551EC9EF5E00071914 /* TNSProcess.m in Sources */, F98F5CCC1CD0F09E00978308 /* UIImage+TNSBlocks.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/ios/TNSWidgets/TNSWidgets.xcodeproj/project.xcworkspace/xcuserdata/cankov.xcuserdatad/UserInterfaceState.xcuserstate b/ios/TNSWidgets/TNSWidgets.xcodeproj/project.xcworkspace/xcuserdata/cankov.xcuserdatad/UserInterfaceState.xcuserstate index 593d92eebc8dfadfde0a5fc40b7909118a989731..8f89dbaf830f13c53d69a94ae130a5f935928d29 100644 GIT binary patch literal 18260 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

;9w!4+~Et9lt{i^GJj?xO)}c6 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 delta 8228 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 MXocR`cf8^M008fog#Z8m diff --git a/ios/TNSWidgets/TNSWidgets/TNSWidgets.h b/ios/TNSWidgets/TNSWidgets/TNSWidgets.h index 4ae01b174..28bae77c1 100644 --- a/ios/TNSWidgets/TNSWidgets/TNSWidgets.h +++ b/ios/TNSWidgets/TNSWidgets/TNSWidgets.h @@ -18,3 +18,4 @@ FOUNDATION_EXPORT const unsigned char TNSWidgetsVersionString[]; #import "UIImage+TNSBlocks.h" #import "TNSLabel.h" +#import "TNSProcess.h"