Add class diagram for Server, Socket, Client, HTTP_Request, and HTTP_Response
This commit is contained in:
parent
708a4ee25f
commit
fc5e59689f
66
docs/ClassDiagram.mmd
Normal file
66
docs/ClassDiagram.mmd
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
classDiagram
|
||||||
|
direction TB
|
||||||
|
|
||||||
|
class Server {
|
||||||
|
+run()
|
||||||
|
+handle_new_connection(int)
|
||||||
|
+handle_client_event(int, int)
|
||||||
|
+setup_listeners()
|
||||||
|
+add_to_epoll(int)
|
||||||
|
+remove_from_epoll(int)
|
||||||
|
+std::vector<unique_ptr<Socket>> listeners_
|
||||||
|
+std::unordered_map<int, unique_ptr<Client>> clients_
|
||||||
|
+int epoll_fd_
|
||||||
|
+const Configuration* config_
|
||||||
|
}
|
||||||
|
|
||||||
|
class Socket {
|
||||||
|
+Socket(int)
|
||||||
|
+Socket()
|
||||||
|
+~Socket()
|
||||||
|
+bind(const sockaddr_in&) int
|
||||||
|
+listen(int) int
|
||||||
|
+accept() Socket
|
||||||
|
+recv(void*, size_t) ssize_t
|
||||||
|
+send(const void*, size_t) ssize_t
|
||||||
|
+set_non_blocking()
|
||||||
|
-fd_ int
|
||||||
|
}
|
||||||
|
|
||||||
|
class Client {
|
||||||
|
+Client(unique_ptr<Socket>)
|
||||||
|
+~Client()
|
||||||
|
+process_event(int)
|
||||||
|
+handle_read()
|
||||||
|
+handle_write()
|
||||||
|
+is_complete() bool
|
||||||
|
+unique_ptr<Socket> socket_
|
||||||
|
+unique_ptr<HTTP_Request> request_
|
||||||
|
+unique_ptr<HTTP_Response> response_
|
||||||
|
+const Server& server_
|
||||||
|
}
|
||||||
|
|
||||||
|
class HTTP_Request {
|
||||||
|
+parse_data(const std::string&)
|
||||||
|
+is_complete() bool
|
||||||
|
-method_ string
|
||||||
|
-uri_ string
|
||||||
|
-headers_ map<string, string>
|
||||||
|
}
|
||||||
|
|
||||||
|
class HTTP_Response {
|
||||||
|
+build_from_request(const HTTP_Request&)
|
||||||
|
+to_string() string
|
||||||
|
-status_ int
|
||||||
|
-body_ string
|
||||||
|
-headers_ map<string, string>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Server "1" o-- "1..*" Socket: listens on
|
||||||
|
Server "1" o-- "0..*" Client: manages
|
||||||
|
Server "1" -- "1" Configuration: knows about
|
||||||
|
Client "1" *-- "1" Socket: owns
|
||||||
|
Client "1" *-- "1" HTTP_Request: owns
|
||||||
|
Client "1" *-- "1" HTTP_Response: owns
|
||||||
|
Client "1" -- "1" Server: reports to
|
||||||
Loading…
Reference in New Issue
Block a user