| OLD | NEW |
| 1 #include <AdblockPlus/FileSystem.h> | 1 #include <AdblockPlus/FileSystem.h> |
| 2 #include <stdexcept> | 2 #include <stdexcept> |
| 3 #include <sstream> | 3 #include <sstream> |
| 4 #include <vector> | 4 #include <vector> |
| 5 | 5 |
| 6 #include <AdblockPlus/JsValue.h> | 6 #include <AdblockPlus/JsValue.h> |
| 7 #include "FileSystemJsObject.h" | 7 #include "FileSystemJsObject.h" |
| 8 #include "Utils.h" | 8 #include "Utils.h" |
| 9 #include "Thread.h" | 9 #include "Thread.h" |
| 10 #include "Utils.h" | 10 #include "Utils.h" |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 JsValueList params; | 177 JsValueList params; |
| 178 params.push_back(errorValue); | 178 params.push_back(errorValue); |
| 179 callback->Call(params); | 179 callback->Call(params); |
| 180 delete this; | 180 delete this; |
| 181 } | 181 } |
| 182 | 182 |
| 183 private: | 183 private: |
| 184 std::string path; | 184 std::string path; |
| 185 }; | 185 }; |
| 186 | 186 |
| 187 |
| 187 class StatThread : public IoThread | 188 class StatThread : public IoThread |
| 188 { | 189 { |
| 189 public: | 190 public: |
| 190 StatThread(JsEnginePtr jsEngine, JsValuePtr callback, | 191 StatThread(JsEnginePtr jsEngine, JsValuePtr callback, |
| 191 const std::string& path) | 192 const std::string& path) |
| 192 : IoThread(jsEngine, callback), path(path) | 193 : IoThread(jsEngine, callback), path(path) |
| 193 { | 194 { |
| 194 } | 195 } |
| 195 | 196 |
| 196 void Run() | 197 void Run() |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 return v8::ThrowException(v8::String::New( | 306 return v8::ThrowException(v8::String::New( |
| 306 "_fileSystem.stat requires 2 parameters")); | 307 "_fileSystem.stat requires 2 parameters")); |
| 307 if (!converted[1]->IsFunction()) | 308 if (!converted[1]->IsFunction()) |
| 308 return v8::ThrowException(v8::String::New( | 309 return v8::ThrowException(v8::String::New( |
| 309 "Second argument to _fileSystem.stat must be a function")); | 310 "Second argument to _fileSystem.stat must be a function")); |
| 310 StatThread* const statThread = new StatThread(jsEngine, converted[1], | 311 StatThread* const statThread = new StatThread(jsEngine, converted[1], |
| 311 converted[0]->AsString()); | 312 converted[0]->AsString()); |
| 312 statThread->Start(); | 313 statThread->Start(); |
| 313 return v8::Undefined(); | 314 return v8::Undefined(); |
| 314 } | 315 } |
| 316 |
| 317 v8::Handle<v8::Value> ResolveCallback(const v8::Arguments& arguments) |
| 318 { |
| 319 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg
uments); |
| 320 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); |
| 321 |
| 322 if (converted.size() != 1) |
| 323 return v8::ThrowException(v8::String::New( |
| 324 "_fileSystem.resolve requires 1 parameter")); |
| 325 |
| 326 std::string resolved = jsEngine->GetFileSystem()->Resolve(converted[0]->AsSt
ring()); |
| 327 |
| 328 return v8::String::New(resolved.c_str(), resolved.length()); |
| 329 } |
| 330 |
| 315 } | 331 } |
| 316 | 332 |
| 333 |
| 317 JsValuePtr FileSystemJsObject::Setup(JsEnginePtr jsEngine, JsValuePtr obj) | 334 JsValuePtr FileSystemJsObject::Setup(JsEnginePtr jsEngine, JsValuePtr obj) |
| 318 { | 335 { |
| 319 obj->SetProperty("read", jsEngine->NewCallback(::ReadCallback)); | 336 obj->SetProperty("read", jsEngine->NewCallback(::ReadCallback)); |
| 320 obj->SetProperty("write", jsEngine->NewCallback(::WriteCallback)); | 337 obj->SetProperty("write", jsEngine->NewCallback(::WriteCallback)); |
| 321 obj->SetProperty("move", jsEngine->NewCallback(::MoveCallback)); | 338 obj->SetProperty("move", jsEngine->NewCallback(::MoveCallback)); |
| 322 obj->SetProperty("remove", jsEngine->NewCallback(::RemoveCallback)); | 339 obj->SetProperty("remove", jsEngine->NewCallback(::RemoveCallback)); |
| 323 obj->SetProperty("stat", jsEngine->NewCallback(::StatCallback)); | 340 obj->SetProperty("stat", jsEngine->NewCallback(::StatCallback)); |
| 341 obj->SetProperty("resolve", jsEngine->NewCallback(::ResolveCallback)); |
| 324 return obj; | 342 return obj; |
| 325 } | 343 } |
| OLD | NEW |