summaryrefslogtreecommitdiff
path: root/trace/record/client.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-16 08:05:41 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-17 11:36:05 +0100
commit5bc9f73a48367b3fff95689e3467be1b9e1f97f8 (patch)
treedfddcf3573449ea64ea30104f3e05a33fe7c9d68 /trace/record/client.h
parentbfc8f2de784825448e0b44b83e32b9378d01d465 (diff)
record: Add base64 filter class
Update #3904.
Diffstat (limited to 'trace/record/client.h')
-rw-r--r--trace/record/client.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/trace/record/client.h b/trace/record/client.h
index 636fb0b..b4a0c26 100644
--- a/trace/record/client.h
+++ b/trace/record/client.h
@@ -112,6 +112,26 @@ class Filter {
virtual bool Run(void** buf, size_t* n) = 0;
};
+class Base64Filter : public Filter {
+ public:
+ Base64Filter() = default;
+
+ Base64Filter(const Base64Filter&) = default;
+
+ Base64Filter& operator=(const Base64Filter&) = default;
+
+ virtual ~Base64Filter() = default;
+
+ virtual bool Run(void** buf, size_t* n);
+
+ private:
+ int digits_ = 0;
+ bool seen_end_ = false;
+ int val_[4];
+
+ bool DecodeChar(int c, char **target);
+};
+
class Client {
public:
Client() = default;