source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#ifndef STRINGHANDLE_HH
#define STRINGHANDLE_HH
-#include "fproto.hh"
+
+#include "flower-proto.hh"
/**
*/
class String_handle {
- String_data* data;
+ String_data* data;
- /// decrease ref count. Named kind of like a Tanenbaum semafore
- void down();
+ /// decrease ref count. Named kind of like a Tanenbaum semafore
+ void down ();
- /// increase ref count
- void up(String_data *d);
+ /// increase ref count
+ void up (String_data *d);
- /** make sure data has only one reference.
- POST: data->references == 1
- */
- void copy();
+ /** make sure data has only one reference.
+ POST: data->references == 1
+ */
+ void copy ();
public:
- String_handle();
- ~String_handle();
- String_handle(String_handle const & src);
+ String_handle ();
+ ~String_handle ();
+ String_handle (String_handle const & src);
- Byte const* byte_c_l() const;
- char const* ch_c_l() const;
- Byte* byte_l();
- char* ch_l();
- bool is_binary_bo()const;
- void operator =(String_handle const &src);
- void operator += (char const *s);
- Byte operator[](int j) const;
+ Byte const* to_bytes () const;
+ char const* to_str0 () const;
+ Byte* get_bytes ();
+ char* get_str0 ();
+ bool is_binary_bo () const;
+ void operator = (String_handle const &src);
+ void operator += (char const *s);
+ Byte operator[] (int j) const;
- /** Access elements. WARNING: NOT SAFE
- don't use this for loops. Use byte_c_l()
- */
- Byte &operator[](int j);
- void append( Byte const* byte_c_l, int length_i );
- void set( Byte const* byte_c_l, int length_i );
- void operator = (char const *p);
- void trunc(int j);
- int length_i() const;
+ /** Access elements. WARNING: NOT SAFE
+ don't use this for loops. Use to_bytes ()
+ */
+ Byte &operator[] (int j);
+ void append (Byte const* byte, int length_i);
+ void set (Byte const* byte, int length_i);
+ void operator = (char const *p);
+ void trunc (int j);
+ int length () const;
};
#ifdef STRING_UTILS_INLINED
#ifndef INLINE
#define INLINE inline
#endif
-#include "string-handle.inl"
+#include "string-handle.icc"
/* we should be resetting INLINE. oh well. */
#endif