|
From: <at...@us...> - 2007-08-27 16:13:06
|
Revision: 494
http://cadcdev.svn.sourceforge.net/cadcdev/?rev=494&view=rev
Author: atani
Date: 2007-08-25 01:48:53 -0700 (Sat, 25 Aug 2007)
Log Message:
-----------
various updates, added parsing of Set-Cookie header param, need to add support
for sending Cookie back to server
Modified Paths:
--------------
tiki/examples/net/httpclient/src/main.cpp
tiki/include/Tiki/net/buffer.h
tiki/include/Tiki/net/http/cookie.h
tiki/include/Tiki/net/http/request.h
tiki/include/Tiki/net/http/useragent.h
tiki/include/Tiki/net/socket.h
tiki/include/Tiki/net/tcpserversocket.h
tiki/include/Tiki/net/tcpsocket.h
tiki/include/Tiki/net/udpsocket.h
tiki/include/Tiki/net/util/base64.h
tiki/src/audio/stream.cpp
tiki/src/net/address.cpp
tiki/src/net/http/useragent.cpp
tiki/src/net/util/base64.cpp
tiki/win32/include/pch.h
tiki/win32/tiki.cbp
tiki/win32/tiki.layout
tiki/win32/tiki.sln
tiki/win32/tiki.vcproj
Added Paths:
-----------
tiki/examples/TikiTest/TikiTest.vcproj
Removed Paths:
-------------
tiki/examples/TikiTest/TikiTest_vc80.vcproj
tiki/win32/tiki_vc80.sln
tiki/win32/tiki_vs80.vcproj
Copied: tiki/examples/TikiTest/TikiTest.vcproj (from rev 493, tiki/examples/TikiTest/TikiTest_vc80.vcproj)
===================================================================
--- tiki/examples/TikiTest/TikiTest.vcproj (rev 0)
+++ tiki/examples/TikiTest/TikiTest.vcproj 2007-08-25 08:48:53 UTC (rev 494)
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="TikiTest"
+ ProjectGUID="{7B823C96-860C-4578-95BB-1087A45AF1AA}"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="$(ProjectDir)..\..\win32\include;$(ProjectDir)\..\..\include;"C:\Program Files\OpenAL 1.1 SDK\include""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="gdi32.lib kernel32.lib user32.lib opengl32.lib glu32.lib comdlg32.lib ws2_32.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="$(ProjectDir)\..\..\win32\Debug;"C:\Program Files\OpenAL 1.1 SDK\libs\Win32""
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(ProjectDir)..\..\win32\include;$(ProjectDir)\..\..\include;"C:\Program Files\OpenAL 1.1 SDK\include""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="gdi32.lib kernel32.lib user32.lib opengl32.lib glu32.lib comdlg32.lib ws2_32.lib"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="$(ProjectDir)\..\..\win32\Release;C:\Program Files\OpenAL 1.1 SDK\libs\Win32"
+ IgnoreDefaultLibraryNames=""
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\src\testobj.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\src\test.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\testobj.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\TikiTest.cpp"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
Deleted: tiki/examples/TikiTest/TikiTest_vc80.vcproj
===================================================================
--- tiki/examples/TikiTest/TikiTest_vc80.vcproj 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/examples/TikiTest/TikiTest_vc80.vcproj 2007-08-25 08:48:53 UTC (rev 494)
@@ -1,213 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="TikiTest"
- ProjectGUID="{7B823C96-860C-4578-95BB-1087A45AF1AA}"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="$(ProjectDir)..\..\win32\include;$(ProjectDir)\..\..\include;"C:\Program Files\OpenAL 1.1 SDK\include""
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="gdi32.lib kernel32.lib user32.lib opengl32.lib glu32.lib comdlg32.lib ws2_32.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories="$(ProjectDir)\..\..\win32\Debug;"C:\Program Files\OpenAL 1.1 SDK\libs\Win32""
- GenerateDebugInformation="true"
- SubSystem="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="1"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="$(ProjectDir)..\..\win32\include;$(ProjectDir)\..\..\include;"C:\Program Files\OpenAL 1.1 SDK\include""
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;"
- RuntimeLibrary="0"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="gdi32.lib kernel32.lib user32.lib opengl32.lib glu32.lib comdlg32.lib ws2_32.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories="$(ProjectDir)\..\..\win32\Release;C:\Program Files\OpenAL 1.1 SDK\libs\Win32"
- IgnoreDefaultLibraryNames=""
- GenerateDebugInformation="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\src\testobj.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\src\test.cpp"
- >
- </File>
- <File
- RelativePath=".\src\testobj.cpp"
- >
- </File>
- <File
- RelativePath=".\src\TikiTest.cpp"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
Modified: tiki/examples/net/httpclient/src/main.cpp
===================================================================
--- tiki/examples/net/httpclient/src/main.cpp 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/examples/net/httpclient/src/main.cpp 2007-08-25 08:48:53 UTC (rev 494)
@@ -31,15 +31,24 @@
Tiki::Net::init();
Hid::callbackReg( tkCallback, NULL );
- RefPtr<HttpUserAgent> useragent = new HttpUserAgent();
+ HttpUserAgent *useragent = new HttpUserAgent();
//useragent->setProxyHost("proxy.example.com");
//useragent->setProxyPort(80);
- RefPtr<Request> request = new Request();
- request->setUrl("http://www.example.com/");
+ Request *request = new Request();
+ request->setUrl("http://www.oracle.com/");
- RefPtr<Response> response = useragent->get(request);
+ Response *response = useragent->get(request);
Tiki::Debug::printf("response code: %d\n", response->getResultCode());
+ std::list<Cookie *> cookies = useragent->getCookies();
+ for(std::list<Cookie *>::iterator iter = cookies.begin();
+ iter != cookies.end();
+ ++iter) {
+ Cookie *cookie = (*iter);
+ Tiki::Debug::printf("COOKIE: %s (value->%s,path->%s,max-age->%d,domain->%s,secure->%s)\n",
+ cookie->getName().c_str(), cookie->getValue().c_str(), cookie->getPath().c_str(), cookie->getMaxAge(),
+ cookie->getDomain().c_str(), cookie->isSecure() ? "true" : "false");
+ }
std::list<std::string> content = response->getContentPartNames();
for(std::list<std::string>::iterator iter = content.begin();
@@ -51,6 +60,10 @@
Tiki::Debug::printf("%s\n", responseBuf->getData());
}
+ delete response;
+ delete request;
+ delete useragent;
+
Tiki::Net::shutdown();
return 0;
Modified: tiki/include/Tiki/net/buffer.h
===================================================================
--- tiki/include/Tiki/net/buffer.h 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/include/Tiki/net/buffer.h 2007-08-25 08:48:53 UTC (rev 494)
@@ -24,19 +24,19 @@
public:
Buffer(size_t len, std::string contentType = "application/octet-stream") :
m_contentType(contentType) {
- if(len > 0) {
- m_data = new uint8[len];
- memset(m_data, 0, len);
+ m_dataLen = len + 1;
+ if(m_dataLen > 0) {
+ m_data = new uint8[m_dataLen];
+ memset(m_data, '\0', m_dataLen);
}
- m_dataLen = len;
m_usedDataLen = 0;
}
Buffer(size_t len, uint8 *data, std::string contentType = "application/octet-stream") :
m_contentType(contentType) {
- m_data = new uint8[len];
- memset(m_data, 0, len);
- m_dataLen = len;
+ m_dataLen = len + 1;
+ m_data = new uint8[m_dataLen];
+ memset(m_data, '\0', m_dataLen);
m_usedDataLen = len;
memcpy(m_data, data, len);
}
@@ -56,9 +56,11 @@
void read(Tiki::File file) {
assert(file.isValid());
m_fileName = file.getFileName();
- m_dataLen = m_usedDataLen = file.total();
+ m_usedDataLen = file.total();
+ m_dataLen = m_usedDataLen + 1;
m_data = new uint8[m_dataLen];
- file.read(m_data, static_cast<int>(m_dataLen));
+ memset(m_data, '\0', m_dataLen);
+ file.read(m_data, static_cast<int>(m_usedDataLen));
}
void write(Tiki::File file) {
@@ -68,6 +70,7 @@
void append(Buffer *buf) {
uint8 * newbuf = new uint8[ m_dataLen + buf->getDataLen() ];
+ memset(newbuf, '\0', m_dataLen + buf->getDataLen());
if(m_data != NULL) {
memcpy(newbuf, m_data, m_usedDataLen);
}
@@ -80,7 +83,7 @@
void reset() {
if(m_data != NULL) {
- memset(m_data, 0, m_dataLen);
+ memset(m_data, '\0', m_dataLen);
}
m_usedDataLen = 0;
}
@@ -113,7 +116,7 @@
}
size_t getDataLen() const {
- return m_dataLen;
+ return m_dataLen - 1;
}
size_t getUsedDataLen() const {
@@ -121,7 +124,7 @@
}
void setData(uint8 *data, size_t len) {
- memset(m_data, 0, m_dataLen);
+ memset(m_data, '\0', m_dataLen);
if(len > m_dataLen)
{
memcpy(m_data, data, m_dataLen);
Modified: tiki/include/Tiki/net/http/cookie.h
===================================================================
--- tiki/include/Tiki/net/http/cookie.h 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/include/Tiki/net/http/cookie.h 2007-08-25 08:48:53 UTC (rev 494)
@@ -8,22 +8,17 @@
#ifndef __TIKI_NET_HTTP_COOKIE_H
#define __TIKI_NET_HTTP_COOKIE_H
-#include "Tiki/refcnt.h"
-
namespace Tiki {
namespace Net {
namespace Http {
-class Cookie : public RefCnt {
+class Cookie {
public:
- Cookie( std::string name, std::string value, std::string version,
- std::string comment = "", long maxage = 0, std::string path = "",
- bool secure = false) :
- m_name(name), m_value(value), m_version(version), m_comment(comment),
- m_maxage(maxage), m_path(path), m_secure(secure) {};
+ Cookie( std::string name, std::string value) :
+ m_name(name), m_value(value), m_maxage(0) {};
std::string getName() const {
return m_name;
@@ -37,25 +32,54 @@
return m_version;
}
+ void setVersion(std::string version) {
+ m_version = version;
+ }
+
+ std::string getDomain() const {
+ return m_domain;
+ }
+
+ void setDomain(std::string domain) {
+ m_domain = domain;
+ }
+
std::string getComment() const {
return m_comment;
}
+ void setComment(std::string comment) {
+ m_comment = comment;
+ }
+
std::string getPath() const {
return m_path;
}
+ void setPath(std::string path) {
+ m_path = path;
+ }
+
long getMaxAge() const {
return m_maxage;
}
+ void setMaxAge(long age) {
+ m_maxage = age;
+ }
+
bool isSecure() {
return m_secure;
}
+
+ void setSecure(bool secure) {
+ m_secure = secure;
+ }
private:
std::string m_name;
std::string m_value;
std::string m_version;
+ std::string m_domain;
std::string m_comment;
long m_maxage;
std::string m_path;
Modified: tiki/include/Tiki/net/http/request.h
===================================================================
--- tiki/include/Tiki/net/http/request.h 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/include/Tiki/net/http/request.h 2007-08-25 08:48:53 UTC (rev 494)
@@ -8,15 +8,15 @@
#ifndef __TIKI_NET_HTTP_REQUEST_H
#define __TIKI_NET_HTTP_REQUEST_H
-#include "Tiki/refcnt.h"
+#include "Tiki/refcnt.h"
#include "Tiki/net/util/base64.h"
namespace Tiki {
namespace Net {
-namespace Http {
-
+namespace Http {
+
using Tiki::Net::Util::Base64;
extern std::string DEFAULT_CONTENT_PART;
@@ -24,7 +24,7 @@
class Request : public RefCnt {
public:
Request();
- /*
+
virtual ~Request() {
m_params.clear();
if(!m_parts.empty()) {
@@ -36,19 +36,19 @@
}
m_parts.clear();
}
- */
-
- void setAuthentication(std::string username, std::string password) {
- std::string param = username + ":" + password;
- Buffer *inputBuf = new Buffer(param.length(), (uint8 *)param.c_str());
-
- Base64 b64;
- Buffer *result = b64.encode(inputBuf);
-
- setHeaderParam("Authorization", std::string("Basic ") + std::string((char *)result->getData()));
-
- delete inputBuf;
- delete result;
+
+
+ void setAuthentication(std::string username, std::string password) {
+ std::string param = username + ":" + password;
+ Buffer *inputBuf = new Buffer(param.length(), (uint8 *)param.c_str());
+
+ Base64 b64;
+ Buffer *result = b64.encode(inputBuf);
+
+ setHeaderParam("Authorization", std::string("Basic ") + std::string((char *)result->getData()));
+
+ delete inputBuf;
+ delete result;
}
std::string getUrl() const {
@@ -84,7 +84,7 @@
std::string m_url;
std::string m_boundaryMarker;
typedef std::map<std::string, std::string> StringStringMap;
- typedef std::map<std::string, RefPtr<Buffer> > StringBufferMap;
+ typedef std::map<std::string, Buffer * > StringBufferMap;
StringStringMap m_params;
StringBufferMap m_parts;
bool m_forcedMultiPart;
Modified: tiki/include/Tiki/net/http/useragent.h
===================================================================
--- tiki/include/Tiki/net/http/useragent.h 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/include/Tiki/net/http/useragent.h 2007-08-25 08:48:53 UTC (rev 494)
@@ -27,7 +27,7 @@
public:
HttpUserAgent();
virtual ~HttpUserAgent() {
- for(std::list< RefPtr< Cookie > >::iterator iter = m_cookies.begin();
+ for(std::list< Cookie * >::iterator iter = m_cookies.begin();
iter != m_cookies.end();
++iter) {
delete *iter;
@@ -59,7 +59,7 @@
return m_proxyPort;
}
- std::list< RefPtr< Cookie > > getCookies() const {
+ std::list< Cookie * > getCookies() const {
return m_cookies;
}
@@ -71,7 +71,7 @@
std::string m_userAgentName;
std::string m_proxyHost;
int m_proxyPort;
- std::list< RefPtr< Cookie > > m_cookies;
+ std::list< Cookie * > m_cookies;
void parseUrl(const std::string url, std::string &host, std::string &resource, int &port);
void buildRequest(const std::string host, const std::string resource, const int port,
Modified: tiki/include/Tiki/net/socket.h
===================================================================
--- tiki/include/Tiki/net/socket.h 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/include/Tiki/net/socket.h 2007-08-25 08:48:53 UTC (rev 494)
@@ -8,7 +8,7 @@
#ifndef __TIKI_NET_SOCKET_H
#define __TIKI_NET_SOCKET_H
-#include "Tiki/object.h"
+#include "Tiki/refcnt.h"
#include "Tiki/net/address.h"
#include "Tiki/net/buffer.h"
@@ -16,11 +16,12 @@
namespace Net {
-class Socket : public Object
+class Socket : public RefCnt
{
public:
Socket();
Socket(Address *address);
+ virtual ~Socket() {}
Address *getPeerAddress()
{
Modified: tiki/include/Tiki/net/tcpserversocket.h
===================================================================
--- tiki/include/Tiki/net/tcpserversocket.h 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/include/Tiki/net/tcpserversocket.h 2007-08-25 08:48:53 UTC (rev 494)
@@ -21,6 +21,7 @@
public:
TCPServerSocket() : TCPSocket() {};
TCPServerSocket(Address *address) : TCPSocket(address) {};
+ virtual ~TCPServerSocket() {}
void bind(size_t maxwaiting = 10);
Modified: tiki/include/Tiki/net/tcpsocket.h
===================================================================
--- tiki/include/Tiki/net/tcpsocket.h 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/include/Tiki/net/tcpsocket.h 2007-08-25 08:48:53 UTC (rev 494)
@@ -19,11 +19,8 @@
namespace TCP {
using Tiki::Net::Buffer;
+using Tiki::Net::Socket;
-class TCPSocket : public Tiki::Net::Socket
-{
- public:
-
#ifndef INVALID_SOCKET
#define INVALID_SOCKET -1
#endif
@@ -31,13 +28,18 @@
#ifndef SOCKET_ERROR
#define SOCKET_ERROR -1
#endif
- TCPSocket() : Socket(), m_open(false) {};
+
+class TCPSocket : public Socket
+{
+ public:
+ TCPSocket() : m_open(false) {};
TCPSocket(Address *address) : Socket(address), m_open(false) {};
#if TIKI_PLAT == TIKI_WIN32
TCPSocket(Address *address, SOCKET socket) : Socket(address), m_open(true), m_socket(socket) {setNonBlocking(false);};
#else
TCPSocket(RefPtr<Address> address, int socket) : Socket(address), m_open(true), m_socket(socket) {setNonBlocking(false);};
#endif
+ virtual ~TCPSocket() {}
virtual void send(Buffer *data);
Modified: tiki/include/Tiki/net/udpsocket.h
===================================================================
--- tiki/include/Tiki/net/udpsocket.h 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/include/Tiki/net/udpsocket.h 2007-08-25 08:48:53 UTC (rev 494)
@@ -19,6 +19,7 @@
class UDPSocket : public Tiki::Net::Socket
{
public:
+ virtual ~UDPSocket() {}
virtual void send(RefPtr<Buffer> data);
virtual void recv(RefPtr<Buffer> data);
Modified: tiki/include/Tiki/net/util/base64.h
===================================================================
--- tiki/include/Tiki/net/util/base64.h 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/include/Tiki/net/util/base64.h 2007-08-25 08:48:53 UTC (rev 494)
@@ -20,7 +20,7 @@
private:
void encodeTriplet(uint8 *input, uint8 count, uint8 *output);
- uint8 decodeQuartet(uint8 *input, uint8 *output);
+ int8 decodeQuartet(uint8 *input, uint8 *output);
size_t calcEncodeBufferSize(size_t byteCount);
size_t calcDecodeBufferSize(uint8 *input, size_t inputByteCount);
Modified: tiki/src/audio/stream.cpp
===================================================================
--- tiki/src/audio/stream.cpp 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/src/audio/stream.cpp 2007-08-25 08:48:53 UTC (rev 494)
@@ -22,10 +22,10 @@
TIKI_OBJECT_END( Stream )
/*
-
+
This module uses CoreAudio to stream data out to the sound output
device. It's based loosely on the KOS snd_stream module.
-
+
*/
bool Stream::initGlobal() {
@@ -276,9 +276,11 @@
}
#if TIKI_PLAT == TIKI_WIN32
-# include <malloc.h>
-# define alloca _alloca
+# include <malloc.h>
+#ifndef alloca
+# define alloca _alloca
#endif
+#endif
bool Stream::fillBuffer( ALuint buffer ) {
// Thanks to VC++ we have to do this with alloca.
Modified: tiki/src/net/address.cpp
===================================================================
--- tiki/src/net/address.cpp 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/src/net/address.cpp 2007-08-25 08:48:53 UTC (rev 494)
@@ -53,7 +53,7 @@
{
if(m_ip == AddressUnknown)
{
- Tiki::Debug::printf("resolving host: %s\n", m_hostname.c_str());
+ Tiki::Debug::printf("resolving host: %s", m_hostname.c_str());
struct hostent *hp = gethostbyname(m_hostname.c_str());
if(hp != NULL)
{
@@ -62,6 +62,7 @@
#else
memcpy(&m_ip, hp->h_addr, hp->h_length);
#endif
+ Tiki::Debug::printf("...Resolved: %s\n", getIPAddressString().c_str());
}
}
return m_ip;
Modified: tiki/src/net/http/useragent.cpp
===================================================================
--- tiki/src/net/http/useragent.cpp 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/src/net/http/useragent.cpp 2007-08-25 08:48:53 UTC (rev 494)
@@ -25,18 +25,15 @@
#define READ_ONE_LINE(res, socket) \
{ \
Buffer *recvBuf = new Buffer(1); \
- char tbuf[2]; \
res = ""; \
while(socket->isOpen()) { \
recvBuf->reset(); \
socket->recv(recvBuf); \
if(recvBuf->getUsedDataLen() > 0) { \
- tbuf[0] = recvBuf->getData()[0]; \
- tbuf[1] = '\0'; \
- if(tbuf[0] != '\n' && tbuf[0] != '\r' ) { \
- res.append((char *)tbuf); \
+ if(recvBuf->getData()[0] != '\n' && recvBuf->getData()[0] != '\r' ) { \
+ res.append((char *)recvBuf->getData()); \
} \
- else if(tbuf[0] != '\r' ) { \
+ else if(recvBuf->getData()[0] != '\r' ) { \
break; \
} \
} \
@@ -46,18 +43,18 @@
HttpUserAgent::HttpUserAgent() {
#if TIKI_PLAT == TIKI_WIN32
- setUserAgentName("Tiki/1.0 (Windows)");
+ m_userAgentName = "Tiki/1.0 (Windows)";
#elif TIKI_PLAT == TIKI_NDS
- setUserAgentName("Tiki/1.0 (Nintendo DS)");
+ m_userAgentName = "Tiki/1.0 (Nintendo DS)";
#elif TIKI_PLAT == TIKI_SDL
- setUserAgentName("Tiki/1.0 (SDL)");
+ m_userAgentName = "Tiki/1.0 (SDL)";
#elif TIKI_PLAT == TIKI_OSX
- setUserAgentName("Tiki/1.0 (Mac OS X)");
+ m_userAgentName = "Tiki/1.0 (Mac OS X)";
#else
- setUserAgentName("Tiki/1.0 (Unknown)");
+ m_userAgentName = "Tiki/1.0 (Unknown)";
#endif
- setProxyHost("");
- setProxyPort(8080);
+ m_proxyHost = "";
+ m_proxyPort = 8080;
}
Response *HttpUserAgent::get(Request *req) {
@@ -94,6 +91,7 @@
}
Tiki::Debug::printf("Sending request...\n");
+ Tiki::Debug::printf(requestText.c_str());
socket->send(new Buffer(requestText.length(), (uint8 *)requestText.c_str()));
readResponse(response, socket);
@@ -284,6 +282,8 @@
std::string status = "";
READ_ONE_LINE(status, socket)
+ Tiki::Debug::printf("%s\n", status.c_str());
+
//Tiki::Debug::printf("Status: %s\n", status.c_str());
for(std::string::size_type i = 0; i < status.length(); i++) {
if(status.at(i) == ' ') {
@@ -308,7 +308,65 @@
}
if(!field.compare("Set-Cookie")) {
+ Cookie *cookie;
+ std::string extras = "";
+
+ std::string cookieName, cookieValue;
+ if(value.find(";") != std::string::npos) {
+ extras = value.substr(value.find(";")+1);
+ value = value.substr(0, value.find(";"));
+ }
+ cookieName = value.substr(0, value.find("="));
+ cookieValue = value.substr(value.find("=") + 1);
+ cookie = new Cookie(cookieName, cookieValue);
+
+ while(!extras.empty()) {
+ std::string param = extras;
+ if(extras.find(";") != std::string::npos) {
+ param = extras.substr(0, extras.find(";"));
+ extras = extras.substr(extras.find(";") + 1);
+ }
+ else {
+ extras = "";
+ }
+ while(param.at(0) == ' ') {
+ param = param.substr(1);
+ }
+ std::string paramName = param, paramValue;
+ if(param.find("=") != std::string::npos) {
+ paramName = param.substr(0, param.find("="));
+ paramValue = param.substr(param.find("=") + 1);
+ }
+ if(!paramName.compare("path")) {
+ cookie->setPath(paramValue);
+ }
+ else if(!paramName.compare("expires")) {
+ //cookie->
+ }
+ else if(!paramName.compare("domain")) {
+ cookie->setDomain(paramValue);
+ }
+ else if(!paramName.compare("max-age")) {
+ cookie->setMaxAge(atol(paramValue.c_str()));
+ }
+ else if(!paramName.compare("secure")) {
+ cookie->setSecure(true);
+ }
+ else if(!paramName.compare("version")) {
+ cookie->setVersion(paramValue);
+ }
+ }
+
+ for(std::list<Cookie *>::iterator iter = m_cookies.begin();
+ iter != m_cookies.end();
+ ++iter) {
+ if(!(*iter)->getName().compare(cookieName)) {
+ m_cookies.erase(iter);
+ }
+ }
+
+ m_cookies.push_back(cookie);
}
else {
response->setHeaderParam(field, value);
@@ -316,7 +374,7 @@
}
}
- RefPtr<Buffer> fullBuf = new Buffer(1);
+ Buffer *fullBuf = new Buffer(1);
if(!response->getHeaderParam("Transfer-Encoding").compare("chunked")) {
Tiki::Debug::printf("Encoding is chunked\n");
Modified: tiki/src/net/util/base64.cpp
===================================================================
--- tiki/src/net/util/base64.cpp 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/src/net/util/base64.cpp 2007-08-25 08:48:53 UTC (rev 494)
@@ -156,7 +156,7 @@
}
- uint8 Base64::decodeQuartet(uint8 *input, uint8 *output) {
+ int8 Base64::decodeQuartet(uint8 *input, uint8 *output) {
uint32 buffer = 0;
if (input[3] == '=') {
@@ -165,8 +165,8 @@
buffer = (buffer | BASE64_DEALPHABET[input[1]]) << 6;
buffer = buffer << 14;
- uint* temp = (uint*) &buffer;
- output [0] = temp[3];
+ uint8* temp = (uint8*) &buffer;
+ output[0] = temp[3];
return 1;
} else {
@@ -175,9 +175,9 @@
buffer = (buffer | BASE64_DEALPHABET[input[2]]) << 6;
buffer = buffer << 8;
- uint* temp = (uint*) &buffer;
- output [0] = temp[3];
- output [1] = temp[2];
+ uint8* temp = (uint8*) &buffer;
+ output[0] = temp[3];
+ output[1] = temp[2];
return 2;
}
@@ -188,10 +188,10 @@
buffer = (buffer | BASE64_DEALPHABET[input[3]]) << 6;
buffer = buffer << 2;
- uint* temp = (uint*) &buffer;
- output [0] = temp[3];
- output [1] = temp[2];
- output [2] = temp[1];
+ uint8* temp = (uint8*) &buffer;
+ output[0] = temp[3];
+ output[1] = temp[2];
+ output[2] = temp[1];
return 3;
}
Modified: tiki/win32/include/pch.h
===================================================================
--- tiki/win32/include/pch.h 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/win32/include/pch.h 2007-08-25 08:48:53 UTC (rev 494)
@@ -29,12 +29,12 @@
// This is the hand-off point in the library from WinMain, and HID callbacks.
namespace Tiki {
-int DoMain( const char * szAppName, HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow );
-void RecvQuit();
-void RecvEvent( UINT iMsg, WPARAM wParam, LPARAM lParam );
+ int DoMain( const char * szAppName, HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow );
+ void RecvQuit();
+ void RecvEvent( UINT iMsg, WPARAM wParam, LPARAM lParam );
}
// Packed structs need some compiler-specific foo.
-#define PACKED_STRUCT_BEGIN #pragma pack(push, 1)
-#define PACKED_STRUCT_END #pragma pack(pop)
+#define PACKED_STRUCT_BEGIN __declspec(align(1))
+#define PACKED_STRUCT_END
#define PACKED_STRUCT_MEMBER
Modified: tiki/win32/tiki.cbp
===================================================================
--- tiki/win32/tiki.cbp 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/win32/tiki.cbp 2007-08-25 08:48:53 UTC (rev 494)
@@ -921,6 +921,12 @@
<Option link="0"/>
<Option target="default"/>
</Unit>
+ <Unit filename="..\include\Tiki\drawables\console.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
<Unit filename="..\include\Tiki\drawables\cursor.h">
<Option compilerVar=""/>
<Option compile="0"/>
@@ -1023,6 +1029,78 @@
<Option link="0"/>
<Option target="default"/>
</Unit>
+ <Unit filename="..\include\Tiki\net.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\include\Tiki\net\address.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\include\Tiki\net\buffer.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\include\Tiki\net\http\cookie.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\include\Tiki\net\http\request.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\include\Tiki\net\http\response.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\include\Tiki\net\http\useragent.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\include\Tiki\net\socket.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\include\Tiki\net\tcpserversocket.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\include\Tiki\net\tcpsocket.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\include\Tiki\net\udpsocket.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\include\Tiki\net\util\base64.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
<Unit filename="..\include\Tiki\object.h">
<Option compilerVar=""/>
<Option compile="0"/>
@@ -1225,6 +1303,10 @@
<Option compilerVar="CPP"/>
<Option target="default"/>
</Unit>
+ <Unit filename="..\src\gl\drawables\console.cpp">
+ <Option compilerVar="CPP"/>
+ <Option target="default"/>
+ </Unit>
<Unit filename="..\src\gl\drawables\cursor.cpp">
<Option compilerVar="CPP"/>
<Option target="default"/>
@@ -1313,6 +1395,38 @@
<Option compilerVar="CPP"/>
<Option target="default"/>
</Unit>
+ <Unit filename="..\src\net\address.cpp">
+ <Option compilerVar="CPP"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\src\net\http\request.cpp">
+ <Option compilerVar="CPP"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\src\net\http\response.cpp">
+ <Option compilerVar="CPP"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\src\net\http\useragent.cpp">
+ <Option compilerVar="CPP"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\src\net\socket.cpp">
+ <Option compilerVar="CPP"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\src\net\tcpserversocket.cpp">
+ <Option compilerVar="CPP"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\src\net\tcpsocket.cpp">
+ <Option compilerVar="CPP"/>
+ <Option target="default"/>
+ </Unit>
+ <Unit filename="..\src\net\util\base64.cpp">
+ <Option compilerVar="CPP"/>
+ <Option target="default"/>
+ </Unit>
<Unit filename="..\src\thread\thread.cpp">
<Option compilerVar="CPP"/>
<Option target="default"/>
@@ -1323,6 +1437,12 @@
<Option link="0"/>
<Option target="default"/>
</Unit>
+ <Unit filename="include\Tiki\platnet.h">
+ <Option compilerVar=""/>
+ <Option compile="0"/>
+ <Option link="0"/>
+ <Option target="default"/>
+ </Unit>
<Unit filename="include\Tiki\platthread.h">
<Option compilerVar=""/>
<Option compile="0"/>
@@ -1371,6 +1491,10 @@
<Option compilerVar="CPP"/>
<Option target="default"/>
</Unit>
+ <Unit filename="src\platnet.cpp">
+ <Option compilerVar="CPP"/>
+ <Option target="default"/>
+ </Unit>
<Unit filename="src\platthread.cpp">
<Option compilerVar="CPP"/>
<Option target="default"/>
@@ -1379,5 +1503,9 @@
<Option compilerVar="CPP"/>
<Option target="default"/>
</Unit>
+ <Unit filename="stdafx.cpp">
+ <Option compilerVar="CPP"/>
+ <Option target="default"/>
+ </Unit>
</Project>
</CodeBlocks_project_file>
Modified: tiki/win32/tiki.layout
===================================================================
--- tiki/win32/tiki.layout 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/win32/tiki.layout 2007-08-25 08:48:53 UTC (rev 494)
@@ -1,61 +1,4 @@
<?xml version="1.0"?>
<!DOCTYPE CodeBlocks_layout_file>
<CodeBlocks_layout_file>
- <File name="..\3rdparty\libjpeg\jconfig.h" open="0" top="0">
- <Cursor position="653" topLine="2"/>
- </File>
- <File name="..\3rdparty\libjpeg\jpeglib.h" open="0" top="0">
- <Cursor position="1105" topLine="11"/>
- </File>
- <File name="..\3rdparty\libogg\src\bitwise.c" open="0" top="0">
- <Cursor position="1119" topLine="0"/>
- </File>
- <File name="..\3rdparty\libvorbis\lib\modes\setup_44.h" open="0" top="0">
- <Cursor position="956" topLine="1"/>
- </File>
- <File name="..\include\Tiki\stream.h" open="0" top="0">
- <Cursor position="471" topLine="26"/>
- </File>
- <File name="..\include\Tiki\tiki.h" open="0" top="0">
- <Cursor position="187" topLine="3"/>
- </File>
- <File name="..\src\audio\oggvorbis\sndoggvorbis.cpp" open="0" top="0">
- <Cursor position="205" topLine="0"/>
- </File>
- <File name="..\src\audio\sound.cpp" open="0" top="0">
- <Cursor position="42" topLine="5"/>
- </File>
- <File name="..\src\gl\animation.cpp" open="0" top="0">
- <Cursor position="10" topLine="0"/>
- </File>
- <File name="..\src\gl\texture.cpp" open="0" top="0">
- <Cursor position="7819" topLine="301"/>
- </File>
- <File name="include\Tiki\glhdrs.h" open="0" top="0">
- <Cursor position="123" topLine="0"/>
- </File>
- <File name="include\Tiki\platthread.h" open="0" top="0">
- <Cursor position="298" topLine="0"/>
- </File>
- <File name="include\Tiki\tikitypes.h" open="0" top="0">
- <Cursor position="600" topLine="5"/>
- </File>
- <File name="include\pch.h" open="0" top="0">
- <Cursor position="376" topLine="0"/>
- </File>
- <File name="src\init_shutdown.cpp" open="0" top="0">
- <Cursor position="151" topLine="0"/>
- </File>
- <File name="src\platgl.cpp" open="0" top="0">
- <Cursor position="43" topLine="0"/>
- </File>
- <File name="src\plathid.cpp" open="0" top="0">
- <Cursor position="355" topLine="2"/>
- </File>
- <File name="src\platthread.cpp" open="0" top="0">
- <Cursor position="2217" topLine="102"/>
- </File>
- <File name="src\tikitime.cpp" open="0" top="0">
- <Cursor position="161" topLine="2"/>
- </File>
</CodeBlocks_layout_file>
Modified: tiki/win32/tiki.sln
===================================================================
--- tiki/win32/tiki.sln 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/win32/tiki.sln 2007-08-25 08:48:53 UTC (rev 494)
@@ -1,30 +1,74 @@
-Microsoft Visual Studio Solution File, Format Version 8.00
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tiki", "tiki.vcproj", "{F2816CAC-B560-4ED9-8A73-9635F832943C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TikiTest", "..\examples\TikiTest\TikiTest.vcproj", "{7B823C96-860C-4578-95BB-1087A45AF1AA}"
ProjectSection(ProjectDependencies) = postProject
+ {F2816CAC-B560-4ED9-8A73-9635F832943C} = {F2816CAC-B560-4ED9-8A73-9635F832943C}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TikiTest", "TikiTest\TikiTest.vcproj", "{32E9853A-32A0-4A21-8C3C-A065A360A8F4}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TikiSnake", "..\examples\console\TikiSnake\TikiSnake.vcproj", "{FCAE4EF3-7B5D-4C0D-8793-4157F7D8709F}"
ProjectSection(ProjectDependencies) = postProject
{F2816CAC-B560-4ED9-8A73-9635F832943C} = {F2816CAC-B560-4ED9-8A73-9635F832943C}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BasicNet", "..\examples\net\basic\basic.vcproj", "{7B823C96-860C-4578-95CC-1087A45AF1AA}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F2816CAC-B560-4ED9-8A73-9635F832943C} = {F2816CAC-B560-4ED9-8A73-9635F832943C}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ChatClient", "..\examples\net\chat\chat.vcproj", "{7B823C96-860C-4578-95DD-1087A45AF1AA}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F2816CAC-B560-4ED9-8A73-9635F832943C} = {F2816CAC-B560-4ED9-8A73-9635F832943C}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ChatServer", "..\examples\net\chatd\chatd.vcproj", "{7B823C96-860C-4578-95EE-1087A45AF1AA}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F2816CAC-B560-4ED9-8A73-9635F832943C} = {F2816CAC-B560-4ED9-8A73-9635F832943C}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HttpClient", "..\examples\net\httpclient\httpclient.vcproj", "{7B823C96-861C-4578-95FF-1087A45AF1AA}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F2816CAC-B560-4ED9-8A73-9635F832943C} = {F2816CAC-B560-4ED9-8A73-9635F832943C}
+ EndProjectSection
+EndProject
Global
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Release = Release
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {F2816CAC-B560-4ED9-8A73-9635F832943C}.Debug.ActiveCfg = Debug|Win32
- {F2816CAC-B560-4ED9-8A73-9635F832943C}.Debug.Build.0 = Debug|Win32
- {F2816CAC-B560-4ED9-8A73-9635F832943C}.Release.ActiveCfg = Release|Win32
- {F2816CAC-B560-4ED9-8A73-9635F832943C}.Release.Build.0 = Release|Win32
- {32E9853A-32A0-4A21-8C3C-A065A360A8F4}.Debug.ActiveCfg = Debug|Win32
- {32E9853A-32A0-4A21-8C3C-A065A360A8F4}.Debug.Build.0 = Debug|Win32
- {32E9853A-32A0-4A21-8C3C-A065A360A8F4}.Release.ActiveCfg = Release|Win32
- {32E9853A-32A0-4A21-8C3C-A065A360A8F4}.Release.Build.0 = Release|Win32
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F2816CAC-B560-4ED9-8A73-9635F832943C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F2816CAC-B560-4ED9-8A73-9635F832943C}.Debug|Win32.Build.0 = Debug|Win32
+ {F2816CAC-B560-4ED9-8A73-9635F832943C}.Release|Win32.ActiveCfg = Release|Win32
+ {F2816CAC-B560-4ED9-8A73-9635F832943C}.Release|Win32.Build.0 = Release|Win32
+ {7B823C96-860C-4578-95BB-1087A45AF1AA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7B823C96-860C-4578-95BB-1087A45AF1AA}.Debug|Win32.Build.0 = Debug|Win32
+ {7B823C96-860C-4578-95BB-1087A45AF1AA}.Release|Win32.ActiveCfg = Release|Win32
+ {7B823C96-860C-4578-95BB-1087A45AF1AA}.Release|Win32.Build.0 = Release|Win32
+ {FCAE4EF3-7B5D-4C0D-8793-4157F7D8709F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {FCAE4EF3-7B5D-4C0D-8793-4157F7D8709F}.Debug|Win32.Build.0 = Debug|Win32
+ {FCAE4EF3-7B5D-4C0D-8793-4157F7D8709F}.Release|Win32.ActiveCfg = Release|Win32
+ {FCAE4EF3-7B5D-4C0D-8793-4157F7D8709F}.Release|Win32.Build.0 = Release|Win32
+ {7B823C96-860C-4578-95CC-1087A45AF1AA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7B823C96-860C-4578-95CC-1087A45AF1AA}.Debug|Win32.Build.0 = Debug|Win32
+ {7B823C96-860C-4578-95CC-1087A45AF1AA}.Release|Win32.ActiveCfg = Release|Win32
+ {7B823C96-860C-4578-95CC-1087A45AF1AA}.Release|Win32.Build.0 = Release|Win32
+ {7B823C96-860C-4578-95DD-1087A45AF1AA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7B823C96-860C-4578-95DD-1087A45AF1AA}.Debug|Win32.Build.0 = Debug|Win32
+ {7B823C96-860C-4578-95DD-1087A45AF1AA}.Release|Win32.ActiveCfg = Release|Win32
+ {7B823C96-860C-4578-95DD-1087A45AF1AA}.Release|Win32.Build.0 = Release|Win32
+ {7B823C96-860C-4578-95EE-1087A45AF1AA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7B823C96-860C-4578-95EE-1087A45AF1AA}.Debug|Win32.Build.0 = Debug|Win32
+ {7B823C96-860C-4578-95EE-1087A45AF1AA}.Release|Win32.ActiveCfg = Release|Win32
+ {7B823C96-860C-4578-95EE-1087A45AF1AA}.Release|Win32.Build.0 = Release|Win32
+ {7B823C96-861C-4578-95FF-1087A45AF1AA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7B823C96-861C-4578-95FF-1087A45AF1AA}.Debug|Win32.Build.0 = Debug|Win32
+ {7B823C96-861C-4578-95FF-1087A45AF1AA}.Release|Win32.ActiveCfg = Release|Win32
+ {7B823C96-861C-4578-95FF-1087A45AF1AA}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
EndGlobal
Modified: tiki/win32/tiki.vcproj
===================================================================
--- tiki/win32/tiki.vcproj 2007-08-25 02:07:26 UTC (rev 493)
+++ tiki/win32/tiki.vcproj 2007-08-25 08:48:53 UTC (rev 494)
@@ -1,97 +1,150 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="7.10"
+ Version="8.00"
Name="tiki"
ProjectGUID="{F2816CAC-B560-4ED9-8A73-9635F832943C}"
- Keyword="Win32Proj">
+ RootNamespace="tiki"
+ Keyword="Win32Proj"
+ >
<Platforms>
<Platform
- Name="Win32"/>
+ Name="Win32"
+ />
</Platforms>
+ <ToolFiles>
+ </ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
- CharacterSet="2">
+ CharacterSet="2"
+ >
<Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="include;../include;../3rdparty/libpng;../3rdparty/zlib;../3rdparty/libjpeg;../3rdparty/libogg/include;../3rdparty/libvorbis/include;"C:\Program Files\OpenAL 1.1 SDK\include""
- MinimalRebuild="TRUE"
+ AdditionalIncludeDirectories=""$(ProjectDir)\include";"$(ProjectDir)\..\include";"C:\Program Files\OpenAL 1.1 SDK\include";"$(ProjectDir)\..\3rdparty\libjpeg";"$(ProjectDir)\..\3rdparty\libogg\include";"$(ProjectDir)\..\3rdparty\libpng";"$(ProjectDir)\..\3rdparty\libvorbis\include";"$(ProjectDir)\..\3rdparty\zlib""
+ PreprocessorDefinitions="_WIN32_WINNT=0x0500;_CRT_SECURE_NO_WARNINGS=1"
+ MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
- UsePrecompiledHeader="3"
+ UsePrecompiledHeader="2"
PrecompiledHeaderThrough="pch.h"
WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="4"/>
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
<Tool
- Name="VCCustomBuildTool"/>
+ Name="VCManagedResourceCompilerTool"
+ />
<Tool
- Name="VCLibrarianTool"
- OutputFile="$(OutDir)/tiki.lib"/>
+ Name="VCResourceCompilerTool"
+ />
<Tool
- Name="VCMIDLTool"/>
+ Name="VCPreLinkEventTool"
+ />
<Tool
- Name="VCPostBuildEventTool"/>
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/tiki.lib"
+ />
<Tool
- Name="VCPreBuildEventTool"/>
+ Name="VCALinkTool"
+ />
<Tool
- Name="VCPreLinkEventTool"/>
+ Name="VCXDCMakeTool"
+ />
<Tool
- Name="VCResourceCompilerTool"/>
+ Name="VCBscMakeTool"
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCFxCopTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ Name="VCPostBuildEventTool"
+ />
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
- CharacterSet="2">
+ CharacterSet="2"
+ >
<Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="include;../include;../3rdparty/libpng;../3rdparty/zlib;../3rdparty/libjpeg;../3rdparty/libogg/include;../3rdparty/libvorbis/include;"C:\Program Files\OpenAL 1.1 SDK\include""
+ AdditionalIncludeDirectories=""$(ProjectDir)\include";"$(ProjectDir)\..\include";"C:\Program Files\OpenAL 1.1 SDK\include";"$(ProjectDir)\..\3rdparty\libjpeg";"$(ProjectDir)\..\3rdparty\libogg\include";"$(ProjectDir)\..\3rdparty\libpng";"$(ProjectDir)\..\3rdparty\libvorbis\include";"$(ProjectDir)\..\3rdparty\zlib""
+ PreprocessorDefinitions="_WIN32_WINNT=0x0500; _CRT_SECURE_NO_WARNINGS=1"
RuntimeLibrary="0"
- UsePrecompiledHeader="3"
+ UsePrecompiledHeader="2"
PrecompiledHeaderThrough="pch.h"
WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="3"/>
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
<Tool
- Name="VCCustomBuildTool"/>
+ Name="VCManagedResourceCompilerTool"
+ />
<Tool
- Name="VCLibrarianTool"
- OutputFile="$(OutDir)/tiki.lib"/>
+ Name="VCResourceCompilerTool"
+ />
<Tool
- Name="VCMIDLTool"/>
+ Name="VCPreLinkEventTool"
+ />
<Tool
- Name="VCPostBuildEventTool"/>
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/tiki.lib"
+ />
<Tool
- Name="VCPreBuildEventTool"/>
+ Name="VCALinkTool"
+ />
<Tool
- Name="VCPreLinkEventTool"/>
+ Name="VCXDCMakeTool"
+ />
<Tool
- Name="VCResourceCompilerTool"/>
+ Name="VCBscMakeTool"
+ />
<Tool
- Name="VCWebServiceProxyGeneratorTool"/>
+ Name="VCFxCopTool"
+ />
<Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ Name="VCPostBuildEventTool"
+ />
</Configuration>
</Configurations>
<References>
@@ -99,2012 +152,2742 @@
<Files>
<Filter
Name="Portable"
- Filter="">
+ >
<Filter
Name="Source"
- Filter="">
+ >
<Filter
Name="audio"
- Filter="">
+ >
<File
- RelativePath="..\src\audio\sound.cpp">
+ RelativePath="..\src\audio\sound.cpp"
+ >
<FileConfiguration
- Name="Debug|Win32">
+ Name="Debug|Win32"
+ >
<Tool
Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+ ObjectFile="$(IntDir)/$(InputName)1.obj"
+ />
</FileConfiguration>
<FileConfiguration
- Name="Release|Win32">
+ Name="Release|Win32"
+ >
<Tool
Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+ ObjectFile="$(IntDir)/$(InputName)1.obj"
+ />
</FileConfiguration>
</File>
<File
- RelativePath="..\src\audio\stream.cpp">
+ RelativePath="..\src\audio\stream.cpp"
+ >
<FileConfiguration
- Name="Debug|Win32">
+ Name="Debug|Win32"
+ >
<Tool
Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+ ObjectFile="$(IntDir)/$(InputName)1.obj"
+ />
</FileConfiguration>
<FileConfiguration
- Name="Release|Win32">
+ Name="Release|Win32"
+ >
<Tool
Name="VCCLCompilerTool"
- ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+ ObjectFile="$(IntDir)/$(InputName)1.obj"
+ />
</FileConfiguration>
</File>
<Filter
Name="oggvorbis"
- Filter="">
+ >
<File
- RelativePath="..\src\audio\oggvorbis\misc.h">
+ RelativePath="..\src\audio\oggvorbis\misc.h"
+ >
</File>
<File
- RelativePath="..\src\audio\oggvorbis\sndoggvorbis.cpp">
+ RelativePath="..\src\audio\oggvorbis\sndoggvorbis.cpp"
+ >
</File>
</Filter>
</Filter>
<Filter
Name="base"
- Filter="">
+ >
<File
- RelativePath="..\src\base\debug.cpp">
+ RelativePath="..\src\base\debug.cpp"
+ >
</File>
<File
- RelativePath="..\src\base\endian.cpp">
+ RelativePath="..\src\base\endian.cpp"
+ >
</File>
<File
- RelativePath="..\src\base\file.cpp">
+ RelativePath="..\src\base\file.cpp"
+ >
</File>
<File
- RelativePath="..\src\base\object.cpp">
+ RelativePath="..\src\base\object.cpp"
+ >
</File>
<File
- RelativePath="..\src\base\timeline.cpp">
+ RelativePath="..\src\base\timeline.cpp"
+ >
</File>
<File
- RelativePath="..\src\base\timepoint.cpp">
+ RelativePath="..\src\base\timepoint.cpp"
+ >
</File>
</Filter>
<Filter
Name="gl"
- Filter="">
+ >
<File
- RelativePath="..\src\gl\animation.cpp">
+ RelativePath="..\src\gl\animation.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\drawable.cpp">
+ RelativePath="..\src\gl\drawable.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\font.cpp">
+ RelativePath="..\src\gl\font.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\genmenu.cpp">
+ RelativePath="..\src\gl\genmenu.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\gl.cpp">
+ RelativePath="..\src\gl\gl.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\plxcompat.cpp">
+ RelativePath="..\src\gl\plxcompat.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\texture.cpp">
+ RelativePath="..\src\gl\texture.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\trigger.cpp">
+ RelativePath="..\src\gl\trigger.cpp"
+ >
</File>
<Filter
Name="anims"
- Filter="">
+ >
<File
- RelativePath="..\src\gl\anims\alphafader.cpp">
+ RelativePath="..\src\gl\anims\alphafader.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\anims\expxymover.cpp">
+ RelativePath="..\src\gl\anims\expxymover.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\anims\logxymover.cpp">
+ RelativePath="..\src\gl\anims\logxymover.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\anims\tintfader.cpp">
+ RelativePath="..\src\gl\anims\tintfader.cpp"
+ >
</File>
</Filter>
<Filter
Name="drawables"
- Filter="">
+ >
<File
- RelativePath="..\src\gl\drawables\banner.cpp">
+ RelativePath="..\src\gl\drawables\banner.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\drawables\console.cpp">
+ RelativePath="..\src\gl\drawables\console.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\drawables\cursor.cpp">
+ RelativePath="..\src\gl\drawables\cursor.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\drawables\label.cpp">
+ RelativePath="..\src\gl\drawables\label.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\drawables\pointerArrow.cpp">
+ RelativePath="..\src\gl\drawables\pointerArrow.cpp"
+ >
</File>
+ <File
+ RelativePath="..\src\gl\drawables\texturetile.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="triggers"
- Filter="">
+ >
<File
- RelativePath="..\src\gl\triggers\birth.cpp">
+ RelativePath="..\src\gl\triggers\birth.cpp"
+ >
</File>
<File
- RelativePath="..\src\gl\triggers\death.cpp">
+ RelativePath="..\src\gl\triggers\death.cpp"
+ >
</File>
</Filter>
</Filter>
<Filter
Name="hid"
- Filter="">
+ >
<File
- RelativePath="..\src\hid\eventcollector.cpp">
+ RelativePath="..\src\hid\eventcollector.cpp"
+ >
</File>
<File
- RelativePath="..\src\hid\hid.cpp">
+ RelativePath="..\src\hid\hid.cpp"
+ >
</File>
</Filter>
<Filter
Name="math"
- Filter="">
+ >
<File
- RelativePath="..\src\math\bspline.cpp">
+ RelativePath="..\src\math\bspline.cpp"
+ >
</File>
<File
- RelativePath="..\src\math\math.cpp">
+ RelativePath="..\src\math\math.cpp"
+ >
</File>
<File
- RelativePath="..\src\math\matrix.cpp">
+ RelativePath="..\src\math\matrix.cpp"
+ >
</File>
<File
- RelativePath="..\src\math\vector.cpp">
+ RelativePath="..\src\math\vector.cpp"
+ >
</File>
<File
- RelativePath="..\src\math\vector3.cpp">
+ RelativePath="..\src\math\vector3.cpp"
+ >
</File>
</Filter>
<Filter
Name="thread"
- Filter="">
+ >
<File
- RelativePath="..\src\thread\thread.cpp">
+ RelativePath="..\src\thread\thread.cpp"
+ >
</File>
</Filter>
<Filter
Name="image"
- Filter="">
+ >
<File
- RelativePath="..\src\image\image.cpp">
+ RelativePath="..\src\image\image.cpp"
+ >
</File>
<File
- RelativePath="..\src\image\loadjpg.cpp">
+ RelativePath="..\src\image\loadjpg.cpp"
+ >
</File>
<File
- RelativePath="..\src\image\loadpng.cpp">
+ RelativePath="..\src\image\loadpng.cpp"
+ >
</File>
</Filter>
+ <Filter
+ Name="net"
+ >
+ <File
+ RelativePath="..\src\net\address.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\src\net\socket.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\src\net\tcpserversocket.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\src\net\tcpsocket.cpp"
+ >
+ </File>
+ <Filter
+ Name="http"
+ >
+ <File
+ RelativePath="..\src\net\http\request.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\src\net\http\response.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\src\net\http\useragent.cpp"
+ >
+ </File>
+ </Filter>
+ </Filter>
</Filter>
<Filter
Name="Include"
- Filter="">
+ >
<File
- RelativePath="..\include\Tiki\tiki.h">
+ RelativePath="..\include\Tiki\tiki.h"
+ >
</File>
<File
- RelativePath="..\include\Tiki\TikiAll.h">
+ RelativePath="..\include\Tiki\TikiAll.h"
+ >
</File>
<Filter
Name="base"
- Filter="">
+ >
<File
- RelativePath="..\include\Tiki\debug.h">
+ RelativePath="..\include\Tiki\debug.h"
+ >
</File>
<File
- RelativePath="..\include\Tiki\file.h">
+ RelativePath="..\include\Tiki\file.h"
+ >
</File>
...
[truncated message content] |