Drobné programy (C, C++, C#, ...)
Detail souboru
Zdrojový kód
/*
* file: client.h - Client module
* project: BSD Sockets (IPK)
* By Kamil Dudka, xdudka00
* mailto: xdudka00@gmail.com
*/
#ifndef CLIENT_H
#define CLIENT_H
#include <string>
#include "netio.h"
/*
* Generic request to server
*/
class Request {
public:
Request (): port(0) { }
void setPort (char *);
const char *getServer () { return server.c_str(); }
unsigned getPort () { return port; }
class ErrBadPort { };
protected:
std::string server;
unsigned port;
};
/*
* Connection to server
*/
class Connection {
public:
Connection (Request &); // Connect to server
~Connection (); // Disconnect from server
Connection & operator<< (const char *); // Send plain text to server
Connection & operator<< (std::string &str) { return operator<< (str.c_str ()); }
Connection & operator>> (std::string &); // Read 1 line from server
class ErrHandled {};
class ErrInit {};
private:
TSocket socket;
PNetLine pNL;
};
/*
* Request for data records
*/
class DataRequest: public Request {
public:
void readFromCmd (int argc, char *argv[]); // Read DataRq from cmd-line
void sendRequest (Connection &); // Send request to server
class ErrArgMissing { };
class ErrBadArg { };
class ErrBadField { };
class ErrNothingFound { };
class ErrNothingToDisplay { };
class PrintHelp { };
private:
std::string fields;
std::string name;
std::string surname;
std::string login;
std::string faculty;
void setFields (char *);
// Utility for duplicity checking
void duplCheck (bool &dest) const {
if (dest)
throw ErrBadArg ();
dest = true;
}
};
#endif