RTBKit  0.9
Open-source framework to create real-time ad bidding systems.
soa/js/js_value.h
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
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator