| OLD | NEW |
| 1 #include "PluginStdAfx.h" | 1 #include "PluginStdAfx.h" |
| 2 #include "PluginSettings.h" | 2 #include "PluginSettings.h" |
| 3 #include "PluginSystem.h" | 3 #include "PluginSystem.h" |
| 4 #include "PluginFilter.h" | 4 #include "PluginFilter.h" |
| 5 #include "PluginClientFactory.h" | 5 #include "PluginClientFactory.h" |
| 6 #include "PluginMutex.h" | 6 #include "PluginMutex.h" |
| 7 #include "PluginClass.h" | 7 #include "PluginClass.h" |
| 8 | 8 |
| 9 #include "AdblockPlusClient.h" | 9 #include "AdblockPlusClient.h" |
| 10 | 10 |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 | 110 |
| 111 std::vector<SubscriptionDescription> ReadSubscriptions(Communication::InputBuf
fer& message) | 111 std::vector<SubscriptionDescription> ReadSubscriptions(Communication::InputBuf
fer& message) |
| 112 { | 112 { |
| 113 int32_t count; | 113 int32_t count; |
| 114 message >> count; | 114 message >> count; |
| 115 | 115 |
| 116 std::vector<SubscriptionDescription> result; | 116 std::vector<SubscriptionDescription> result; |
| 117 for (int32_t i = 0; i < count; i++) | 117 for (int32_t i = 0; i < count; i++) |
| 118 { | 118 { |
| 119 SubscriptionDescription description; | 119 SubscriptionDescription description; |
| 120 std::string url; | 120 message >> description.url; |
| 121 message >> url; | 121 message >> description.title; |
| 122 description.url = ToUtf16String(url); | 122 message >> description.specialization; |
| 123 std::string title; | |
| 124 message >> title; | |
| 125 description.title = ToUtf16String(title); | |
| 126 std::string specialization; | |
| 127 message >> specialization; | |
| 128 description.specialization = ToUtf16String(specialization); | |
| 129 message >> description.listed; | 123 message >> description.listed; |
| 130 result.push_back(description); | 124 result.push_back(description); |
| 131 } | 125 } |
| 132 return result; | 126 return result; |
| 133 } | 127 } |
| 134 } | 128 } |
| 135 | 129 |
| 136 CAdblockPlusClient* CAdblockPlusClient::s_instance = NULL; | 130 CAdblockPlusClient* CAdblockPlusClient::s_instance = NULL; |
| 137 | 131 |
| 138 CAdblockPlusClient::CAdblockPlusClient() : CPluginClientBase() | 132 CAdblockPlusClient::CAdblockPlusClient() : CPluginClientBase() |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent); | 232 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent); |
| 239 } | 233 } |
| 240 m_criticalSectionFilter.Unlock(); | 234 m_criticalSectionFilter.Unlock(); |
| 241 return isHidden; | 235 return isHidden; |
| 242 } | 236 } |
| 243 | 237 |
| 244 bool CAdblockPlusClient::IsWhitelistedUrl(const std::wstring& url) | 238 bool CAdblockPlusClient::IsWhitelistedUrl(const std::wstring& url) |
| 245 { | 239 { |
| 246 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" start").c_str()); | 240 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" start").c_str()); |
| 247 Communication::OutputBuffer request; | 241 Communication::OutputBuffer request; |
| 248 request << Communication::PROC_IS_WHITELISTED_URL << ToUtf8String(url); | 242 request << Communication::PROC_IS_WHITELISTED_URL << url; |
| 249 | 243 |
| 250 Communication::InputBuffer response; | 244 Communication::InputBuffer response; |
| 251 if (!CallEngine(request, response)) | 245 if (!CallEngine(request, response)) |
| 252 return false; | 246 return false; |
| 253 | 247 |
| 254 bool isWhitelisted; | 248 bool isWhitelisted; |
| 255 response >> isWhitelisted; | 249 response >> isWhitelisted; |
| 256 | 250 |
| 257 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" end").c_str()); | 251 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" end").c_str()); |
| 258 return isWhitelisted; | 252 return isWhitelisted; |
| 259 } | 253 } |
| 260 | 254 |
| 261 bool CAdblockPlusClient::IsElemhideWhitelistedOnDomain(const std::wstring& url) | 255 bool CAdblockPlusClient::IsElemhideWhitelistedOnDomain(const std::wstring& url) |
| 262 { | 256 { |
| 263 Communication::OutputBuffer request; | 257 Communication::OutputBuffer request; |
| 264 request << Communication::PROC_IS_ELEMHIDE_WHITELISTED_ON_URL << ToUtf8String(
url); | 258 request << Communication::PROC_IS_ELEMHIDE_WHITELISTED_ON_URL << url; |
| 265 | 259 |
| 266 Communication::InputBuffer response; | 260 Communication::InputBuffer response; |
| 267 if (!CallEngine(request, response)) | 261 if (!CallEngine(request, response)) |
| 268 return false; | 262 return false; |
| 269 | 263 |
| 270 bool isWhitelisted; | 264 bool isWhitelisted; |
| 271 response >> isWhitelisted; | 265 response >> isWhitelisted; |
| 272 return isWhitelisted; | 266 return isWhitelisted; |
| 273 } | 267 } |
| 274 | 268 |
| 275 bool CAdblockPlusClient::Matches(const std::wstring& url, const std::wstring& co
ntentType, const std::wstring& domain) | 269 bool CAdblockPlusClient::Matches(const std::wstring& url, const std::wstring& co
ntentType, const std::wstring& domain) |
| 276 { | 270 { |
| 277 Communication::OutputBuffer request; | 271 Communication::OutputBuffer request; |
| 278 request << Communication::PROC_MATCHES << ToUtf8String(url) << ToUtf8String(co
ntentType) << ToUtf8String(domain); | 272 request << Communication::PROC_MATCHES << url << contentType << domain; |
| 279 | 273 |
| 280 Communication::InputBuffer response; | 274 Communication::InputBuffer response; |
| 281 if (!CallEngine(request, response)) | 275 if (!CallEngine(request, response)) |
| 282 return false; | 276 return false; |
| 283 | 277 |
| 284 bool match; | 278 bool match; |
| 285 response >> match; | 279 response >> match; |
| 286 return match; | 280 return match; |
| 287 } | 281 } |
| 288 | 282 |
| 289 std::vector<std::wstring> CAdblockPlusClient::GetElementHidingSelectors(const st
d::wstring& domain) | 283 std::vector<std::wstring> CAdblockPlusClient::GetElementHidingSelectors(const st
d::wstring& domain) |
| 290 { | 284 { |
| 291 Communication::OutputBuffer request; | 285 Communication::OutputBuffer request; |
| 292 request << Communication::PROC_GET_ELEMHIDE_SELECTORS << ToUtf8String(domain); | 286 request << Communication::PROC_GET_ELEMHIDE_SELECTORS << domain; |
| 293 | 287 |
| 294 Communication::InputBuffer response; | 288 Communication::InputBuffer response; |
| 295 if (!CallEngine(request, response)) | 289 if (!CallEngine(request, response)) |
| 296 return std::vector<std::wstring>(); | 290 return std::vector<std::wstring>(); |
| 297 | 291 |
| 298 std::vector<std::string> selectors; | 292 std::vector<std::wstring> selectors; |
| 299 response >> selectors; | 293 response >> selectors; |
| 300 return ToUtf16Strings(selectors); | 294 return selectors; |
| 301 } | 295 } |
| 302 | 296 |
| 303 std::vector<SubscriptionDescription> CAdblockPlusClient::FetchAvailableSubscript
ions() | 297 std::vector<SubscriptionDescription> CAdblockPlusClient::FetchAvailableSubscript
ions() |
| 304 { | 298 { |
| 305 Communication::InputBuffer response; | 299 Communication::InputBuffer response; |
| 306 if (!CallEngine(Communication::PROC_AVAILABLE_SUBSCRIPTIONS, response)) | 300 if (!CallEngine(Communication::PROC_AVAILABLE_SUBSCRIPTIONS, response)) |
| 307 return std::vector<SubscriptionDescription>(); | 301 return std::vector<SubscriptionDescription>(); |
| 308 return ReadSubscriptions(response); | 302 return ReadSubscriptions(response); |
| 309 } | 303 } |
| 310 | 304 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 327 { | 321 { |
| 328 return true; | 322 return true; |
| 329 } | 323 } |
| 330 } | 324 } |
| 331 return false; | 325 return false; |
| 332 } | 326 } |
| 333 | 327 |
| 334 void CAdblockPlusClient::SetSubscription(const std::wstring& url) | 328 void CAdblockPlusClient::SetSubscription(const std::wstring& url) |
| 335 { | 329 { |
| 336 Communication::OutputBuffer request; | 330 Communication::OutputBuffer request; |
| 337 request << Communication::PROC_SET_SUBSCRIPTION << ToUtf8String(url); | 331 request << Communication::PROC_SET_SUBSCRIPTION << url; |
| 338 CallEngine(request); | 332 CallEngine(request); |
| 339 } | 333 } |
| 340 | 334 |
| 341 void CAdblockPlusClient::AddSubscription(const std::wstring& url) | 335 void CAdblockPlusClient::AddSubscription(const std::wstring& url) |
| 342 { | 336 { |
| 343 Communication::OutputBuffer request; | 337 Communication::OutputBuffer request; |
| 344 request << Communication::PROC_ADD_SUBSCRIPTION << ToUtf8String(url); | 338 request << Communication::PROC_ADD_SUBSCRIPTION << url; |
| 345 CallEngine(request); | 339 CallEngine(request); |
| 346 } | 340 } |
| 347 | 341 |
| 348 void CAdblockPlusClient::RemoveSubscription(const std::wstring& url) | 342 void CAdblockPlusClient::RemoveSubscription(const std::wstring& url) |
| 349 { | 343 { |
| 350 Communication::OutputBuffer request; | 344 Communication::OutputBuffer request; |
| 351 request << Communication::PROC_REMOVE_SUBSCRIPTION << ToUtf8String(url); | 345 request << Communication::PROC_REMOVE_SUBSCRIPTION << url; |
| 352 CallEngine(request); | 346 CallEngine(request); |
| 353 } | 347 } |
| 354 | 348 |
| 355 | 349 |
| 356 void CAdblockPlusClient::UpdateAllSubscriptions() | 350 void CAdblockPlusClient::UpdateAllSubscriptions() |
| 357 { | 351 { |
| 358 CallEngine(Communication::PROC_UPDATE_ALL_SUBSCRIPTIONS); | 352 CallEngine(Communication::PROC_UPDATE_ALL_SUBSCRIPTIONS); |
| 359 } | 353 } |
| 360 | 354 |
| 361 std::vector<std::wstring> CAdblockPlusClient::GetExceptionDomains() | 355 std::vector<std::wstring> CAdblockPlusClient::GetExceptionDomains() |
| 362 { | 356 { |
| 363 Communication::InputBuffer response; | 357 Communication::InputBuffer response; |
| 364 if (!CallEngine(Communication::PROC_GET_EXCEPTION_DOMAINS, response)) | 358 if (!CallEngine(Communication::PROC_GET_EXCEPTION_DOMAINS, response)) |
| 365 return std::vector<std::wstring>(); | 359 return std::vector<std::wstring>(); |
| 366 | 360 |
| 367 std::vector<std::string> domains; | 361 std::vector<std::wstring> domains; |
| 368 response >> domains; | 362 response >> domains; |
| 369 return ToUtf16Strings(domains); | 363 return domains; |
| 370 } | 364 } |
| 371 | 365 |
| 372 bool CAdblockPlusClient::IsFirstRun() | 366 bool CAdblockPlusClient::IsFirstRun() |
| 373 { | 367 { |
| 374 DEBUG_GENERAL("IsFirstRun"); | 368 DEBUG_GENERAL("IsFirstRun"); |
| 375 Communication::InputBuffer response; | 369 Communication::InputBuffer response; |
| 376 if (!CallEngine(Communication::PROC_IS_FIRST_RUN_ACTION_NEEDED, response)) ret
urn false; | 370 if (!CallEngine(Communication::PROC_IS_FIRST_RUN_ACTION_NEEDED, response)) ret
urn false; |
| 377 bool res; | 371 bool res; |
| 378 response >> res; | 372 response >> res; |
| 379 return res; | 373 return res; |
| 380 } | 374 } |
| 381 | 375 |
| 382 void CAdblockPlusClient::AddFilter(const std::wstring& text) | 376 void CAdblockPlusClient::AddFilter(const std::wstring& text) |
| 383 { | 377 { |
| 384 Communication::OutputBuffer request; | 378 Communication::OutputBuffer request; |
| 385 request << Communication::PROC_ADD_FILTER << ToUtf8String(text); | 379 request << Communication::PROC_ADD_FILTER << text; |
| 386 CallEngine(request); | 380 CallEngine(request); |
| 387 } | 381 } |
| 388 | 382 |
| 389 void CAdblockPlusClient::RemoveFilter(const std::wstring& text) | 383 void CAdblockPlusClient::RemoveFilter(const std::wstring& text) |
| 390 { | 384 { |
| 391 Communication::OutputBuffer request; | 385 Communication::OutputBuffer request; |
| 392 request << Communication::PROC_REMOVE_FILTER << ToUtf8String(text); | 386 request << Communication::PROC_REMOVE_FILTER << text; |
| 393 CallEngine(request); | 387 CallEngine(request); |
| 394 } | 388 } |
| 395 | 389 |
| 396 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v
alue) | 390 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v
alue) |
| 397 { | 391 { |
| 398 Communication::OutputBuffer request; | 392 Communication::OutputBuffer request; |
| 399 request << Communication::PROC_SET_PREF << ToUtf8String(name) << ToUtf8String(
value); | 393 request << Communication::PROC_SET_PREF << name << value; |
| 400 CallEngine(request); | 394 CallEngine(request); |
| 401 } | 395 } |
| 402 | 396 |
| 403 void CAdblockPlusClient::SetPref(const std::wstring& name, const int64_t & value
) | 397 void CAdblockPlusClient::SetPref(const std::wstring& name, const int64_t & value
) |
| 404 { | 398 { |
| 405 Communication::OutputBuffer request; | 399 Communication::OutputBuffer request; |
| 406 request << Communication::PROC_SET_PREF << ToUtf8String(name) << value; | 400 request << Communication::PROC_SET_PREF << name << value; |
| 407 CallEngine(request); | 401 CallEngine(request); |
| 408 } | 402 } |
| 409 | 403 |
| 410 void CAdblockPlusClient::SetPref(const std::wstring& name, bool value) | 404 void CAdblockPlusClient::SetPref(const std::wstring& name, bool value) |
| 411 { | 405 { |
| 412 Communication::OutputBuffer request; | 406 Communication::OutputBuffer request; |
| 413 request << Communication::PROC_SET_PREF << ToUtf8String(name) << value; | 407 request << Communication::PROC_SET_PREF << name << value; |
| 414 CallEngine(request); | 408 CallEngine(request); |
| 415 } | 409 } |
| 416 | 410 |
| 417 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const wchar_t
* defaultValue) | 411 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const wchar_t
* defaultValue) |
| 418 { | 412 { |
| 419 return GetPref(name, std::wstring(defaultValue)); | 413 return GetPref(name, std::wstring(defaultValue)); |
| 420 } | 414 } |
| 421 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const std::ws
tring& defaultValue) | 415 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const std::ws
tring& defaultValue) |
| 422 { | 416 { |
| 423 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 417 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
| 424 Communication::OutputBuffer request; | 418 Communication::OutputBuffer request; |
| 425 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 419 request << Communication::PROC_GET_PREF << name; |
| 426 | 420 |
| 427 Communication::InputBuffer response; | 421 Communication::InputBuffer response; |
| 428 if (!CallEngine(request, response)) | 422 if (!CallEngine(request, response)) |
| 429 return defaultValue; | 423 return defaultValue; |
| 430 bool success; | 424 bool success; |
| 431 response >> success; | 425 response >> success; |
| 432 if (success) | 426 if (success) |
| 433 { | 427 { |
| 434 std::string value; | 428 std::wstring value; |
| 435 response >> value; | 429 response >> value; |
| 436 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 430 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
| 437 return ToUtf16String(value); | 431 return value; |
| 438 } | 432 } |
| 439 else | 433 else |
| 440 { | 434 { |
| 441 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 435 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
| 442 return defaultValue; | 436 return defaultValue; |
| 443 } | 437 } |
| 444 } | 438 } |
| 445 | 439 |
| 446 bool CAdblockPlusClient::GetPref(const std::wstring& name, bool defaultValue) | 440 bool CAdblockPlusClient::GetPref(const std::wstring& name, bool defaultValue) |
| 447 { | 441 { |
| 448 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 442 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
| 449 Communication::OutputBuffer request; | 443 Communication::OutputBuffer request; |
| 450 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 444 request << Communication::PROC_GET_PREF << name; |
| 451 | 445 |
| 452 Communication::InputBuffer response; | 446 Communication::InputBuffer response; |
| 453 if (!CallEngine(request, response)) | 447 if (!CallEngine(request, response)) |
| 454 return defaultValue; | 448 return defaultValue; |
| 455 bool success; | 449 bool success; |
| 456 response >> success; | 450 response >> success; |
| 457 if (success) | 451 if (success) |
| 458 { | 452 { |
| 459 bool value; | 453 bool value; |
| 460 response >> value; | 454 response >> value; |
| 461 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 455 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
| 462 return value; | 456 return value; |
| 463 } | 457 } |
| 464 else | 458 else |
| 465 { | 459 { |
| 466 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 460 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
| 467 return defaultValue; | 461 return defaultValue; |
| 468 } | 462 } |
| 469 } | 463 } |
| 470 int64_t CAdblockPlusClient::GetPref(const std::wstring& name, int64_t defaultVal
ue) | 464 int64_t CAdblockPlusClient::GetPref(const std::wstring& name, int64_t defaultVal
ue) |
| 471 { | 465 { |
| 472 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 466 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
| 473 Communication::OutputBuffer request; | 467 Communication::OutputBuffer request; |
| 474 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 468 request << Communication::PROC_GET_PREF << name; |
| 475 | 469 |
| 476 Communication::InputBuffer response; | 470 Communication::InputBuffer response; |
| 477 if (!CallEngine(request, response)) | 471 if (!CallEngine(request, response)) |
| 478 return defaultValue; | 472 return defaultValue; |
| 479 bool success; | 473 bool success; |
| 480 response >> success; | 474 response >> success; |
| 481 if (success) | 475 if (success) |
| 482 { | 476 { |
| 483 int64_t value; | 477 int64_t value; |
| 484 response >> value; | 478 response >> value; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 498 request << Communication::PROC_CHECK_FOR_UPDATES << reinterpret_cast<int32_t>(
callbackWindow); | 492 request << Communication::PROC_CHECK_FOR_UPDATES << reinterpret_cast<int32_t>(
callbackWindow); |
| 499 CallEngine(request); | 493 CallEngine(request); |
| 500 } | 494 } |
| 501 | 495 |
| 502 std::wstring CAdblockPlusClient::GetDocumentationLink() | 496 std::wstring CAdblockPlusClient::GetDocumentationLink() |
| 503 { | 497 { |
| 504 DEBUG_GENERAL("GetDocumentationLink"); | 498 DEBUG_GENERAL("GetDocumentationLink"); |
| 505 Communication::InputBuffer response; | 499 Communication::InputBuffer response; |
| 506 if (!CallEngine(Communication::PROC_GET_DOCUMENTATION_LINK, response)) | 500 if (!CallEngine(Communication::PROC_GET_DOCUMENTATION_LINK, response)) |
| 507 return L""; | 501 return L""; |
| 508 std::string docLink; | 502 std::wstring docLink; |
| 509 response >> docLink; | 503 response >> docLink; |
| 510 return ToUtf16String(docLink); | 504 return docLink; |
| 511 } | 505 } |
| 512 | 506 |
| 513 bool CAdblockPlusClient::TogglePluginEnabled() | 507 bool CAdblockPlusClient::TogglePluginEnabled() |
| 514 { | 508 { |
| 515 DEBUG_GENERAL("TogglePluginEnabled"); | 509 DEBUG_GENERAL("TogglePluginEnabled"); |
| 516 Communication::InputBuffer response; | 510 Communication::InputBuffer response; |
| 517 if (!CallEngine(Communication::PROC_TOGGLE_PLUGIN_ENABLED, response)) | 511 if (!CallEngine(Communication::PROC_TOGGLE_PLUGIN_ENABLED, response)) |
| 518 return false; | 512 return false; |
| 519 bool currentEnabledState; | 513 bool currentEnabledState; |
| 520 response >> currentEnabledState; | 514 response >> currentEnabledState; |
| 521 return currentEnabledState; | 515 return currentEnabledState; |
| 522 } | 516 } |
| 523 | 517 |
| 524 std::wstring CAdblockPlusClient::GetHostFromUrl(const std::wstring& url) | 518 std::wstring CAdblockPlusClient::GetHostFromUrl(const std::wstring& url) |
| 525 { | 519 { |
| 526 DEBUG_GENERAL("GetHostFromUrl"); | 520 DEBUG_GENERAL("GetHostFromUrl"); |
| 527 Communication::OutputBuffer request; | 521 Communication::OutputBuffer request; |
| 528 request << Communication::PROC_GET_HOST << ToUtf8String(url); | 522 request << Communication::PROC_GET_HOST << url; |
| 529 | 523 |
| 530 Communication::InputBuffer response; | 524 Communication::InputBuffer response; |
| 531 if (!CallEngine(request, response)) | 525 if (!CallEngine(request, response)) |
| 532 return L""; | 526 return L""; |
| 533 std::string host; | 527 std::wstring host; |
| 534 response >> host; | 528 response >> host; |
| 535 return ToUtf16String(host); | 529 return host; |
| 536 } | 530 } |
| 537 | 531 |
| 538 int CAdblockPlusClient::CompareVersions(const std::wstring& v1, const std::wstri
ng& v2) | 532 int CAdblockPlusClient::CompareVersions(const std::wstring& v1, const std::wstri
ng& v2) |
| 539 { | 533 { |
| 540 DEBUG_GENERAL("CompareVersions"); | 534 DEBUG_GENERAL("CompareVersions"); |
| 541 Communication::OutputBuffer request; | 535 Communication::OutputBuffer request; |
| 542 request << Communication::PROC_COMPARE_VERSIONS << ToUtf8String(v1) << ToUtf8S
tring(v2); | 536 request << Communication::PROC_COMPARE_VERSIONS << v1 << v2; |
| 543 Communication::InputBuffer response; | 537 Communication::InputBuffer response; |
| 544 if (!CallEngine(request, response)) | 538 if (!CallEngine(request, response)) |
| 545 return 0; | 539 return 0; |
| 546 int result; | 540 int result; |
| 547 response >> result; | 541 response >> result; |
| 548 return result; | 542 return result; |
| 549 } | 543 } |
| OLD | NEW |