Skip to content

Commit b620296

Browse files
committed
Add System class stub (currentTimeMillis, nanoTime, out.println, err.println)
1 parent 94c82a0 commit b620296

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

src/Processing.h

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2306,6 +2306,29 @@ class NumberWrapperBase {
23062306
String toString() const { return String(::std::to_string(v)); }
23072307
};
23082308

2309+
// Java System class -- minimal stub for sketches that use System.currentTimeMillis() etc.
2310+
class System {
2311+
public:
2312+
static long long currentTimeMillis() {
2313+
using namespace ::std::chrono;
2314+
return duration_cast<milliseconds>(steady_clock::now().time_since_epoch()).count();
2315+
}
2316+
static long long nanoTime() {
2317+
using namespace ::std::chrono;
2318+
return duration_cast<nanoseconds>(steady_clock::now().time_since_epoch()).count();
2319+
}
2320+
static void exit(int code=0) { ::exit(code); }
2321+
struct _Out {
2322+
template<class T> void println(const T& v) { ::std::cout << v << "\n"; ::std::cout.flush(); }
2323+
void println() { ::std::cout << "\n"; }
2324+
template<class T> void print(const T& v) { ::std::cout << v; ::std::cout.flush(); }
2325+
} out;
2326+
struct _Err {
2327+
template<class T> void println(const T& v) { ::std::cerr << v << "\n"; }
2328+
template<class T> void print(const T& v) { ::std::cerr << v; }
2329+
} err;
2330+
};
2331+
23092332
// Java Math class -- static methods for sketches that use Math.sin() etc.
23102333
class Math {
23112334
public:

0 commit comments

Comments
 (0)