Changeset 15 in flair-src for trunk/lib/FlairCore/src/UdtSocket.cpp


Ignore:
Timestamp:
04/08/16 15:40:57 (7 years ago)
Author:
Bayard Gildas
Message:

sources reformatted with flair-format-dir script

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/FlairCore/src/UdtSocket.cpp

    r2 r15  
    2424using std::string;
    2525
    26 namespace flair
    27 {
    28 namespace core
    29 {
     26namespace flair {
     27namespace core {
    3028
    31 UdtSocket::UdtSocket(const Object* parent,const std::string name,bool _blockOnSend,bool _blockOnReceive):ConnectedSocket(parent,name) {
    32     UDT::startup();
    33     blockOnSend=_blockOnSend;
    34     blockOnReceive=_blockOnReceive;
     29UdtSocket::UdtSocket(const Object *parent, const std::string name,
     30                     bool _blockOnSend, bool _blockOnReceive)
     31    : ConnectedSocket(parent, name) {
     32  UDT::startup();
     33  blockOnSend = _blockOnSend;
     34  blockOnReceive = _blockOnReceive;
    3535}
    3636
    37 UdtSocket::~UdtSocket(){
    38 }
     37UdtSocket::~UdtSocket() {}
    3938
    40 void UdtSocket::Listen(const unsigned int port,const std::string localAddress) {
    41     socket = UDT::socket(AF_INET, SOCK_DGRAM, 0);
     39void UdtSocket::Listen(const unsigned int port,
     40                       const std::string localAddress) {
     41  socket = UDT::socket(AF_INET, SOCK_DGRAM, 0);
    4242
    43     UDT::setsockopt(socket, 0, UDT_SNDSYN, &blockOnSend, sizeof(bool));
    44     UDT::setsockopt(socket, 0, UDT_RCVSYN, &blockOnReceive, sizeof(bool));
    45     bool reuse = true;
    46     UDT::setsockopt(socket, 0, UDT_REUSEADDR, &reuse, sizeof(bool));
     43  UDT::setsockopt(socket, 0, UDT_SNDSYN, &blockOnSend, sizeof(bool));
     44  UDT::setsockopt(socket, 0, UDT_RCVSYN, &blockOnReceive, sizeof(bool));
     45  bool reuse = true;
     46  UDT::setsockopt(socket, 0, UDT_REUSEADDR, &reuse, sizeof(bool));
    4747
    48     sockaddr_in my_addr;
    49     my_addr.sin_family = AF_INET;
    50     my_addr.sin_port = htons(port);
    51     if (localAddress=="ANY") {
    52         my_addr.sin_addr.s_addr=INADDR_ANY;
    53     } else {
    54         inet_aton(localAddress.c_str(),&(my_addr.sin_addr));
    55     }
    56     memset(&(my_addr.sin_zero), '\0', 8);
     48  sockaddr_in my_addr;
     49  my_addr.sin_family = AF_INET;
     50  my_addr.sin_port = htons(port);
     51  if (localAddress == "ANY") {
     52    my_addr.sin_addr.s_addr = INADDR_ANY;
     53  } else {
     54    inet_aton(localAddress.c_str(), &(my_addr.sin_addr));
     55  }
     56  memset(&(my_addr.sin_zero), '\0', 8);
    5757
    58     if (UDT::ERROR == UDT::bind(socket, (sockaddr*)&my_addr, sizeof(my_addr))) {
    59       Err("bind, %s\n",UDT::getlasterror().getErrorMessage());
    60     }
     58  if (UDT::ERROR == UDT::bind(socket, (sockaddr *)&my_addr, sizeof(my_addr))) {
     59    Err("bind, %s\n", UDT::getlasterror().getErrorMessage());
     60  }
    6161
    62     UDT::listen(socket, 1);
     62  UDT::listen(socket, 1);
    6363}
    6464
    6565UdtSocket *UdtSocket::Accept(Time timeout) {
    66     // TIMEOUT UNSUPPORTED!!
    67     UdtSocket *acceptedSocket=new UdtSocket(this->Parent(),this->ObjectName());
    68     acceptedSocket->blockOnSend=this->blockOnSend;
    69     acceptedSocket->blockOnReceive=this->blockOnReceive;
     66  // TIMEOUT UNSUPPORTED!!
     67  UdtSocket *acceptedSocket = new UdtSocket(this->Parent(), this->ObjectName());
     68  acceptedSocket->blockOnSend = this->blockOnSend;
     69  acceptedSocket->blockOnReceive = this->blockOnReceive;
    7070
    71     sockaddr_in their_addr;
    72     int namelen = sizeof(their_addr);
     71  sockaddr_in their_addr;
     72  int namelen = sizeof(their_addr);
    7373
    74     if ((acceptedSocket->socket = UDT::accept(socket, (sockaddr*)&their_addr, &namelen))==UDT::INVALID_SOCK) {
    75         Err("accept: %s, code %i\n",UDT::getlasterror().getErrorMessage(),UDT::getlasterror().getErrorCode());
    76     }
     74  if ((acceptedSocket->socket = UDT::accept(socket, (sockaddr *)&their_addr,
     75                                            &namelen)) == UDT::INVALID_SOCK) {
     76    Err("accept: %s, code %i\n", UDT::getlasterror().getErrorMessage(),
     77        UDT::getlasterror().getErrorCode());
     78  }
    7779
    78     return acceptedSocket;
     80  return acceptedSocket;
    7981}
    8082
    81 bool UdtSocket::Connect(const unsigned int port,const std::string distantAddress,Time timeout) {
    82     bool success=true;
    83     socket=UDT::socket(AF_INET, SOCK_DGRAM, 0);
     83bool UdtSocket::Connect(const unsigned int port,
     84                        const std::string distantAddress, Time timeout) {
     85  bool success = true;
     86  socket = UDT::socket(AF_INET, SOCK_DGRAM, 0);
    8487
    85     UDT::setsockopt(socket, 0, UDT_SNDSYN, &blockOnSend, sizeof(bool));
    86     UDT::setsockopt(socket, 0, UDT_RCVSYN, &blockOnReceive, sizeof(bool));
    87     bool reuse = true;
    88     UDT::setsockopt(socket, 0, UDT_REUSEADDR, &reuse, sizeof(bool));
     88  UDT::setsockopt(socket, 0, UDT_SNDSYN, &blockOnSend, sizeof(bool));
     89  UDT::setsockopt(socket, 0, UDT_RCVSYN, &blockOnReceive, sizeof(bool));
     90  bool reuse = true;
     91  UDT::setsockopt(socket, 0, UDT_REUSEADDR, &reuse, sizeof(bool));
    8992
    90     sockaddr_in serv_addr;
    91     serv_addr.sin_family = AF_INET;
    92     serv_addr.sin_port = htons(short(port));
    93     if (inet_pton(AF_INET, distantAddress.c_str(), &serv_addr.sin_addr) <= 0) {
    94         printf("incorrect network address.");
    95         success=false;
    96     }
    97     memset(&(serv_addr.sin_zero), '\0', 8);
     93  sockaddr_in serv_addr;
     94  serv_addr.sin_family = AF_INET;
     95  serv_addr.sin_port = htons(short(port));
     96  if (inet_pton(AF_INET, distantAddress.c_str(), &serv_addr.sin_addr) <= 0) {
     97    printf("incorrect network address.");
     98    success = false;
     99  }
     100  memset(&(serv_addr.sin_zero), '\0', 8);
    98101
    99     if (UDT::ERROR == UDT::connect(socket, (sockaddr*)&serv_addr, sizeof(serv_addr))) {
    100         success=false;
    101     }
    102     if (!success) {
    103         UDT::close(socket);
    104         return false;
    105     } else return true;
     102  if (UDT::ERROR ==
     103      UDT::connect(socket, (sockaddr *)&serv_addr, sizeof(serv_addr))) {
     104    success = false;
     105  }
     106  if (!success) {
     107    UDT::close(socket);
     108    return false;
     109  } else
     110    return true;
    106111}
    107112
    108 ssize_t UdtSocket::SendMessage(const char* buffer,size_t bufferSize,Time timeout){
    109     int udtTimeout=timeout;
    110     if (blockOnSend) {
    111         if(UDT::setsockopt(socket, 0, UDT_SNDTIMEO, &udtTimeout, sizeof(udtTimeout))!=0) Err("error UDT_SNDTIMEO %s\n", UDT::getlasterror().getErrorMessage());
    112     }
    113     ssize_t bytesSent=UDT::sendmsg(socket, buffer, bufferSize, -1,true);
     113ssize_t UdtSocket::SendMessage(const char *buffer, size_t bufferSize,
     114                               Time timeout) {
     115  int udtTimeout = timeout;
     116  if (blockOnSend) {
     117    if (UDT::setsockopt(socket, 0, UDT_SNDTIMEO, &udtTimeout,
     118                        sizeof(udtTimeout)) != 0)
     119      Err("error UDT_SNDTIMEO %s\n", UDT::getlasterror().getErrorMessage());
     120  }
     121  ssize_t bytesSent = UDT::sendmsg(socket, buffer, bufferSize, -1, true);
    114122
    115     return bytesSent;
     123  return bytesSent;
    116124}
    117125
    118 ssize_t UdtSocket::RecvMessage(char* buffer,size_t bufferSize,Time timeout){
    119     int udtTimeout=timeout;
    120     if (blockOnReceive) {
    121         if(UDT::setsockopt(socket, 0, UDT_RCVTIMEO, &udtTimeout, sizeof(udtTimeout))!=0) Err("error UDT_RCVTIMEO %s\n", UDT::getlasterror().getErrorMessage());
    122     }
    123     ssize_t bytesRead= UDT::recvmsg(socket,buffer,bufferSize);
     126ssize_t UdtSocket::RecvMessage(char *buffer, size_t bufferSize, Time timeout) {
     127  int udtTimeout = timeout;
     128  if (blockOnReceive) {
     129    if (UDT::setsockopt(socket, 0, UDT_RCVTIMEO, &udtTimeout,
     130                        sizeof(udtTimeout)) != 0)
     131      Err("error UDT_RCVTIMEO %s\n", UDT::getlasterror().getErrorMessage());
     132  }
     133  ssize_t bytesRead = UDT::recvmsg(socket, buffer, bufferSize);
    124134
    125 /*
    126     if(bytesRead<0) {
    127         if(UDT::getlasterror().getErrorCode()==CUDTException::ECONNLOST) {
    128             connection_lost=true;
    129         }
    130     }
    131 */
    132     return bytesRead;
     135  /*
     136      if(bytesRead<0) {
     137          if(UDT::getlasterror().getErrorCode()==CUDTException::ECONNLOST) {
     138              connection_lost=true;
     139          }
     140      }
     141  */
     142  return bytesRead;
    133143}
    134144
    135 uint16_t UdtSocket::NetworkToHost16(uint16_t data) {
    136     return ntohs(data);
    137 }
     145uint16_t UdtSocket::NetworkToHost16(uint16_t data) { return ntohs(data); }
    138146
    139 uint16_t UdtSocket::HostToNetwork16(uint16_t data) {
    140     return htons(data);
    141 }
     147uint16_t UdtSocket::HostToNetwork16(uint16_t data) { return htons(data); }
    142148
    143 uint32_t UdtSocket::NetworkToHost32(uint32_t data) {
    144     return ntohl(data);
    145 }
     149uint32_t UdtSocket::NetworkToHost32(uint32_t data) { return ntohl(data); }
    146150
    147 uint32_t UdtSocket::HostToNetwork32(uint32_t data) {
    148     return htonl(data);
    149 }
     151uint32_t UdtSocket::HostToNetwork32(uint32_t data) { return htonl(data); }
    150152
    151153} // end namespace core
Note: See TracChangeset for help on using the changeset viewer.