![]() |
RTBKit
0.9
Open-source framework to create real-time ad bidding systems.
|
00001 /* js_value.h -*- C++ -*- 00002 Jeremy Barnes, 21 July 2010 00003 Copyright (c) 2010 Datacratic. All rights reserved. 00004 00005 Definition of what a javascript value is. 00006 */ 00007 00008 #pragma once 00009 00010 #include "js_value_fwd.h" 00011 #include "v8/v8.h" 00012 00013 namespace Datacratic { 00014 namespace JS { 00015 00016 00017 /*****************************************************************************/ 00018 /* JSVALUE */ 00019 /*****************************************************************************/ 00020 00024 struct JSValue : public v8::Handle<v8::Value> { 00025 JSValue() 00026 { 00027 } 00028 00029 template<typename T> 00030 JSValue(const v8::Local<T> & val) 00031 : v8::Handle<v8::Value>(val) 00032 { 00033 } 00034 00035 template<typename T> 00036 JSValue(const v8::Handle<T> & val) 00037 : v8::Handle<v8::Value>(val) 00038 { 00039 } 00040 00041 operator v8::Handle<v8::Object>() const; 00042 }; 00043 00044 00045 /*****************************************************************************/ 00046 /* JSVALUE */ 00047 /*****************************************************************************/ 00048 00053 struct JSObject : public v8::Handle<v8::Object> { 00054 JSObject() 00055 { 00056 } 00057 00058 template<typename T> 00059 JSObject(const v8::Local<T> & val) 00060 : v8::Handle<v8::Object>(val) 00061 { 00062 } 00063 00064 template<typename T> 00065 JSObject(const v8::Handle<T> & val) 00066 : v8::Handle<v8::Object>(val) 00067 { 00068 } 00069 00070 void initialize(); 00071 00072 void add(const std::string & key, const std::string & value); 00073 void add(const std::string & key, const JSValue & value); 00074 }; 00075 00076 } // namespace JS 00077 } // namespace Datacratic