Fix: Resolving Git Merge Conflicts #253

Merged
j.kropff merged 69 commits from chore/ui-checkstyle-fixes into main 2026-04-11 15:10:58 +02:00
4 changed files with 68 additions and 57 deletions
Showing only changes of commit 6f80501ea2 - Show all commits
@@ -1,5 +1,6 @@
package ch.unibas.dmi.dbis.cs108.casono.client.chat; package ch.unibas.dmi.dbis.cs108.casono.client.chat;
import ch.unibas.dmi.dbis.cs108.casono.client.network.ChatClient;
import ch.unibas.dmi.dbis.cs108.casono.client.network.ClientService; import ch.unibas.dmi.dbis.cs108.casono.client.network.ClientService;
import java.util.List; import java.util.List;
@@ -11,6 +12,7 @@ public class ChatController {
private final String username; private final String username;
private final ClientService clientService; private final ClientService clientService;
private final ChatClient chatClient;
private ChatModel chatModel; private ChatModel chatModel;
@@ -19,6 +21,7 @@ public class ChatController {
public ChatController(String username, ClientService clientService) { public ChatController(String username, ClientService clientService) {
this.username = username; this.username = username;
this.clientService = clientService; this.clientService = clientService;
this.chatClient = new ChatClient(this.clientService);
} }
public void createChat(int game_id) { public void createChat(int game_id) {
@@ -42,7 +45,7 @@ public class ChatController {
* method to get all messages from the server * method to get all messages from the server
*/ */
public Boolean receiveMessage() { public Boolean receiveMessage() {
List<Message> newMessages = clientService.getMessages(); List<Message> newMessages = chatClient.getMessages();
if (!newMessages.isEmpty()) { if (!newMessages.isEmpty()) {
for (Message msg : newMessages) { for (Message msg : newMessages) {
chatModel.addMessage(msg); chatModel.addMessage(msg);
@@ -56,7 +59,7 @@ public class ChatController {
* @param message * @param message
*/ */
public void onSendToNetwork(Message message) { public void onSendToNetwork(Message message) {
clientService.sendMessage(message); chatClient.sendMessage(message);
} }
} }
@@ -0,0 +1,45 @@
package ch.unibas.dmi.dbis.cs108.casono.client.network;
import ch.unibas.dmi.dbis.cs108.casono.client.chat.Message;
import java.util.ArrayList;
import java.util.List;
public class ChatClient {
private ClientService clientService;
public ChatClient(ClientService clientService) {
this.clientService = clientService;
}
/**
* sends a message to the server
* @param message
*/
public void sendMessage(Message message) {
String request = "SEND_MESSAGE " + message.toArgsString();
clientService.processCommand(request);
}
/**
* Send a Request to get the number of Messages currently in the Queue for the client.
* Then proceeds, if needed, to get the messages by sending
*/
public List<Message> getMessages() {
String countStr = clientService.processCommand("GET_MESSAGE_COUNT");
int count = Integer.parseInt(countStr);
System.out.println("Got " + count + " messages");
List<Message> messages = new ArrayList<>();
for (int i = 0; i < count; i++) {
String message = clientService.processCommand("GET_NEXT_MESSAGE");
if (message != null) {
Message message1 = Message.toMessage(message);
messages.add(message1);
}
}
return messages;
}
}
@@ -1,12 +1,10 @@
package ch.unibas.dmi.dbis.cs108.casono.client.network; package ch.unibas.dmi.dbis.cs108.casono.client.network;
import ch.unibas.dmi.dbis.cs108.casono.server.network.NetworkManager;
import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.RawPacket; import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.RawPacket;
import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.TcpTransport; import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.TcpTransport;
import java.net.Socket; import java.net.Socket;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
@@ -16,8 +14,6 @@ import java.io.IOException;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import ch.unibas.dmi.dbis.cs108.casono.client.chat.Message;
/** /**
* Responsible for the transferring of the data from the Client to the Server and the other way around * Responsible for the transferring of the data from the Client to the Server and the other way around
@@ -54,56 +50,6 @@ public class ClientService {
executor = Executors.newSingleThreadExecutor(); executor = Executors.newSingleThreadExecutor();
} }
/**
* Sends a ping to the server
* Returns nothing, the method processMessage() already handles the cases "+OK" or "-ERROR"
*/
public void ping() {
processMessage("PING");
}
/**
* Sends a login request to the server to create a new user on the server
* @param username
* @return - a new username, if the same username is already used by someone else
*/
public String login(String username) {
String msg = "LOGIN USERNAME=" + username;
return processMessage(msg);
}
/**
* Send a Request to get the number of Messages currently in the Queue for the client.
* Then proceeds, if needed, to get the messages by sending
*/
public List<Message> getMessages() {
String countStr = processMessage("GET_MESSAGE_COUNT");
int count = Integer.parseInt(countStr);
System.out.println("Got " + count + " messages");
List<Message> messages = new ArrayList<>();
for (int i = 0; i < count; i++) {
String message = processMessage("GET_NEXT_MESSAGE");
if (message != null) {
Message message1 = Message.toMessage(message);
messages.add(message1);
}
}
return messages;
}
/**
* Sends a Request to the Server containing all relevant information of the message the client wrote.
* @param message
* @return
*/
public void sendMessage(Message message) {
String request = "SEND_MESSAGE " + message.toArgsString();
processMessage(request);
}
/** /**
* Sends the Requests to the server and waits for the response * Sends the Requests to the server and waits for the response
@@ -114,7 +60,7 @@ public class ClientService {
* (+OK will not be returned) * (+OK will not be returned)
*/ */
private String processMessage(String message) { protected String processCommand(String message) {
AtomicReference<String> response = new AtomicReference<>(); AtomicReference<String> response = new AtomicReference<>();
sendRequest(() -> { sendRequest(() -> {
try { try {
@@ -0,0 +1,17 @@
package ch.unibas.dmi.dbis.cs108.casono.client.network;
public class CoreClient {
private final ClientService clientService;
public CoreClient(ClientService clientservice) {
this.clientService = clientservice;
}
public void ping() {
clientService.processCommand("PING");
}
public void login(String user) {
clientService.processCommand("LOGIN USERNAME=" + user);
}
}