Play with some possible *.api code.
[wrappi.git] / APIs / processes.api
diff --git a/APIs/processes.api b/APIs/processes.api
new file mode 100644 (file)
index 0000000..090245e
--- /dev/null
@@ -0,0 +1,34 @@
+object process
+  dir_list "/proc/[1-9]*"
+
+  constructor <<
+    $pid = atoi ($basename);
+  >>
+
+  property int pid (* implicit *)
+
+  property string short_command
+  <<
+    // some code to parse $filename/stat
+  >>
+  property char state
+  <<
+    // some code to parse $filename/stat
+  >>
+
+  writable property foo << ... >>
+
+  method err kill (signal sig)
+  <<
+    return kill ($pid, sig);
+  >>
+  method bool exists ()
+  <<
+    int r = kill ($pid, 0);
+    if (r == 0)
+      return 1;
+    if (r == -1 && errno == ESRCH)
+      return 0;
+    save_errno ();
+    return -1;
+  >>