Advertisement
shiftry123

lab3 states.c

May 2nd, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.74 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "states.h"
  4.  
  5. //funkcja losujaca liczbe calkowita z zakresu od 'from' do 'to'
  6. int random(int from, int to) {
  7.     return rand() % (to - from) + from;
  8. }
  9.  
  10. //funkcja stanu czekania na polaczenie
  11. int open_connection_state(void) {
  12.     //zmienna statyczna przechowujaca informacje o tym ile lini pliku zostalo juz odczytanych
  13.     static int lines = 0;
  14.     //plik z zerami i jedynkami symulujacy czy polaczenie ma zostac otwarte czy nie
  15.     FILE* internet;
  16.     //otwarcie pliku
  17.     fopen_s(&internet, "internet.txt", "r");
  18.  
  19.     //bufor do oczytu pliku
  20.     char flag[10];
  21.  
  22.     //pominiecie 'lines' lini
  23.     for (int i = 0; i < lines; i++) {
  24.         fgets(&flag, 10, internet);
  25.         i++;
  26.     }
  27.  
  28.     //odczytanie  pliku
  29.     fgets(&flag, 10, internet);
  30.     lines++;
  31.  
  32.     //jesli odczytano 1 to polaczenie otwarte jesli nie to nie otwarte
  33.     if (flag[0] == '1') {
  34.         fclose(internet);
  35.         return done;
  36.     }
  37.     else {
  38.         fclose(internet);
  39.         return error;
  40.     }
  41. }
  42.  
  43. //funkcja stanu czekania na zadanie
  44. int wait_for_request_state(void) {
  45.     int action = random(0, 100);
  46.     if (action % 10 == 0) return request_available;
  47.     else return no_request;
  48. }
  49.  
  50. //funkcja stanu odbierania zadania
  51. int get_request_state(void) {
  52.     int action = random(0, 100);
  53.     if (action % 3 == 0) return done;
  54.     else return error;
  55. }
  56.  
  57. //funkcja stanu szukania funkcji obslugujacej zadanie
  58. int find_handler_state(void) {
  59.     int action = random(0, 100);
  60.     if (action % 5 == 0) return handler_available;
  61.     else return no_handler;
  62. }
  63.  
  64. //funkcja stanu wysylajaca odpowiedz
  65. int send_response_state(void) {
  66.     return done;
  67. }
  68.  
  69. //funkcja stanu wysylajaca blad
  70. int send_error_state(void) {
  71.     return done;
  72. }
  73.  
  74. //funkcja stanu zamykajaca polaczenie
  75. int close_connection_state(void) {
  76.     return done;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement