int main(void) {
    char* topic1 = "Hello";
    int time1 = 10;
    int room1 = 1001;
    
    struct Meeting* Meeting1 = create_Meeting(time1, topic1);
    struct Room* Room1 = create_Room(room1);
    
    printf("%d\n", add_Room_Meeting(Room1, Meeting1));  // 0
    printf("%d\n", add_Room_Meeting(Room1, Meeting1));  // -1
    
    print_Meeting(find_Room_Meeting(Room1, time1));
    
    printf("%d\n", remove_Room_Meeting(Room1, Meeting1));   // 0
    printf("%d\n", remove_Room_Meeting(Room1, Meeting1));   // -1
    
    printf("%d\n", add_Room_Meeting(Room1, Meeting1));  // 0
    clear_Room(Room1);
    
    print_Room(Room1);
    
    
    const char *topicA = "Whisky", *topicB = "Tango";
    const char *firstname1 = "Bo", *lastname1 = "Jackson", *phoneno1 = "123";
    const char *firstname2 = "Mike", *lastname2 = "David", *phoneno2 = "456";
    
    struct Person* person1 = create_Person(firstname1, lastname1, phoneno1);
    struct Person* person2 = create_Person(firstname2, lastname2, phoneno2);
    
    
    struct Meeting *new_Meeting1 = create_Meeting(10, topicA);
    struct Meeting *new_Meeting2 = create_Meeting(9, topicB);

    struct Ordered_container* people = OC_create_container((OC_comp_fp_t) compare_Person_lastname);
    OC_insert(people, person1);
    OC_insert(people, person2);
    struct Room* room2 = create_Room(1000);
    
    
    add_Meeting_participant(new_Meeting1, person1);
    add_Meeting_participant(new_Meeting1, person2);
    
    add_Room_Meeting(room2, new_Meeting1);
    add_Room_Meeting(room2, new_Meeting2);

    printf("\n...saveload/file...\n");
    FILE *fp = fopen("Room_savefile.txt", "w");
    save_Room(room2, fp);
    fclose(fp);
    
    fp = fopen("Room_savefile.txt", "r");
    struct Room *new_Room = load_Room(fp, people);
    print_Room(new_Room);
    
    fclose(fp);
    

}
Exemple #2
0
/* Read a Meeting's data from a file stream, create the data object and
return a pointer to it, NULL if invalid data discovered in file.
No check made for whether the Meeting already exists or not. */
struct Meeting* load_Meeting(FILE* input_file, const struct Ordered_container* people) {
	struct Meeting* newMeeting;
	int meetingTime;
	int numParticipants;
	char topicBuffer[BUFFER_SIZE];
	char lastnameBuffer[BUFFER_SIZE];
	int i;
	if (fscanf(input_file, "%d", &meetingTime) != 1) {
		return NULL;
	}
	if(SAFEFSCANF(input_file, topicBuffer) != 1) {
		return NULL;
	}
	if (fscanf(input_file, "%d", &numParticipants) != 1) {
		return NULL;
	}
	newMeeting = create_Meeting(meetingTime, topicBuffer);
	for (i = 0; i < numParticipants; i++) {
		struct Person* participant;
		if(SAFEFSCANF(input_file, lastnameBuffer) != 1
			|| !(participant = findPersonByLastname(people, lastnameBuffer))
			|| add_Meeting_participant(newMeeting, participant)) {
			destroy_Meeting(newMeeting);
			return NULL;
		}
	}
	return newMeeting;
}
Exemple #3
0
void addMeeting(struct Ordered_container* rooms) {
	int roomNum;
	int time;
	struct Room* room;
	struct Meeting* meeting;
	char topicBuffer[MAX_STRING_LENGTH];
	if ((roomNum = scanRoomNum()) == -1) {
		return;
	}
	if (!(room = findRoomByNum(rooms, &roomNum))) {
		printErrNoRoom();
		return;
	}
	if ((time = scanMeetingTime()) == -1) {
		return;
	}
	if (findMeetingByTime(get_Room_Meetings(room), &time)) {
		printErrMeetingExist();
		return;
	}
	SAFESCANF(topicBuffer);
	meeting = create_Meeting(time, topicBuffer);
	add_Room_Meeting(room, meeting);
	printf("Meeting added at %d\n", time);

}