From d6231bab89d634da5564491196b7c478db038505 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Sat, 4 Mar 2006 18:16:49 +0000 Subject: Initial import. --- Object.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Object.c (limited to 'Object.c') 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 +#include +#include + +#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); +} -- cgit v1.2.3