blob: 202df5930f5774a0131127ae6a0d77c5d58303aa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
/*
* File: connectionmanager.h
* Author: savop
*
* Created on 21. August 2009, 18:35
*/
#ifndef _CONNECTIONMANAGER_H
#define _CONNECTIONMANAGER_H
#include "upnpservice.h"
enum eConnectionStatus {
OK,
CONTENT_FORMAT_MISMATCH,
INSUFFICIENT_BANDWIDTH,
UNRELIABLE_CHANNEL,
UNKNOWN
};
enum eDirection {
OUTPUT,
INPUT
};
class cVirtualConnection : public cListObject {
friend class cConnectionManager;
private:
cString mRemoteProtocolInfo;
cString mRemoteConnectionManager;
eDirection mDirection;
int mRemoteConnectionID;
int mConnectionID;
int mAVTransportID;
const int mRcsID;
eConnectionStatus mStatus;
cVirtualConnection();
static const char* getStatusString(eConnectionStatus Status);
static const char* getDirectionString(eDirection Direction);
static int getDirection(const char* Direction);
static int getConnectionStatus(const char* ConnectionStatus);
};
class cConnectionManager : public cUpnpService {
public:
cConnectionManager(UpnpDevice_Handle DeviceHandle);
virtual ~cConnectionManager();
virtual int execute(Upnp_Action_Request* Request);
virtual int subscribe(Upnp_Subscription_Request* Request);
bool setProtocolInfo(const char* ProtocolInfo);
private:
virtual void setError(Upnp_Action_Request* Request, int Error);
int getProtocolInfo(Upnp_Action_Request* Request);
int getCurrentConnectionIDs(Upnp_Action_Request* Request);
int getCurrentConnectionInfo(Upnp_Action_Request* Request);
int prepareForConnection(Upnp_Action_Request* Request);
int connectionComplete(Upnp_Action_Request* Request);
cVirtualConnection* createVirtualConnection(const char* RemoteProtocolInfo = NULL, const char* RemoteConnectionManager = NULL, int RemoteConnectionID = -1, eDirection Direction = OUTPUT);
bool destroyVirtualConnection(int ConnectionID);
const char* getConnectionIDsCVS();
cVirtualConnection* mDefaultConnection;
cList<cVirtualConnection>* mVirtualConnections;
cString mSupportedProtocols;
};
#endif /* _CONNECTIONMANAGER_H */
|