summaryrefslogtreecommitdiffstats
path: root/dom/webauthn/cbor-cpp/src/encoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'dom/webauthn/cbor-cpp/src/encoder.h')
-rw-r--r--dom/webauthn/cbor-cpp/src/encoder.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/dom/webauthn/cbor-cpp/src/encoder.h b/dom/webauthn/cbor-cpp/src/encoder.h
new file mode 100644
index 0000000000..04374b5ed1
--- /dev/null
+++ b/dom/webauthn/cbor-cpp/src/encoder.h
@@ -0,0 +1,68 @@
+/*
+ Copyright 2014-2015 Stanislav Ovsyannikov
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+
+#ifndef __CborEncoder_H_
+#define __CborEncoder_H_
+
+#include "output.h"
+#include <string>
+
+namespace cbor {
+ class encoder {
+ private:
+ output *_out;
+ public:
+ explicit encoder(output &out);
+
+ ~encoder();
+
+ void write_bool(bool value);
+
+ void write_int(int value);
+
+ void write_int(long long value);
+
+ void write_int(unsigned int value);
+
+ void write_int(unsigned long long value);
+
+ void write_bytes(const unsigned char *data, unsigned int size);
+
+ void write_string(const char *data, unsigned int size);
+
+ void write_string(const std::string str);
+
+ void write_array(int size);
+
+ void write_map(int size);
+
+ void write_tag(const unsigned int tag);
+
+ void write_special(int special);
+
+ void write_null();
+
+ void write_undefined();
+
+ private:
+ void write_type_value(int major_type, unsigned int value);
+
+ void write_type_value(int major_type, unsigned long long value);
+ };
+}
+
+#endif //__CborEncoder_H_