Ejemplo n.º 1
0
static void delete_record( struct Ordered_container* lib_title, struct Ordered_container* lib_ID, struct Ordered_container* catalog )
{
    struct Record* rec_to_remove = find_record_by_title( lib_title );
    
    if ( rec_to_remove )
    {
        const char* title;
        int ID ;
        
        /* check to see if Record is in catalog 
           if so throw and error and return */
        if ( OC_apply_if_arg( catalog, (OC_apply_if_arg_fp_t) is_Collection_member_present, rec_to_remove ) )
        {
            print_error( "Cannot delete a record that is a member of a collection!\n" ) ;
            return ;
        }
        
        ID = get_Record_ID( rec_to_remove );
        title = get_Record_title( rec_to_remove );
        
        /* remove from both libs */
        if ( find_remove( lib_title, comp_Record_to_title, (void*)title ) )
        {
            find_remove( lib_ID, comp_Record_to_ID, &ID );
        }
        else
        {
            print_error( "No record with that title!\n" );
        }
        
        printf("Record %d %s deleted\n", ID, title );
        
        destroy_Record( rec_to_remove );
    }
}
Ejemplo n.º 2
0
int main(void)
{
    //OC_comp_fp_t f_ptr;
    struct Ordered_container* container_ptr = OC_create_container(&thing_comp_f);

    OC_insert(container_ptr, make_thing(5));
    OC_insert(container_ptr, make_thing(3));
    OC_insert(container_ptr, make_thing(4));
    OC_insert(container_ptr, make_thing(1));
    OC_insert(container_ptr, make_thing(2));
    OC_insert(container_ptr, make_thing(99));
    OC_insert(container_ptr, make_thing(-2));

    for (int i = 0; i < 7; ++i)
    {
        printf("Element %d: %d\n", i, *(int*)(*(container_ptr->array + i)));
    }

    printf("size = %d\n", OC_get_size(container_ptr));
    printf("Empty = %d\n", OC_empty(container_ptr));

    int search_num = 5;
    int* data_ptr = OC_find_item(container_ptr, &search_num);
    printf("Found data: %d\n", *(int*)OC_get_data_ptr(data_ptr));
    search_num = 99;
    printf("Apply_if_arg returned: %d\n", 
           OC_apply_if_arg(container_ptr, (OC_apply_if_arg_fp_t)apply_if_arg_tester, &search_num));
    data_ptr = OC_find_item_arg(container_ptr, &search_num, alt_thing_comp_f);
    printf("Found data: %d\n", *(int*)OC_get_data_ptr(data_ptr));

    printf("Things: %d\n", g_num_things);
    OC_apply(container_ptr, &delete_thing);
    OC_clear(container_ptr);
    printf("Things: %d\n", g_num_things);
    printf("size = %d\n", OC_get_size(container_ptr));
    printf("Empty = %d\n", OC_empty(container_ptr));

    OC_destroy_container(container_ptr);

    void* test = malloc(8);

    printf("Old way %p   New Way %p\n", *(void**)test, test);

    return 0;
}
Ejemplo n.º 3
0
Archivo: p1_main.c Proyecto: syzhou/p1
void deleteIndividual(struct Ordered_container* people, struct Ordered_container* rooms) {
	char lastnameBuffer[MAX_STRING_LENGTH];
	struct Person* person;
	SAFESCANF(lastnameBuffer);
	if (!(person = findPersonByLastname(people, lastnameBuffer))) {
		printErrNoPerson();
		return;
	}
	if (OC_apply_if_arg(rooms,
			(OC_apply_if_arg_fp_t)findPersonRoomMeeting, person)) {
		readRestOfLine();
		printf("This person is a participant in a meeting!\n");
	} else {
		OC_delete_item(people, findPersonByLastname(people, lastnameBuffer));
		destroy_Person(person);
		printf("Person %s deleted\n", lastnameBuffer);
	}
}
Ejemplo n.º 4
0
int main(void)
{
    //OC_comp_fp_t f_ptr;
    struct Ordered_container* container_ptr = OC_create_container(&thing_comp_f);

    OC_insert(container_ptr, make_thing(5));
    OC_insert(container_ptr, make_thing(3));
    OC_insert(container_ptr, make_thing(4));
    OC_insert(container_ptr, make_thing(1));
    OC_insert(container_ptr, make_thing(2));
    OC_insert(container_ptr, make_thing(99));
    OC_insert(container_ptr, make_thing(-2));

    printf("size = %d\n", OC_get_size(container_ptr));
    printf("Empty = %d\n", OC_empty(container_ptr));
    Print_container(container_ptr, sizeof(int));

    int search_num = 5;
    int* data_ptr = OC_find_item(container_ptr, &search_num);
    printf("Found data: %d\n", *(int*)OC_get_data_ptr(data_ptr));
    search_num = 99;
    printf("Apply_if_arg returned: %d\n", 
           OC_apply_if_arg(container_ptr, (OC_apply_if_arg_fp_t)apply_if_arg_tester, &search_num));
    data_ptr = OC_find_item_arg(container_ptr, &search_num, alt_thing_comp_f);
    printf("Found data: %d\n", *(int*)OC_get_data_ptr(data_ptr));

    printf("Things: %d\n", g_num_things);
    OC_apply(container_ptr, &delete_thing);
    OC_clear(container_ptr);
    printf("Things: %d\n", g_num_things);
    printf("size = %d\n", OC_get_size(container_ptr));
    printf("Empty = %d\n", OC_empty(container_ptr));
    Print_container(container_ptr, sizeof(int));

    OC_destroy_container(container_ptr);

    return 0;
}