00001 00002 #ifndef UPnpMSRR_H_ 00003 #define UPnpMSRR_H_ 00004 00005 #include <QDomDocument> 00006 #include <QString> 00007 00008 #include "httpserver.h" 00009 #include "eventing.h" 00010 00011 class UPnpMSRR; 00012 00013 typedef enum 00014 { 00015 MSRR_Unknown = 0, 00016 MSRR_GetServiceDescription = 1, 00017 MSRR_IsAuthorized = 2, 00018 MSRR_RegisterDevice = 3, 00019 MSRR_IsValidated = 4 00020 00021 } UPnpMSRRMethod; 00022 00024 // 00025 // UPnpMSRR Class Definition 00026 // 00029 00030 class UPNP_PUBLIC UPnpMSRR : public Eventing 00031 { 00032 private: 00033 00034 QString m_sServiceDescFileName; 00035 QString m_sControlUrl; 00036 00037 UPnpMSRRMethod GetMethod ( const QString &sURI ); 00038 00039 void HandleIsAuthorized ( HTTPRequest *pRequest ); 00040 void HandleRegisterDevice ( HTTPRequest *pRequest ); 00041 void HandleIsValidated ( HTTPRequest *pRequest ); 00042 00043 protected: 00044 00045 // Implement UPnpServiceImpl methods that we can 00046 00047 virtual QString GetServiceType () { return "urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1"; } 00048 virtual QString GetServiceId () { return "urn:microsoft.com:serviceId:X_MS_MediaReceiverRegistrar"; } 00049 virtual QString GetServiceControlURL() { return m_sControlUrl.mid( 1 ); } 00050 virtual QString GetServiceDescURL () { return m_sControlUrl.mid( 1 ) + "/GetServDesc"; } 00051 00052 public: 00053 UPnpMSRR( UPnpDevice *pDevice, 00054 const QString &sSharePath ); 00055 00056 virtual ~UPnpMSRR(); 00057 00058 virtual QStringList GetBasePaths(); 00059 00060 bool ProcessRequest( HTTPRequest *pRequest ); 00061 }; 00062 00063 #endif
1.6.3