summaryrefslogtreecommitdiff
path: root/src/xml/xml_pi_rule.cc
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2023-10-05 15:39:05 -0700
committerXin Li <delphij@google.com>2023-10-05 15:39:05 -0700
commit5c3d890abd469dbb4c95ee4f60a571ac825f18cb (patch)
treee6bc18176b3a70a107c41e1802ae6335640689d0 /src/xml/xml_pi_rule.cc
parent3ca31188d70c72e2879f70fdf52d95e37e1fefea (diff)
parent278c52dc5965a73a985cc5ec9d801e05c5521981 (diff)
downloadimage_io-5c3d890abd469dbb4c95ee4f60a571ac825f18cb.tar.gz
Merge Android 14
Bug: 298295554 Merged-In: I2087549f00883c6ce2a3d9833cff5fde547afaf1 Change-Id: I417c7c8a9d6ba2d8dd017216ac1f3a1f4114f7f2
Diffstat (limited to 'src/xml/xml_pi_rule.cc')
-rw-r--r--src/xml/xml_pi_rule.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/xml/xml_pi_rule.cc b/src/xml/xml_pi_rule.cc
new file mode 100644
index 0000000..071b8fd
--- /dev/null
+++ b/src/xml/xml_pi_rule.cc
@@ -0,0 +1,28 @@
+#include "image_io/xml/xml_pi_rule.h"
+
+#include "image_io/xml/xml_handler.h"
+#include "image_io/xml/xml_token_context.h"
+
+namespace photos_editing_formats {
+namespace image_io {
+
+XmlPiRule::XmlPiRule() : XmlPiRule(kFirstStartPoint) {}
+
+XmlPiRule::XmlPiRule(XmlRule::StartPoint start_point) : XmlRule("PI") {
+ // <? ... ?>
+ AddLiteralTerminal("<?");
+ AddThroughLiteralTerminal("?>").WithAction(
+ [&](const XmlActionContext& context) { return HandlePiValue(context); });
+ if (start_point == kSecondStartPoint) {
+ SetTerminalIndex(1);
+ }
+}
+
+DataMatchResult XmlPiRule::HandlePiValue(const XmlActionContext& context) {
+ XmlTokenContext token_context(context);
+ DataMatchResult result = context.GetHandler()->Pi(token_context);
+ return result;
+}
+
+} // namespace image_io
+} // namespace photos_editing_formats