Esempio n. 1
0
int main(){
	Object *o = object_ini();
	char name[] = "TestingName";
	char desc[] = "TestingDesc";
	char *nameret, *descret;
	
	object_set_name(o, name);
	object_set_desc(o, desc);
	object_set_spaceid(o, 1);
	object_set_id(o, 2);
	object_pick(o);
	nameret = object_return_name(o);
	descret = object_return_desc(o);
	if (strcmp(nameret, name) == 0)
		printf("set and return name: OK\n");
	if (strcmp(descret, desc) == 0)
		printf("set and return desc: OK\n");
	if (object_return_spaceid(o) == 1)
		printf("set and return spaceid: OK\n");
	if (object_return_id(o) == 2)
		printf("set and return id: OK\n");
	if (object_return_has(o) == TRUE)
		printf("pick and return has: OK\n");
	object_drop(o);
	if (object_return_has(o) == FALSE)
		printf("drop: OK\n");
	object_free(o);
	return 1;
}
Esempio n. 2
0
static char *sanitize_name(OBJECT *obj)
{
	SAFENAME *safe = (SAFENAME*)malloc(sizeof(SAFENAME));
	if ( !safe ) return NULL;
	safe->old = obj->name;
	char buffer[1024];
	sprintf(buffer,"%s%llX",global_sanitizeprefix.get_string(),(unsigned int64)safe);
	safe->name = object_set_name(obj,buffer);
	safe->next = safename_list;
	safename_list = safe;
	return safe->name;
}
Esempio n. 3
0
void *tobject_alloc () {
	printf("Allocating object class\n");
	Object  *obj = calloc(sizeof(TObject), 1);

	obj->initializer = (void (*)(void*))tobject_initialize;
	obj->finalizer   = (void (*)(void*))tobject_finalize;

	object_set_name(obj, "object");
	object_set_parent(obj, NULL);

	object_initialize(obj);

	TObjectClass = obj;

	return obj;
}
Esempio n. 4
0
char *gld_loadHndl::start_element_module_build_object(const Attributes &attributes){
	static wchar_t str_id[3],
			str_name[5],
			str_type[5];
	static size_t str_id_len = mbstowcs(str_id, "id", 3),
			str_name_len = mbstowcs(str_name, "name", 5),
			str_type_len = mbstowcs(str_type, "type", 5);
	char object_type[64],
		object_id[64],
		object_name[64];
	char *temp = NULL;
	char *retval = NULL;
	int first = -1,
		last = -1;
	if(attributes.getIndex((const XMLCh *) str_type) < 0){
		sprintf(errmsg, "object tag without a type in start_element_module_build_object()");
		return errmsg;
	} else {
		wcstombs(object_type, (const wchar_t *)attributes.getValue((const XMLCh *) str_type), 64);
		oclass = class_get_class_from_classname_in_module(object_type, module);
		if(oclass == NULL){
			sprintf(errmsg, "Class \"%s\" for module \"%s\"is not recognized in start_element_module_build_object()", object_type, module->name);
			return errmsg;
		} else {
			; /* recognized class type */
		}
	}
	if(attributes.getIndex((const XMLCh *) str_id) < 0){
		/* anonymous objects are legit - mh */
		last = first = -1;
	} else {
		wcstombs(object_id, (wchar_t *)attributes.getValue((const XMLCh *) str_id), 64);
		temp = strchr(object_id, '.');
		if(temp == NULL){ /* no "..", just a number*/
			first = strtol(object_id, NULL, 10);
			if(first < 0){
				sprintf(errmsg, "Invalid object id of %i in start_element_module_build_object()", first);
				return errmsg;
			} else {
				last = first;
			}
		} else {
			if(temp[0] == temp[1]){
				if(temp == object_id){ /* "..x", count */
					last = strtol(object_id+2, NULL, 10);
					if(last < 1){
						sprintf(errmsg, "Invalid object id of %i in start_element_module_build_object()", first);
						return errmsg;
					} else {
						first = -1;
					}
				} else { /* "x..y", range */
					*temp = 0;
					first = strtol(object_id, NULL, 10);
					last = strtol(temp+2, NULL, 10);
					*temp = '.';
					if(first < 0){
						output_error("XML_Load: first ID < 0 !");
						sprintf(errmsg, "Invalid object id of %i in start_element_module_build_object()", first);
						return errmsg;
					}
					if(last < 1){
						output_error("XML_Load: last ID < 1 !");
						sprintf(errmsg, "Invalid object id of %i in start_element_module_build_object()", first);
						return errmsg;
					}
					if(first >= last){
						output_error("XML_Load: first id >= last id!");
						sprintf(errmsg, "Invalid object id of %i in start_element_module_build_object()", first);
						return errmsg;
					}
				}
			} else {
				sprintf(errmsg, "Invalid ID format in start_element_module_build_object()");
				return errmsg;
			}
		}
	}
	if((retval = build_object_vect(first, last)) != 0){ /* unable to call constructors */
		sprintf(errmsg, "Unable to create objects in start_element_module_build_object()");
		return errmsg;
	} else {
		;
	}
	if(attributes.getIndex((const XMLCh *) str_name) < 0){
		strcpy(object_name, "(none)");
	} else {
		wcstombs(object_name, (wchar_t *)attributes.getValue((const XMLCh *) str_name), 64);
		object_set_name(obj, object_name);
	}
	//printf("object: type = %s, id = %s, name = %s\n", object_type, object_id, object_name);
	stack_state = OBJECT_STATE;
	return NULL;
}