Add toolchain and mbtk source

Change-Id: Ie12546301367ea59240bf23d5e184ad7e36e40b3
diff --git a/mbtk/mbtk_lib/inc/ds_ASString.h b/mbtk/mbtk_lib/inc/ds_ASString.h
new file mode 100644
index 0000000..02319ca
--- /dev/null
+++ b/mbtk/mbtk_lib/inc/ds_ASString.h
@@ -0,0 +1,265 @@
+/*==============================================================================

+

+                              ds_ASString.h

+

+GENERAL DESCRIPTION

+  A string class with utility functions for parsing AS.

+

+EXTERNALIZED FUNCTIONS

+

+INITIALIZATION AND SEQUENCING REQUIREMENTS

+

+  Copyright (c) 2014 by Qualcomm Technologies Incorporated. All Rights Reserved.

+==============================================================================*/

+

+/*==============================================================================

+                           EDIT HISTORY FOR MODULE

+

+This section contains comments describing changes made to the module.

+Notice that changes are listed in reverse chronological order.

+

+when        who    what, where, why

+--------    ---    ----------------------------------------------------------

+04/21/14    ml     Created file/Initial version.

+==============================================================================*/

+#ifndef DS_AS_STRING_H

+#define DS_AS_STRING_H

+

+//#include "comdef.h"

+#include "mbtk_type.h"

+

+/*==============================================================================

+CLASS ASString

+

+DESCRIPTION

+  A string class with utility functions for parsing AS.

+==============================================================================*/

+class ASString

+{

+public:

+  /*===========================================================================

+  FUNCTION ASString CONSTRUCTOR

+

+  DESCRIPTION

+    Creates a new ASString. Default constructor will create an empty string.

+    The other constructors will make a copy of the given string.

+

+  DEPENDENCIES

+    None

+

+  SIDE EFFECTS

+    None

+  ===========================================================================*/

+  ASString();

+  ASString(const char* src);

+  ASString(const char* src, uint32 len);

+

+  // copy constructor

+  ASString(ASString& src);

+  ASString(const ASString& src);

+

+  ~ASString();

+

+

+  ASString& operator=(const ASString& rhs);

+  ASString& operator=(const char* rhs);

+  char      operator[](const int index) const;

+  char&     operator[](const int index);

+

+

+  /*============================================================================

+  FUNCTION ASString::c_str

+

+  DESCRIPTION

+    Returns the raw c-string

+

+  PARAMETERS

+    None

+

+  DEPENDENCIES

+    None

+

+  SIDE EFFECTS

+    None

+  ============================================================================*/

+  const char* c_str() const;

+

+  /*============================================================================

+  FUNCTION ASString::size

+  FUNCTION ASString::length

+

+  DESCRIPTION

+    Returns the length of the string

+

+  PARAMETERS

+    None

+

+  DEPENDENCIES

+    None

+

+  SIDE EFFECTS

+    None

+  ============================================================================*/

+  uint32 size() const;

+  uint32 length() const;

+

+  /*============================================================================

+  FUNCTION ASString::empty

+

+  DESCRIPTION

+    Returns true if the string is empty or NULL

+

+  PARAMETERS

+    None

+

+  DEPENDENCIES

+    None

+

+  SIDE EFFECTS

+    None

+  ============================================================================*/

+  bool empty() const;

+

+  /*============================================================================

+  FUNCTION ASString::remove_trailing_spaces

+

+  DESCRIPTION

+    Removes all whiltespace, including tabs and newlines, at the end of the string.

+

+  PARAMETERS

+    None

+

+  DEPENDENCIES

+    None

+

+  SIDE EFFECTS

+    None

+  ============================================================================*/

+  void remove_trailing_spaces();

+

+  /*============================================================================

+  FUNCTION ASString::resolve_xml_escapes

+

+  DESCRIPTION

+    Replaces XML escape strings with the corresponding character.

+

+  PARAMETERS

+    None

+

+  DEPENDENCIES

+    None

+

+  SIDE EFFECTS

+    None

+  ============================================================================*/

+  bool resolve_xml_escapes();

+

+  /*============================================================================

+  FUNCTION ASString::to_lower

+

+  DESCRIPTION

+    Converts all characters in the string to lower case.

+

+  PARAMETERS

+    None

+

+  DEPENDENCIES

+    None

+

+  SIDE EFFECTS

+    None

+  ============================================================================*/

+  void to_lower();

+

+  /*============================================================================

+  FUNCTION ASString::limit_cmp

+

+  DESCRIPTION

+    Partial string compare up to len. Returns true if same, else false.

+

+  PARAMETERS

+    [In] cstr - The string to compare

+    [In] len  - The number of characters to compare.

+

+  DEPENDENCIES

+    None

+

+  SIDE EFFECTS

+    None

+  ============================================================================*/

+  bool limit_cmp(const char* cstr, const uint32 len) const;

+

+  /*============================================================================

+  FUNCTION ASString::append

+

+  DESCRIPTION

+    Appends the given string to the string it holds.

+

+  PARAMETERS

+    [In] append_str - The string to append

+    [In] len        - The number of characters to append

+

+  DEPENDENCIES

+    None

+

+  SIDE EFFECTS

+    None

+  ============================================================================*/

+  void append(const char* append_str);

+  void append(const char* append_str, const uint32 len);

+  void append(const ASString& append_str);

+

+protected:

+  /*============================================================================

+  FUNCTION ASString::copy_string

+

+  DESCRIPTION

+    Partial string compare up to len. Returns true if same, else false.

+

+  PARAMETERS

+    [In] src - The string to copy

+    [In] len - The number of characters to copy

+

+  DEPENDENCIES

+    None

+

+  SIDE EFFECTS

+    None

+  ============================================================================*/

+  void copy_string(const char* src, uint32 len);

+

+  char* str; // C-string object. Memory dynamically allocated as necessary

+};

+

+

+

+/*============================================================================

+FUNCTION operator==

+FUNCTION operator!=

+FUNCTION operator<

+FUNCTION operator>

+

+DESCRIPTION

+  Compares the two strings and returns true/false based on the operator. The

+  comparison will be case insensitive.

+

+PARAMETERS

+  [In] lhs - The string to compare

+  [In] rhs - The other string to compare

+

+DEPENDENCIES

+  None

+

+SIDE EFFECTS

+  None

+============================================================================*/

+bool operator== (const ASString& lhs, const ASString& rhs);

+bool operator!= (const ASString& lhs, const ASString& rhs);

+

+bool operator== (const ASString& lhs, const char* rhs);

+bool operator!= (const ASString& lhs, const char* rhs);

+

+bool operator< (const ASString& lhs, const ASString& rhs);

+bool operator> (const ASString& lhs, const ASString& rhs);

+

+#endif /* DS_AS_STRING_H */