Subversion Repositories HomeAutomation

Rev

Rev 1740 | Rev 1898 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1740 Rev 1741
Line 32... Line 32...
32
 
32
 
33
logging::Logger Storage::LOG("vm::plugin::storage");
33
logging::Logger Storage::LOG("vm::plugin::storage");
34
   
34
   
35
Storage::Storage(boost::asio::io_service& io_service) : Plugin(io_service)
35
Storage::Storage(boost::asio::io_service& io_service) : Plugin(io_service)
36
{
36
{
37
    this->name_ = "storage";
37
    this->name_ = "Storage";
38
   
38
   
39
    this->ExportFunction("StorageExport_GetParameters", Storage::Export_GetParameters);
39
    this->ExportFunction("StorageExport_GetParameters", Storage::Export_GetParameters);
40
    this->ExportFunction("StorageExport_GetParameter",  Storage::Export_GetParameter);
40
    this->ExportFunction("StorageExport_GetParameter",  Storage::Export_GetParameter);
41
    this->ExportFunction("StorageExport_SetParameter",  Storage::Export_SetParameter);
41
    this->ExportFunction("StorageExport_SetParameter",  Storage::Export_SetParameter);
42
}
42
}
Line 57... Line 57...
57
 
57
 
58
Value Storage::Export_GetParameters(const v8::Arguments& args)
58
Value Storage::Export_GetParameters(const v8::Arguments& args)
59
{
59
{
60
    v8::Locker lock;
60
    v8::Locker lock;
61
    v8::Context::Scope context_scope(vm::Manager::Instance()->GetContext());
61
    v8::Context::Scope context_scope(vm::Manager::Instance()->GetContext());
-
 
62
    v8::HandleScope handle_scope;
62
   
63
   
63
    //LOG.Debug(std::string(__FUNCTION__) + " called!");
64
    //LOG.Debug(std::string(__FUNCTION__) + " called!");
64
   
65
   
65
    if (args.Length() < 1)
66
    if (args.Length() < 1)
66
    {
67
    {
67
        LOG.Error(std::string(__FUNCTION__) + ": To few arguments.");
68
        LOG.Error(std::string(__FUNCTION__) + ": To few arguments.");
68
        return v8::Boolean::New(false);
69
        return handle_scope.Close(v8::Boolean::New(false));
69
    }
70
    }
70
   
71
   
71
    v8::String::AsciiValue store_name(args[0]);
72
    v8::String::AsciiValue store_name(args[0]);
72
   
73
   
73
    storage::Store::ParameterList parameters = storage::Manager::Instance()->GetParameters(*store_name);
74
    storage::Store::ParameterList parameters = storage::Manager::Instance()->GetParameters(*store_name);
74
   
75
   
75
    v8::Local<v8::Array> params = v8::Array::New(parameters.size());
76
    v8::Local<v8::Array> params = v8::Array::New(parameters.size());
76
 
77
 
77
    for (storage::Store::ParameterList::iterator it = parameters.begin(); it != parameters.end(); it++)
78
    for (storage::Store::ParameterList::iterator it = parameters.begin(); it != parameters.end(); it++)
78
    {
79
    {
-
 
80
        LOG.Debug(std::string(__FUNCTION__) + ": first=\"" + it->first.data() + "\", second=\"" + it->second.data() + "\"");
79
        params->Set(v8::String::New(it->first.data()), v8::String::New(it->second.data()));
81
        params->Set(v8::String::New(it->first.data()), v8::String::New(it->second.data()));
80
    }
82
    }
81
 
83
 
82
    return params;
84
    return handle_scope.Close(params);
83
}
85
}
84
 
86
 
85
Value Storage::Export_GetParameter(const v8::Arguments& args)
87
Value Storage::Export_GetParameter(const v8::Arguments& args)
86
{
88
{
87
    v8::Locker lock;
89
    v8::Locker lock;
88
    v8::Context::Scope context_scope(vm::Manager::Instance()->GetContext());
90
    v8::Context::Scope context_scope(vm::Manager::Instance()->GetContext());
-
 
91
    v8::HandleScope handle_scope;
89
   
92
   
90
    //LOG.Debug(std::string(__FUNCTION__) + " called!");
93
    //LOG.Debug(std::string(__FUNCTION__) + " called!");
91
   
94
   
92
    if (args.Length() < 2)
95
    if (args.Length() < 2)
93
    {
96
    {
94
        LOG.Error(std::string(__FUNCTION__) + ": To few arguments.");
97
        LOG.Error(std::string(__FUNCTION__) + ": To few arguments.");
95
        return v8::Boolean::New(false);
98
        return handle_scope.Close(v8::Boolean::New(false));
96
    }
99
    }
97
   
100
   
98
    v8::String::AsciiValue store_name(args[0]);
101
    v8::String::AsciiValue store_name(args[0]);
99
    v8::String::AsciiValue parameter_name(args[1]);
102
    v8::String::AsciiValue parameter_name(args[1]);
100
   
103
   
Line 107... Line 110...
107
    catch (std::runtime_error& e)
110
    catch (std::runtime_error& e)
108
    {
111
    {
109
        result = v8::Undefined();
112
        result = v8::Undefined();
110
    }
113
    }
111
   
114
   
112
    return result;
115
    return handle_scope.Close(result);
113
}
116
}
114
 
117
 
115
Value Storage::Export_SetParameter(const v8::Arguments& args)
118
Value Storage::Export_SetParameter(const v8::Arguments& args)
116
{
119
{
117
    v8::Locker lock;
120
    v8::Locker lock;
118
    v8::Context::Scope context_scope(vm::Manager::Instance()->GetContext());
121
    v8::Context::Scope context_scope(vm::Manager::Instance()->GetContext());
-
 
122
    v8::HandleScope handle_scope;
119
   
123
   
120
    //LOG.Debug(std::string(__FUNCTION__) + " called!");
124
    //LOG.Debug(std::string(__FUNCTION__) + " called!");
121
   
125
   
122
    if (args.Length() < 3)
126
    if (args.Length() < 3)
123
    {
127
    {
124
        LOG.Error(std::string(__FUNCTION__) + ": To few arguments.");
128
        LOG.Error(std::string(__FUNCTION__) + ": To few arguments.");
125
        return v8::Boolean::New(false);
129
        return handle_scope.Close(v8::Boolean::New(false));
126
    }
130
    }
127
   
131
   
128
    v8::String::AsciiValue store_name(args[0]);
132
    v8::String::AsciiValue store_name(args[0]);
129
    v8::String::AsciiValue parameter_name(args[1]);
133
    v8::String::AsciiValue parameter_name(args[1]);
130
    v8::String::AsciiValue parameter_value(args[2]);
134
    v8::String::AsciiValue parameter_value(args[2]);
131
   
135
   
132
    storage::Manager::Instance()->SetParameter(*store_name, *parameter_name, *parameter_value);
136
    storage::Manager::Instance()->SetParameter(*store_name, *parameter_name, *parameter_value);
133
   
137
   
134
    return v8::String::New("OK");
138
    return handle_scope.Close(v8::String::New("OK"));
135
}
139
}
136
   
140
   
137
}; // namespace plugin
141
}; // namespace plugin
138
}; // namespace vm
142
}; // namespace vm
139
}; // namespace atom
143
}; // namespace atom