Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "states.h"
- //funkcja losujaca liczbe calkowita z zakresu od 'from' do 'to'
- int random(int from, int to) {
- return rand() % (to - from) + from;
- }
- //funkcja stanu czekania na polaczenie
- int open_connection_state(void) {
- //zmienna statyczna przechowujaca informacje o tym ile lini pliku zostalo juz odczytanych
- static int lines = 0;
- //plik z zerami i jedynkami symulujacy czy polaczenie ma zostac otwarte czy nie
- FILE* internet;
- //otwarcie pliku
- fopen_s(&internet, "internet.txt", "r");
- //bufor do oczytu pliku
- char flag[10];
- //pominiecie 'lines' lini
- for (int i = 0; i < lines; i++) {
- fgets(&flag, 10, internet);
- i++;
- }
- //odczytanie pliku
- fgets(&flag, 10, internet);
- lines++;
- //jesli odczytano 1 to polaczenie otwarte jesli nie to nie otwarte
- if (flag[0] == '1') {
- fclose(internet);
- return done;
- }
- else {
- fclose(internet);
- return error;
- }
- }
- //funkcja stanu czekania na zadanie
- int wait_for_request_state(void) {
- int action = random(0, 100);
- if (action % 10 == 0) return request_available;
- else return no_request;
- }
- //funkcja stanu odbierania zadania
- int get_request_state(void) {
- int action = random(0, 100);
- if (action % 3 == 0) return done;
- else return error;
- }
- //funkcja stanu szukania funkcji obslugujacej zadanie
- int find_handler_state(void) {
- int action = random(0, 100);
- if (action % 5 == 0) return handler_available;
- else return no_handler;
- }
- //funkcja stanu wysylajaca odpowiedz
- int send_response_state(void) {
- return done;
- }
- //funkcja stanu wysylajaca blad
- int send_error_state(void) {
- return done;
- }
- //funkcja stanu zamykajaca polaczenie
- int close_connection_state(void) {
- return done;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement