]> git.vomp.tv Git - vompclient.git/blob - src/vdrresponsepacket.h
Type change: UCHAR -> u1
[vompclient.git] / src / vdrresponsepacket.h
1 /*
2     Copyright 2007 Chris Tallon
3
4     This file is part of VOMP.
5
6     VOMP is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     VOMP is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with VOMP; if not, write to the Free Software
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19 */
20
21 #ifndef VDRRESPONSEPACKET_H
22 #define VDRRESPONSEPACKET_H
23
24 #ifndef WIN32
25 #include <arpa/inet.h>
26 #else
27
28 #endif
29
30 #include <stdlib.h>
31 #include <string.h>
32 #include <string>
33
34 #include "defines.h"
35
36 class VDR_ResponsePacket
37 {
38   public:
39     VDR_ResponsePacket();
40     ~VDR_ResponsePacket();
41     
42     void setResponse(u4 requestID, u1* packet, u4 packetLength);
43     void setStream(u4 streamID, u4 flag, u1* packet, u4 packetLength, u4 tchannelID);
44      
45     bool noResponse() { return (userData == NULL); };
46     int  serverError();
47     
48     u4 getUserDataLength() { return userDataLength; }
49     u4 getChannelID() { return channelID; }
50     u4 getRequestID() { return requestID; }
51     u4 getStreamID() { return streamID; }
52     u4 getFlag() { return flag; }
53     
54     char*  extractString();
55     std::string  extractStdString();
56     u1  extractu1();
57     u4  extractu4();
58     u8 extractu8();
59     long   extractLONG();
60         double extractdouble();
61
62     bool end();
63
64     void dumpUD();
65
66     // If you call this, the memory becomes yours. Free with free()
67     u1* getUserData();
68
69   private:
70     u1* userData;
71     u4 userDataLength;
72     u4 packetPos;
73     
74     u4 channelID;
75     
76     u4 requestID;
77     u4 streamID;
78     
79     u4 flag; // stream only
80         
81     bool ownBlock;
82 };
83
84 #endif
85