@ -29,25 +29,20 @@
namespace node {
using v8 : : Handle ;
using v8 : : Local ;
using v8 : : String ;
using v8 : : Value ;
class StringBytes {
public :
// Does the string match the encoding? Quick but non-exhaustive.
// Example: a HEX string must have a length that's a multiple of two.
// FIXME(bnoordhuis) IsMaybeValidString()? Naming things is hard...
static bool IsValidString ( Handle < String > string , enum encoding enc ) ;
static bool IsValidString ( v8 : : Handle < v8 : : String > string , enum encoding enc ) ;
// Fast, but can be 2 bytes oversized for Base64, and
// as much as triple UTF-8 strings <= 65536 chars in length
static size_t StorageSize ( Handle < Value > val , enum encoding enc ) ;
static size_t StorageSize ( v8 : : Handle < v8 : : Value > val , enum encoding enc ) ;
// Precise byte count, but slightly slower for Base64 and
// very much slower for UTF-8
static size_t Size ( Handle < Value > val , enum encoding enc ) ;
static size_t Size ( v8 : : Handle < v8 : : Value > val , enum encoding enc ) ;
// Write the bytes from the string or buffer into the char*
// returns the number of bytes written, which will always be
@ -55,14 +50,14 @@ class StringBytes {
// memory to allocate.
static size_t Write ( char * buf ,
size_t buflen ,
Handle < Value > val ,
v8 : : Handle < v8 : : Value > val ,
enum encoding enc ,
int * chars_written = NULL ) ;
// Take the bytes in the src, and turn it into a Buffer or String.
static Local < Value > Encode ( const char * buf ,
size_t buflen ,
enum encoding encoding ) ;
static v8 : : Local < v8 : : Value > Encode ( const char * buf ,
size_t buflen ,
enum encoding encoding ) ;
} ;
} // namespace node