MCPcopy Create free account
hub / github.com/apache/nifi-minifi-cpp / getNewBookmarkXml

Method getNewBookmarkXml

extensions/windows-event-log/Bookmark.cpp:131–164  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

129}
130
131bool Bookmark::getNewBookmarkXml(EVT_HANDLE hEvent, std::wstring& bookmarkXml) {
132 if (!EvtUpdateBookmark(hBookmark_.get(), hEvent)) {
133 LOG_LAST_ERROR(EvtUpdateBookmark);
134 return false;
135 }
136 // Render the bookmark as an XML string that can be persisted.
137 logger_->log_trace("Rendering new bookmark");
138 DWORD bufferSize{};
139 DWORD bufferUsed{};
140 DWORD propertyCount{};
141 if (!EvtRender(nullptr, hBookmark_.get(), EvtRenderBookmark, bufferSize, nullptr, &bufferUsed, &propertyCount)) {
142 DWORD status = ERROR_SUCCESS;
143 if (ERROR_INSUFFICIENT_BUFFER == (status = GetLastError())) {
144 bufferSize = bufferUsed;
145
146 std::vector<wchar_t> buf(bufferSize / 2 + 1);
147
148 if (!EvtRender(nullptr, hBookmark_.get(), EvtRenderBookmark, bufferSize, &buf[0], &bufferUsed, &propertyCount)) {
149 LOG_LAST_ERROR(EvtRender);
150 return false;
151 }
152
153 bookmarkXml = buf.data();
154
155 return true;
156 }
157 if (ERROR_SUCCESS != (status = GetLastError())) {
158 LOG_LAST_ERROR(EvtRender);
159 return false;
160 }
161 }
162
163 return false;
164}
165
166bool Bookmark::getBookmarkXmlFromFile(std::wstring& bookmarkXml) {
167 bookmarkXml.clear();

Callers 2

processEventLogsMethod · 0.80
BookmarkTests.cppFile · 0.80

Calls 2

log_traceMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected