#include #include #include #include "String.h" #include "Types.h" String::String() : length(0) { data[0] = '\0'; } String::operator const char*() const { return data; } String& String::append(char c) { if(length + 1 < LENGTH) { data[length++] = c; data[length] = '\0'; } return *this; } String& String::append(const char* str) { for(uint i = 0; length + 1 < LENGTH && str[i] != '\0'; length++, i++) { data[length] = str[i]; } data[length] = '\0'; return *this; } bool String::receiveFromSocket(int socket) { ssize_t result = recv(socket, data, LENGTH, MSG_DONTWAIT); if(result == -1) { perror("cannot receive from socket"); return true; } else if(result == 0) { return true; } data[result - 1] = '\0'; length = result - 1; return false; } uint String::getLength() const { return length; }