CANCapture Scripting
string object (reference counted)

Path: /sdk/add_on/scriptstring/

This add-on registers a string type that is in most situations compatible with the std::string, except that it uses reference counting. This means that if you have an application function that takes a std::string by reference, you can register it with AngelScript to take a script string by reference. This works because the CScriptString wraps the std::string type, with the std::string type at the first byte of the CScriptString object.

Register the type with RegisterScriptString(asIScriptEngine*). Register the utility functions with RegisterScriptStringUtils(asIScriptEngine*).

See Also
string object (STL)

Public C++ interface

class CScriptString
{
public:
// Constructors
CScriptString();
CScriptString(const CScriptString &other);
CScriptString(const char *s);
CScriptString(const std::string &s);
// Memory management
void AddRef();
void Release();
// Assignment
CScriptString &operator=(const CScriptString &other);
// Concatenation
CScriptString &operator+=(const CScriptString &other);
friend CScriptString *operator+(const CScriptString &a, const CScriptString &b);
// Memory buffer
std::string buffer;
};

Public script interface

  class string
  {
    // Constructors
    string();
    string(const string &in other);
    // Returns the length of the string
    uint length() const;
    // The string class has several operators that are not expressable in the script syntax yet
    // Assignment and concatenation
    // string & operator =  (const string &in other)
    // string & operator += (const string &in other)
    // string @ operator +  (const string &in a, const string &in b)
    // Access individual characters
    // uint8 & operator [] (uint)
    // const uint8 & operator [] (uint) const
    // Comparison operators
    // bool operator == (const string &in a, const string &in b)
    // bool operator != (const string &in a, const string &in b)
    // bool operator <  (const string &in a, const string &in b)
    // bool operator <= (const string &in a, const string &in b)
    // bool operator >  (const string &in a, const string &in b)
    // bool operator >= (const string &in a, const string &in b)
    // Automatic conversion from number types to string type
    // string & operator =  (double val)
    // string & operator += (double val)
    // string @ operator +  (double val, const string &in str)
    // string @ operator +  (const string &in str, double val)
    // string & operator =  (float val)
    // string & operator += (float val)
    // string @ operator +  (float val, const string &in str)
    // string @ operator +  (const string &in str, float val)
    // string & operator =  (int val)
    // string & operator += (int val)
    // string @ operator +  (int val, const string &in str)
    // string @ operator +  (const string &in str, int val)
    // string & operator =  (uint val)
    // string & operator += (uint val)
    // string @ operator +  (uint val, const string &in str)
    // string @ operator +  (const string &in str, uint val)
  }
  // Get a substring of a string
  string @ substring(const string &in str, int start, int length);
  // Find the first occurrance of the substring
  int findFirst(const string &in str, const string &in sub);
  int findFirst(const string &in str, const string &in sub, int startAt)
  // Find the last occurrance of the substring
  int findLast(const string &in str, const string &in sub);
  int findLast(const string &in str, const string &in sub, int startAt);
  // Find the first character from the set 
  int findFirstOf(const string &in str, const string &in set);
  int findFirstOf(const string &in str, const string &in set, int startAt);
  // Find the first character not in the set
  int findFirstNotOf(const string &in str, const string &in set);
  int findFirstNotOf(const string &in str, const string &in set, int startAt);
  // Find the last character from the set
  int findLastOf(const string &in str, const string &in set);
  int findLastOf(const string &in str, const string &in set, int startAt);
  // Find the last character not in the set
  int findLastNotOf(const string &in str, const string &in set);
  int findLastNotOf(const string &in str, const string &in set, int startAt);
  // Split the string into an array of substrings
  string@[]@ split(const string &in str, const string &in delimiter);
  // Join an array of strings into a larger string separated by a delimiter
  string@ join(const string@[] &in str, const string &in delimiter);