Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/containers/string_res.hfa

    r08ed947 r6cc87c0  
    1717
    1818#include <fstream.hfa>
    19 #include <string.h>    // e.g. strlen
    2019
    2120   
     
    2827    HandleNode *flink;                                  // forward link
    2928    HandleNode *blink;                                  // backward link
    30     VbyteHeap *ulink;                   // upward link
    3129
    3230    char *s;                                            // pointer to byte string
     
    3432}; // HandleNode
    3533
    36 VbyteHeap * DEBUG_string_heap();
    37 size_t DEBUG_string_bytes_in_heap( VbyteHeap * heap );
     34void ?{}( HandleNode & );                       // constructor for header node
     35
     36void ?{}( HandleNode &, VbyteHeap & );          // constructor for nodes in the handle list
     37void ^?{}( HandleNode & );                      // destructor for handle nodes
     38
     39extern VbyteHeap * DEBUG_string_heap;
    3840size_t DEBUG_string_bytes_avail_until_gc( VbyteHeap * heap );
    3941const char * DEBUG_string_heap_start( VbyteHeap * heap );
    4042
    41 void TUNING_set_string_heap_liveness_threshold( double val );
    4243
    4344//######################### String #########################
     
    4647struct string_res {
    4748    HandleNode Handle; // chars, start, end, global neighbours
    48     bool shareEditSet_owns_ulink;
    4949    string_res * shareEditSet_prev;
    5050    string_res * shareEditSet_next;
     
    7474// Constructors, Assignment Operators, Destructor
    7575void ?{}(string_res &s); // empty string
     76void ?{}(string_res &s, const char* initial); // copy from string literal (NULL-terminated)
    7677void ?{}(string_res &s, const char* buffer, size_t bsize); // copy specific length from buffer
    77 static inline void ?{}(string_res &s, const char* rhs) { // copy from string literal (NULL-terminated)
    78     (s){ rhs, strlen(rhs) };
    79 }
    8078
    8179void ?{}(string_res &s, const string_res & s2) = void;
     
    8886}
    8987
    90 string_res & assign(string_res &s, const char* buffer, size_t bsize); // copy specific length from buffer
    91 static inline string_res & ?=?(string_res &s, const char* other) {  // copy from string literal (NULL-terminated)
    92     return assign(s, other, strlen(other));
    93 }
    94 string_res & ?=?(string_res &s, const string_res &other);
    95 string_res & ?=?(string_res &s, string_res &other);
    96 string_res & ?=?(string_res &s, char other);
     88void assign(string_res &s, const char* buffer, size_t bsize); // copy specific length from buffer
     89void ?=?(string_res &s, const char* other); // copy from string literal (NULL-terminated)
     90void ?=?(string_res &s, const string_res &other);
     91void ?=?(string_res &s, string_res &other);
     92void ?=?(string_res &s, char other);
    9793
    9894void ^?{}(string_res &s);
     
    10399
    104100// Concatenation
    105 void append(string_res &s, const char* buffer, size_t bsize);
    106101void ?+=?(string_res &s, char other); // append a character
    107102void ?+=?(string_res &s, const string_res &s2); // append-concatenate to first string
    108 static inline void ?+=?(string_res &s, const char* other) {
    109     append( s, other, strlen(other) );
    110 }
     103void ?+=?(string_res &s, const char* other);
     104void append(string_res &s, const char* buffer, size_t bsize);
    111105
    112106// Character access
    113 void assignAt(const string_res &s, size_t index, char val);
    114107char ?[?](const string_res &s, size_t index); // Mike changed to ret by val from Sunjay's ref, to match Peter's
    115108//char codePointAt(const string_res &s, size_t index); // revisit under Unicode
     
    128121int find(const string_res &s, const char* search);
    129122int find(const string_res &s, const char* search, size_t searchsize);
    130 
    131 int findFrom(const string_res &s, size_t fromPos, char search);
    132 int findFrom(const string_res &s, size_t fromPos, const string_res &search);
    133 int findFrom(const string_res &s, size_t fromPos, const char* search);
    134 int findFrom(const string_res &s, size_t fromPos, const char* search, size_t searchsize);
    135123
    136124bool includes(const string_res &s, const string_res &search);
Note: See TracChangeset for help on using the changeset viewer.