OSDN Git Service

initial files
[iptd/iPTd_R3.git] / src / net / InternetTextMessage.cpp
1 //\r
2 // InternetTextMessage.cpp\r
3 //\r
4 \r
5 #include "net/InternetTextMessage.h"\r
6 \r
7 using namespace Raym;\r
8 \r
9 namespace NET\r
10 {\r
11 \r
12 InternetTextMessage::InternetTextMessage()\r
13 {\r
14     _header = NULL;\r
15     _body = NULL;\r
16 }\r
17 \r
18 InternetTextMessage::~InternetTextMessage()\r
19 {\r
20     if (_body != NULL)\r
21     {\r
22         _body->release();\r
23         _body = NULL;\r
24     }\r
25     if (_header != NULL)\r
26     {\r
27         _header->release();\r
28         _header = NULL;\r
29     }\r
30 }\r
31 \r
32 InternetTextMessage *InternetTextMessage::alloc()\r
33 {\r
34     return new InternetTextMessage();\r
35 }\r
36 \r
37 InternetTextMessage *InternetTextMessage::initWithContentsOfFile(const char *path)\r
38 {\r
39     /*\r
40     NSFileManager *fm = [NSFileManager defaultManager];\r
41     return [self initWithData:[fm contentsAtPath:path]];\r
42     */\r
43     release();\r
44     return NULL;\r
45 }\r
46 \r
47 InternetTextMessage *InternetTextMessage::initWithData(Data *data)\r
48 {\r
49     /*\r
50     if ((self = [super init]) != nil)\r
51     {\r
52         _header = nil;\r
53         _body = nil;\r
54 \r
55         char *tmp = "\r\n\r\n";\r
56         Data *crlfcrlf = [Data dataWithBytes:tmp length:4];\r
57         NSRange r = {0, [data length]};\r
58         r = [data rangeOfData:crlfcrlf options:0 range:r];\r
59         if (r.location != NSNotFound)\r
60         {\r
61             NSRange rh = {0, r.location + 4};\r
62             Data *dh = [data subdataWithRange:rh];\r
63             _header = [[InternetTextMessageHeader alloc] initWithData:dh];\r
64             NSRange rb = {r.location + 4, ([data length] - (r.location + 4))};\r
65             Data *db = [data subdataWithRange:rb];\r
66             _body = [[InternetTextMessageBody alloc] initWithData:db];\r
67         }\r
68         else\r
69         {\r
70             [self release];\r
71             self = nil;\r
72         }\r
73     }\r
74     */\r
75     release();\r
76     return NULL;\r
77 }\r
78 \r
79 InternetTextMessage *InternetTextMessage::initWithHeaderAndBody(InternetTextMessageHeader *header, InternetTextMessageBody *body)\r
80 {\r
81     if (header != NULL)\r
82     {\r
83         _header = header->retain();\r
84         if (body != NULL)\r
85         {\r
86             _body = body->retain();\r
87         }\r
88         return this;\r
89     }\r
90 \r
91     release();\r
92     return NULL;\r
93 }\r
94 \r
95 InternetTextMessage *InternetTextMessage::retain()\r
96 {\r
97     Object::retain();\r
98     return this;\r
99 }\r
100 \r
101 InternetTextMessage *InternetTextMessage::autorelease()\r
102 {\r
103     Object::autorelease();\r
104     return this;\r
105 }\r
106 \r
107 InternetTextMessageHeader *InternetTextMessage::header()\r
108 {\r
109     return _header;\r
110 }\r
111 \r
112 InternetTextMessageBody *InternetTextMessage::body()\r
113 {\r
114     return _body;\r
115 }\r
116 \r
117 Data *InternetTextMessage::data()\r
118 {\r
119     /*\r
120     NSMutableData *result = [NSMutableData dataWithData:[_header data]];\r
121     if ([_body data])\r
122     {\r
123         [result appendData:[_body data]];\r
124     }\r
125     else\r
126     {\r
127         [result appendData:[[_body body] dataUsingEncoding:[_header encoding]]];\r
128     }\r
129     */\r
130     return NULL;\r
131 }\r
132 \r
133 const char *InternetTextMessage::className()\r
134 {\r
135     return "NET::InternetTextMessage";\r
136 }\r
137 \r
138 } // NET\r