#include "extra.h"


int main(int argc, char *argv[]) {

	int running=1;
	struct my_msg_st data;
	//struct my_msg_st datarec;
	int msgid;
	char buffer[BUFSIZ];
	enum list{tobacco=1, matches=2, paper=3};
	long int msg_to_receive = 0;
	BOOLEAN send= TRUE;

	msgid = msgget((key_t)1234, 0666 | IPC_CREAT);
//	msgid = msgget(IPC_PRIVATE, O_RDRW);
	if(msgid == -1 ) {
		fprintf(stderr, "msgget failed with error: %d\n", errno);
		exit (EXIT_FAILURE);
	}


	if(strcmp(argv[1], "paper")==0) {
		data.type = 3;
	}else if(strcmp(argv[1], "matches")==0) {
		data.type = 2;
	}else if(strcmp(argv[1], "tobacco")==0) {
		data.type = 1;
	}

	msg_to_receive = data.type;

	while(1) {
		//printf("Enter an ingredient (tobacco, matches, paper): ");
		//fgets(buffer, BUFSIZ, stdin);
	//	msg_to_receive = atoi(argv[1]);

		strcpy(data.some_text, argv[1]);


		if(send==TRUE) {

			if(msgsnd(msgid, (void *)&data, MAX_TEXT,  0)==-1) {
				fprintf(stderr, "msgsnd failed\n");
				exit(EXIT_FAILURE);
			}



			send = FALSE;

		} else if (send == FALSE) {

			if(msgrcv(msgid, (void *)&data, BUFSIZ, msg_to_receive, 0)==-1) {
				fprintf(stderr, "msgrcv failed with error: %d, type = %d\n", errno, msg_to_receive);
				exit (EXIT_FAILURE);
			}

			printf("the sender received %d %d", data.ingr1, data.ingr2);
			if(strcmp(ingredients[data.ingr1], argv[1])==0) {
				//already have
			}else if(strcmp(ingredients[data.ingr2], argv[1])==0) {
				//already have
			}else  {
				//SWEET
				printf("I light up a cigarette\n");
				//exit(EXIT_SUCCESS);
				//send = TRUE;

			}
		//	exit(EXIT_SUCCESS);



	 	}


	}
	exit(EXIT_SUCCESS);
}


