Twitch SDK (Internal)
amf0encoder.h
Go to the documentation of this file.
1 /********************************************************************************************
2 * Twitch Broadcasting SDK
3 *
4 * This software is supplied under the terms of a license agreement with Twitch Interactive, Inc. and
5 * may not be copied or used except in accordance with the terms of that agreement
6 * Copyright (c) 2012-2016 Twitch Interactive, Inc.
7 *********************************************************************************************/
8 
9 #ifndef IAMF0ENCODER_H
10 #define IAMF0ENCODER_H
11 
12 #include <vector>
14 
15 namespace ttv
16 {
17  namespace broadcast
18  {
19  class AMF0Encoder;
20  }
21 }
22 
27 {
28 public:
29  AMF0Encoder(void)
30  {
31  mBuffer.reserve(1024); // arbitrary number to reduce allocations from small vectors
32  }
33 
34  virtual ~AMF0Encoder(void) {}
35 
36  virtual void Number(double value);
37  virtual void Boolean(bool flag);
38  virtual void String(std::string param);
39  virtual void Object();
40  virtual void ObjectProperty(std::string propertyName);
41  virtual void Movieclip();
42  virtual void Null();
43  virtual void Undefined();
44  virtual void Reference();
45  virtual void EcmaArray(uint32_t elements);
46  virtual void EcmaArrayKey(std::string keyName);
47  virtual void ObjectEnd();
48  virtual void StrictArray(uint32_t elements);
49  virtual void Date(double dateValue);
50  virtual void LongString();
51  virtual void Unsupported();
52  virtual void Recordset();
53  virtual void XmlDocument();
54  virtual void TypedObject();
55 
56  const std::vector<uint8_t>& GetBuffer() const { return mBuffer; }
57 
58  void Reset() { mBuffer.resize(0); }
59 private:
60  template <typename _T> void EncodeToBuffer(_T param);
61  std::vector<uint8_t> mBuffer;
62 };
63 
64 #endif
virtual void String(std::string param)
virtual void Date(double dateValue)
void EncodeToBuffer(_T param)
virtual void ObjectProperty(std::string propertyName)
Definition: amf0.h:32
virtual void Number(double value)
virtual void StrictArray(uint32_t elements)
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
const std::vector< uint8_t > & GetBuffer() const
Definition: amf0encoder.h:56
virtual void EcmaArray(uint32_t elements)
virtual ~AMF0Encoder(void)
Definition: amf0encoder.h:34
AMF0Encoder(void)
Definition: amf0encoder.h:29
void Reset()
Definition: amf0encoder.h:58
std::vector< uint8_t > mBuffer
Definition: amf0encoder.h:61
virtual void EcmaArrayKey(std::string keyName)
Definition: amf0encoder.h:26
virtual void Boolean(bool flag)