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;

    // Assignment and concatenation
    string &opAssign(const string &in other);
    string &opAddAssign(const string &in other);
    string @opAdd(const string &in right) const;

    // Access individual characters
    // uint8 &operator [] (uint)
    // const uint8 &operator [] (uint) const

    // Comparison operators
    bool opEquals(const string &in right) const;
    int  opCmp(const string &in right) const;

    // Automatic conversion from number types to string type
    string &opAssign(double val);
    string &opAddAssign(double val);
    string @opAdd(double val) const;
    string @opAdd_r(double val) const;

    string &opAssign(float val);
    string &opAddAssign(float val);
    string @opAdd(float val) const;
    string @opAdd_r(float val) const;

    string &opAssign(int val);
    string &opAddAssign(int val);
    string @opAdd(int val) const;
    string @opAdd_r(int val) const;

    string &opAssign(uint val);
    string &opAddAssign(uint val);
    string @opAdd(uint val) const;
    string @opAdd_r(uint val) const;
  }

  // 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);

Generated on Wed Dec 16 19:34:50 2009 for AngelScript by  doxygen 1.5.9