diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-03-16 08:05:41 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-03-17 11:36:05 +0100 |
commit | 5bc9f73a48367b3fff95689e3467be1b9e1f97f8 (patch) | |
tree | dfddcf3573449ea64ea30104f3e05a33fe7c9d68 /trace/record/client.h | |
parent | bfc8f2de784825448e0b44b83e32b9378d01d465 (diff) |
record: Add base64 filter class
Update #3904.
Diffstat (limited to 'trace/record/client.h')
-rw-r--r-- | trace/record/client.h | 20 |
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; |