/**
* ======================== legal notice ======================
*
* File: ConnectionPoint.h
* Created: 4. Juli 2012, 06
* Author: Geronimo
* Project: libnetworking: classes for tcp/ip sockets and http-protocol handling
*
* CMP - compound media player
*
* is a client/server mediaplayer intended to play any media from any workstation
* without the need to export or mount shares. cmps is an easy to use backend
* with a (ready to use) HTML-interface. Additionally the backend supports
* authentication via HTTP-digest authorization.
* cmpc is a client with vdr-like osd-menues.
*
* Copyright (c) 2012 Reinhard Mantey, some rights reserved!
* published under Creative Commons by-sa
* For details see http://creativecommons.org/licenses/by-sa/3.0/
*
* The cmp project's homepage is at http://projects.vdr-developer.org/projects/cmp
*
* --------------------------------------------------------------
*/
#ifndef CONNECTIONPOINT_H
#define CONNECTIONPOINT_H
#include
#include
class cConnectionPoint {
public:
cConnectionPoint(const char *NameOrIP, int Port, const char *RealName = NULL);
virtual ~cConnectionPoint();
int IOWait(long MilliSeconds = 300);
const char *HostName(void) const { return nameOrIP; }
const char *RealName(void) const { return realName ? realName : "unknown"; }
const char *ToString() const { return combined ? combined : AssembleCombined(); }
int Port(void) const { return port; }
int Socket(void) const { return sock; }
private:
char *nameOrIP;
char *realName;
mutable char *combined;
int port;
int sock;
const char *AssembleCombined(void) const;
void Close(void);
void SetSocket(int Socket) { sock = Socket; }
void SetRealName(const char *Name);
friend class cAbstractSocket;
friend class cConnectionHandler;
};
typedef std::vector ConnectionPointList;
#endif /* CONNECTIONPOINT_H */