本文整理汇总了C++中Handle::IsInt32方法的典型用法代码示例。如果您正苦于以下问题:C++ Handle::IsInt32方法的具体用法?C++ Handle::IsInt32怎么用?C++ Handle::IsInt32使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Handle
的用法示例。
在下文中一共展示了Handle::IsInt32方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UserException
int V8Scope::type( const char *field ){
V8_SIMPLE_HEADER
Handle<Value> v = get( field );
if ( v->IsNull() )
return jstNULL;
if ( v->IsUndefined() )
return Undefined;
if ( v->IsString() )
return String;
if ( v->IsFunction() )
return Code;
if ( v->IsArray() )
return Array;
if ( v->IsBoolean() )
return Bool;
if ( v->IsInt32() )
return NumberInt;
if ( v->IsNumber() )
return NumberDouble;
if ( v->IsExternal() ){
uassert( 10230 , "can't handle external yet" , 0 );
return -1;
}
if ( v->IsDate() )
return Date;
if ( v->IsObject() )
return Object;
throw UserException( 12509, (string)"don't know what this is: " + field );
}
示例2: printV8Value
void printV8Value(Handle<Value> value, bool force=false)
{
Logging::Level level = force ? Logging::ERROR : Logging::INFO;
if (!Logging::shouldShow(level)) return;
HandleScope handleScope;
if (value.IsEmpty())
Logging::log(level, "Empty handle\r\n");
else if (value->IsInt32())
Logging::log(level, "INT: %d\r\n", value->IntegerValue());
else if (value->IsNull())
Logging::log(level, "NULL (null)\r\n");
else if (value->IsUndefined())
Logging::log(level, "VOID (undefined)\r\n");
else if (value->IsBoolean())
Logging::log(level, "BOOLEAN: %d\r\n", value->BooleanValue());
else if (value->IsNumber())
Logging::log(level, "NUMBER: %f\r\n", value->NumberValue());
else if (value->IsString())
Logging::log(level, "STRING: ?\r\n");
else if (value->IsObject())
Logging::log(level, "OBJECT (object)\r\n");
else
Logging::log(level, "Uncertain V8 value\n");
}
示例3: GetNaturalType
int Conv::GetNaturalType(Handle<Value> val) {
if(val.IsEmpty()) return TYPE_INVALID;
if(val->IsUndefined()) return TYPE_UNDEFINED;
if(val->IsNull()) return TYPE_NULL;
if(val->IsBoolean() || val->IsBooleanObject()) return TYPE_BOOL;
if(val->IsInt32()) return TYPE_INT;
if(val->IsUint32()) return TYPE_LONG;
if(val->IsNumber() || val->IsNumberObject()) return TYPE_DOUBLE;
if(val->IsString() || val->IsStringObject()) return TYPE_STRING;
return GetNaturalType(Handle<Object>::Cast(val));
}
示例4: obj2addr
int obj2addr (Handle<Object> obj, struct sockaddr_in* addr) {
HandleScope scope;
String::AsciiValue a (obj->Get(JS_str("addr")));
Handle<Value> p = obj->Get(JS_str("port"));
memset(addr,0,sizeof(struct sockaddr_in));
if (1!=inet_pton(AF_INET,*a,&(addr->sin_addr.s_addr)))
return -1;
if (!p->IsInt32())
return -2;
addr->sin_port = htons((uint16_t)p->Uint32Value());
addr->sin_family = AF_INET;
return 0;
}
示例5: setField
inline bool setField(OGRFeature* f, int field_index, Handle<Value> val){
if (val->IsInt32()) {
f->SetField(field_index, val->Int32Value());
} else if (val->IsNumber()) {
f->SetField(field_index, val->NumberValue());
} else if (val->IsString()) {
std::string str = *NanUtf8String(val);
f->SetField(field_index, str.c_str());
} else if(val->IsNull() || val->IsUndefined()) {
f->UnsetField(field_index);
} else {
return true;
}
return false;
}
示例6: rr_v82rb
VALUE rr_v82rb(Handle<Value> value) {
if (value.IsEmpty()) {
return rr_v8_value_empty();
}
if (value->IsUndefined() || value->IsNull()) {
return Qnil;
}
if (value->IsExternal()) {
return rr_reflect_v8_external(value);
}
if (value->IsUint32()) {
return UINT2NUM(value->Uint32Value());
}
if (value->IsInt32()) {
return INT2FIX(value->Int32Value());
}
if (value->IsBoolean()) {
return value->BooleanValue() ? Qtrue : Qfalse;
}
if (value->IsNumber()) {
return rb_float_new(value->NumberValue());
}
if (value->IsString()) {
return rr_reflect_v8_string(value);
}
if (value->IsFunction()) {
return rr_reflect_v8_function(value);
}
if (value->IsArray()) {
return rr_reflect_v8_array(value);
}
if (value->IsDate()) {
return rr_reflect_v8_date(value);
}
if (value->IsObject()) {
return rr_reflect_v8_object(value);
}
return rr_wrap_v8_value(value);
}
示例7: if
jsvalue JsEngine::AnyFromV8(Handle<Value> value, Handle<Object> thisArg)
{
jsvalue v;
// Initialize to a generic error.
v.type = JSVALUE_TYPE_UNKNOWN_ERROR;
v.length = 0;
v.value.str = 0;
if (value->IsNull() || value->IsUndefined()) {
v.type = JSVALUE_TYPE_NULL;
}
else if (value->IsBoolean()) {
v.type = JSVALUE_TYPE_BOOLEAN;
v.value.i32 = value->BooleanValue() ? 1 : 0;
}
else if (value->IsInt32()) {
v.type = JSVALUE_TYPE_INTEGER;
v.value.i32 = value->Int32Value();
}
else if (value->IsUint32()) {
v.type = JSVALUE_TYPE_INDEX;
v.value.i64 = value->Uint32Value();
}
else if (value->IsNumber()) {
v.type = JSVALUE_TYPE_NUMBER;
v.value.num = value->NumberValue();
}
else if (value->IsString()) {
v = StringFromV8(value);
}
else if (value->IsDate()) {
v.type = JSVALUE_TYPE_DATE;
v.value.num = value->NumberValue();
}
else if (value->IsArray()) {
Handle<Array> object = Handle<Array>::Cast(value->ToObject());
v.length = object->Length();
jsvalue* array = new jsvalue[v.length];
if (array != NULL) {
for(int i = 0; i < v.length; i++) {
array[i] = AnyFromV8(object->Get(i));
}
v.type = JSVALUE_TYPE_ARRAY;
v.value.arr = array;
}
}
else if (value->IsFunction()) {
Handle<Function> function = Handle<Function>::Cast(value);
jsvalue* array = new jsvalue[2];
if (array != NULL) {
array[0].value.ptr = new Persistent<Object>(Persistent<Function>::New(function));
array[0].length = 0;
array[0].type = JSVALUE_TYPE_WRAPPED;
if (!thisArg.IsEmpty()) {
array[1].value.ptr = new Persistent<Object>(Persistent<Object>::New(thisArg));
array[1].length = 0;
array[1].type = JSVALUE_TYPE_WRAPPED;
} else {
array[1].value.ptr = NULL;
array[1].length = 0;
array[1].type = JSVALUE_TYPE_NULL;
}
v.type = JSVALUE_TYPE_FUNCTION;
v.value.arr = array;
}
}
else if (value->IsObject()) {
Handle<Object> obj = Handle<Object>::Cast(value);
if (obj->InternalFieldCount() == 1)
v = ManagedFromV8(obj);
else
v = WrappedFromV8(obj);
}
return v;
}
示例8: GetInBindParams
/*
DESCRIPTION
Processing in binds
PARAMETERS:
Handle value, bind struct, eBaton struct
*/
void Connection::GetInBindParams (Handle<Value> v8val, Bind* bind,
eBaton* executeBaton, BindType type)
{
bind->ind = 0;
if(v8val->IsUndefined() || v8val->IsNull())
{
bind->value = NULL;
bind->ind = -1;
bind->type = dpi::DpiVarChar;
}
else if(v8val->IsString())
{
if( bind->type && bind->type != DATA_STR )
{
executeBaton->error= NJSMessages::getErrorMsg(
errBindValueAndTypeMismatch, 2);
goto exitGetInBindParams;
}
v8::String::Utf8Value str(v8val->ToString());
bind->type = dpi::DpiVarChar;
if(type == BIND_INOUT)
{
bind->len = str.length();
}
else // IN
{
bind->maxSize = bind->len = str.length();
}
DPI_SZ_TYPE size = (bind->maxSize >= bind->len ) ?
bind->maxSize : bind->len;
if(size)
{
bind->value = (char*)malloc(size);
if(str.length())
memcpy(bind->value, *str, str.length());
}
}
else if(v8val->IsInt32())
{
if( bind->type && bind->type != DATA_NUM )
{
executeBaton->error= NJSMessages::getErrorMsg(
errBindValueAndTypeMismatch, 2);
goto exitGetInBindParams;
}
bind->type = dpi::DpiInteger;
bind->maxSize = bind->len = sizeof(int);
bind->value = (int*)malloc(bind->len);
*(int*)(bind->value) = v8val->ToInt32()->Value();
}
else if(v8val->IsUint32())
{
if( bind->type && bind->type != DATA_NUM )
{
executeBaton->error= NJSMessages::getErrorMsg(
errBindValueAndTypeMismatch, 2);
goto exitGetInBindParams;
}
bind->type = dpi::DpiUnsignedInteger;
bind->maxSize = bind->len = sizeof(unsigned int);
bind->value = (unsigned int*)malloc(bind->len);
*(unsigned int*)(bind->value) = v8val->ToUint32()->Value();
}
else if(v8val->IsNumber())
{
if( bind->type && bind->type != DATA_NUM )
{
executeBaton->error= NJSMessages::getErrorMsg(errBindValueAndTypeMismatch, 2);
goto exitGetInBindParams;
}
bind->type = dpi::DpiDouble;
bind->maxSize = bind->len = sizeof(double);
bind->value = (double*)malloc(bind->len);
*(double*)(bind->value) = v8val->NumberValue();
}
else if(v8val->IsDate ())
{
if( bind->type && bind->type != DATA_DATE )
{
executeBaton->error= NJSMessages::getErrorMsg(errBindValueAndTypeMismatch, 2);
goto exitGetInBindParams;
}
/* This has to be allocated after stmt is initialized */
bind->dttmarr = NULL ;
bind->extvalue = (long double *) malloc (sizeof ( long double ) );
bind->value = (long double *)malloc (sizeof ( long double ));
bind->type = dpi::DpiTimestampLTZ;
bind->len = 0;
bind->maxSize = 0;
/* Convert v8::Date value to long double */
Connection::v8Date2OraDate ( v8val, bind);
//.........这里部分代码省略.........
示例9:
extern "C" bool isInt32(Handle<Value> n) {
return n->IsInt32();
}