Repository with the final assignment of the Operational Systems II discipline of the Computer Science course (UFRGS).
- CMake 3.2.2 (or latest)
- C++ 11 (or latest)
NOTE: The following scripts should be run on the root directory of the repository (i.e.: on /path/to/notification_feed/)
The build.sh file has three available options, desribed below.
- Run
source build.shto compile both server and client applications. The build files will be availale on/path/to/notification_feed/build - Run
source build.sh clearto delete the build files. The directory/path/to/notification_feed/buildwill be fully deleted - Run
source build.sh nuketo delete everything from the build and environment files/directories (described in the next section).
The notification_feed system has two main entities: the server, and the client applications. Next, is described the commands to start the server and to start client applications.
NOTE: The following commands will only work if you have builded the project (i.e., executed the build.sh script).
-
To start the server, run
source start_server.sh. The script will create the directory/path/to/notification_feed/server_env, where a symlink to the server binary is create and the database file created by the server is saved.- You can end the server application with the
Ctrl+Ccommand. This will have you back to the root directory of the repository.
- You can end the server application with the
-
To start a client application, run
source start_client.sh @username server gate. The script will create the directory/path/to/notification_feed/client_env, where a symlink to the client binary is created. Multiple clients can share the same binary to start its applications.- Alternatively, you can run
source start_client.shwithout the three parameters. This will lead you to the/path/to/notification_feed/client_envdirectory, where you can manually call theclientbinary with the correct parameters. - You can end the client application with
Ctrl+DorCtrl+Ccommands. Both of them will have you back to the root directory of the repository.
- Alternatively, you can run
Note that while you do not nuke the application, all the data stored in the server's database file will be imported at the server initialization of each new run. This means that the users relation (who follow who) is persistent between subsequent server runs.