123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #include <iostream>
- #include <unistd.h>
- #include <sys/socket.h>
- #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;
- }
|