summaryrefslogtreecommitdiffstats
path: root/Object.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2006-03-04 18:16:49 +0000
committerHisham Muhammad <hisham@gobolinux.org>2006-03-04 18:16:49 +0000
commitd6231bab89d634da5564491196b7c478db038505 (patch)
treebfc0bf00b138763eb41132fd27a8f389a78bf3a4 /Object.c
Initial import.
Diffstat (limited to 'Object.c')
-rw-r--r--Object.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/Object.c b/Object.c
new file mode 100644
index 00000000..c368b9cc
--- /dev/null
+++ b/Object.c
@@ -0,0 +1,60 @@
+/*
+htop
+(C) 2004-2006 Hisham H. Muhammad
+Released under the GNU GPL, see the COPYING file
+in the source distribution for its full text.
+*/
+
+#include "Object.h"
+#include "RichString.h"
+#include "CRT.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdbool.h>
+
+#include "debug.h"
+
+/*{
+typedef struct Object_ Object;
+
+typedef void(*Object_Display)(Object*, RichString*);
+typedef int(*Object_Compare)(const Object*, const Object*);
+typedef void(*Object_Delete)(Object*);
+
+struct Object_ {
+ char* class;
+ Object_Display display;
+ Object_Compare compare;
+ Object_Delete delete;
+};
+}*/
+
+/* private property */
+char* OBJECT_CLASS = "Object";
+
+void Object_new() {
+ Object* this;
+ this = malloc(sizeof(Object));
+ this->class = OBJECT_CLASS;
+ this->display = Object_display;
+ this->compare = Object_compare;
+ this->delete = Object_delete;
+}
+
+bool Object_instanceOf(Object* this, char* class) {
+ return this->class == class;
+}
+
+void Object_delete(Object* this) {
+ free(this);
+}
+
+void Object_display(Object* this, RichString* out) {
+ char objAddress[50];
+ sprintf(objAddress, "%s @ %p", this->class, (void*) this);
+ RichString_write(out, CRT_colors[DEFAULT_COLOR], objAddress);
+}
+
+int Object_compare(const Object* this, const Object* o) {
+ return (this - o);
+}

© 2014-2024 Faster IT GmbH | imprint | privacy policy