DCL 3.7.4
Loading...
Searching...
No Matches
SrcToHtmlServlet Class Reference

#include <SrcToHtmlServlet.h>

Inheritance diagram for SrcToHtmlServlet:
HttpServletEx HttpServlet Object

Public Member Functions

 SrcToHtmlServlet ()
Public Member Functions inherited from Object
virtual String toString () const
virtual void destroy ()
String className () const
bool isInstanceOf (const std::type_info &typeinfo) const
virtual const std::type_info & typeInfo () const

Protected Member Functions

virtual void onInitialize () __DCL_THROWS1(Exception *)
virtual void onCleanup () __DCL_THROWS1(Exception *)
virtual void onService (HttpServletContextEx &ctx) __DCL_THROWS1(Exception *)
Protected Member Functions inherited from Object
virtual ~Object ()
 Object ()

Additional Inherited Members

Static Public Member Functions inherited from HttpServlet
static bool __initialize (HttpServlet *_servlet, const DCL_HTTP_SERVLET_CONFIG *_config, void *hErrorReport)
static bool __cleanup (HttpServlet *_servlet, void *hErrorReport)
static bool __httpService (HttpServlet *_servlet, const DCL_HTTP_SERVLET_CONTEXT *_context, void *hErrorReport)
Protected Attributes inherited from HttpServletEx
size_t __maxContentLength
Protected Attributes inherited from HttpServlet
const wchar_t * __moduleName
const wchar_t * __configPath
const wchar_t * __tempPath
const DCL_HTTP_SERVER_API__SAPI

Detailed Description

Definition at line 9 of file SrcToHtmlServlet.h.

Constructor & Destructor Documentation

◆ SrcToHtmlServlet()

SrcToHtmlServlet::SrcToHtmlServlet ( )

Member Function Documentation

◆ onCleanup()

void SrcToHtmlServlet::onCleanup ( )
protectedvirtual

Reimplemented from HttpServlet.

Definition at line 43 of file SrcToHtmlServlet.cpp.

45{
46 if (__generator) {
47 delete __generator;
48 __generator = NULL;
49 }
50}
#define NULL
Definition Config.h:312

◆ onInitialize()

void SrcToHtmlServlet::onInitialize ( )
protectedvirtual

Reimplemented from HttpServletEx.

Definition at line 24 of file SrcToHtmlServlet.cpp.

26{
28
29 String strIniFile = getIniFileName(L"HSAIDoc/src2html.ini");
30
31 if (!Files::exists(strIniFile)) {
32 __DCL_TRACE1(L"File not found! - [%ls]\n", strIniFile.data());
33 return;
34 }
35
36 __generator = new HtmlGenerator(strIniFile);
37 if (!__generator) {
38 __DCL_TRACE0(L"HtmlGenerator : create fail\n");
39 return;
40 }
41}
#define __DCL_TRACE0(psz)
Definition Object.h:398
#define __DCL_TRACE1(fmt, arg1)
Definition Object.h:399
static bool exists(const String &_path)
Definition Files.cpp:109
virtual void onInitialize() __DCL_THROWS1(Exception *)

◆ onService()

void SrcToHtmlServlet::onService ( HttpServletContextEx & ctx)
protectedvirtual

Implements HttpServletEx.

Definition at line 52 of file SrcToHtmlServlet.cpp.

54{
55 ctx.setContentType(L"text/html; charset=utf-8");
56
57 Writer& out = ctx.writer();
58
59 String dir = Files::dirname(ctx.scriptFilename());
60 UTF8Decoder decoder;
61
62 __DCL_TRACE1(L"dir: [%ls]\n", dir.data());
63 __DCL_TRACE1(L"data: %d\n", ctx.__formMap[L"data"].size());
64 __DCL_TRACE1(L"file: %d\n", ctx.__formFileMap.byName(L"file").size());
65
66 if (!ctx.__queryMap[L"name"].isEmpty()) {
67 String filename = dir + L"src/" + ctx.__queryMap[L"name"][0];
68 __DCL_TRACE1(L"name [%ls]\n", filename.data());
69 if (Files::exists(filename)) {
70 __generator->generateHeader(out, filename);
71 __generator->generate(out, filename);
72 __generator->generateFooter(out);
73 return;
74 }
75 }
76
77 if (!ctx.__formFileMap.byName(L"file").isEmpty())
78 {
79 StoredHttpFormData::FileInfo& info = ctx.__formFileMap.byName(L"file")[0];
80 const wchar_t* pszLangSyntax = L"C/C++";
81 if (info.filename.toLowerCase().endsWith(L".java")) {
82 pszLangSyntax = L"JAVA";
83 }
84
85 __DCL_TRACE3(L"file: %ls, size: %zd, syntax: %ls\n",
86 info.filename.data(),
87 info.fileSize,
88 pszLangSyntax
89 );
90
91 __generator->generateHeader(
92 out,
93 info.filename
94 );
95
96 __generator->generate(
97 out,
98 info.tempFilename,
99 pszLangSyntax
100 );
101 }
102
103 if (ctx.__formMap.find(L"data") != ctx.__formMap.end()
104 && ctx.__formMap.find(L"lang") != ctx.__formMap.end()) {
105 const String& strData = ctx.__formMap[L"data"][0];
106 const String& strLang = ctx.__formMap[L"lang"][0];
107 const wchar_t* pszLangSyntax = L"C/C++";
108 if (strLang == L"java")
109 pszLangSyntax = L"JAVA";
110
111 __DCL_TRACE3(L"file: %ls, size: %zd, syntax: %ls\n",
112 L"data",
113 strData.length(),
114 pszLangSyntax
115 );
116
117 __generator->generateHeader(
118 out,
119 NULL
120 );
121
122 __generator->generate(
123 out,
124 strData,
125 strData.length(),
126 pszLangSyntax
127 );
128 }
129
130 if (ctx.__formMap[L"data"].isEmpty()
131 && ctx.__formFileMap.byName(L"file").isEmpty()) {
132 String filename = dir + L"src2html.html";
133 out << Files::readText(filename, decoder);
134 return;
135 }
136}
#define __DCL_TRACE3(fmt, arg1, arg2, arg3)
Definition Object.h:401
static String dirname(const String &_path)
Definition Files.cpp:268
static String readText(const String &_filename) __DCL_THROWS1(IOException *)
Definition Files.cpp:435
StringWriter & writer()
FileInfoArray & byName(const wchar_t *_name)

The documentation for this class was generated from the following files: