OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ppapi/proxy/ppb_flash_file_proxy.h" | 5 #include "ppapi/proxy/ppb_flash_file_proxy.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <set> | 8 #include <set> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
494 &ClearThreadAdapterForInstance, | 494 &ClearThreadAdapterForInstance, |
495 &OpenModuleLocalFile, | 495 &OpenModuleLocalFile, |
496 &RenameModuleLocalFile, | 496 &RenameModuleLocalFile, |
497 &DeleteModuleLocalFileOrDir, | 497 &DeleteModuleLocalFileOrDir, |
498 &CreateModuleLocalDir, | 498 &CreateModuleLocalDir, |
499 &QueryModuleLocalFile, | 499 &QueryModuleLocalFile, |
500 &GetModuleLocalDirContents, | 500 &GetModuleLocalDirContents, |
501 &FreeDirContents, | 501 &FreeDirContents, |
502 }; | 502 }; |
503 | 503 |
504 InterfaceProxy* CreateFlashFileModuleLocalProxy(Dispatcher* dispatcher) { | 504 InterfaceProxy* CreateFlashFileModuleLocalProxy(Dispatcher* dispatcher, |
505 return new PPB_Flash_File_ModuleLocal_Proxy(dispatcher); | 505 const void* target_interface) { |
| 506 return new PPB_Flash_File_ModuleLocal_Proxy(dispatcher, target_interface); |
506 } | 507 } |
507 | 508 |
508 } // namespace | 509 } // namespace |
509 | 510 |
510 PPB_Flash_File_ModuleLocal_Proxy::PPB_Flash_File_ModuleLocal_Proxy( | 511 PPB_Flash_File_ModuleLocal_Proxy::PPB_Flash_File_ModuleLocal_Proxy( |
511 Dispatcher* dispatcher) | 512 Dispatcher* dispatcher, |
512 : InterfaceProxy(dispatcher), | 513 const void* target_interface) |
513 ppb_flash_file_module_local_impl_(NULL) { | 514 : InterfaceProxy(dispatcher, target_interface) { |
514 if (!dispatcher->IsPlugin()) { | |
515 ppb_flash_file_module_local_impl_ = | |
516 static_cast<const PPB_Flash_File_ModuleLocal*>( | |
517 dispatcher->local_get_interface()( | |
518 PPB_FLASH_FILE_MODULELOCAL_INTERFACE)); | |
519 } | |
520 } | 515 } |
521 | 516 |
522 PPB_Flash_File_ModuleLocal_Proxy::~PPB_Flash_File_ModuleLocal_Proxy() { | 517 PPB_Flash_File_ModuleLocal_Proxy::~PPB_Flash_File_ModuleLocal_Proxy() { |
523 } | 518 } |
524 | 519 |
525 // static | 520 // static |
526 const InterfaceProxy::Info* PPB_Flash_File_ModuleLocal_Proxy::GetInfo() { | 521 const InterfaceProxy::Info* PPB_Flash_File_ModuleLocal_Proxy::GetInfo() { |
527 static const Info info = { | 522 static const Info info = { |
528 &flash_file_modulelocal_interface, | 523 &flash_file_modulelocal_interface, |
529 PPB_FLASH_FILE_MODULELOCAL_INTERFACE, | 524 PPB_FLASH_FILE_MODULELOCAL_INTERFACE, |
(...skipping 26 matching lines...) Expand all Loading... |
556 return handled; | 551 return handled; |
557 } | 552 } |
558 | 553 |
559 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgOpenFile( | 554 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgOpenFile( |
560 PP_Instance instance, | 555 PP_Instance instance, |
561 const std::string& path, | 556 const std::string& path, |
562 int32_t mode, | 557 int32_t mode, |
563 IPC::PlatformFileForTransit* file_handle, | 558 IPC::PlatformFileForTransit* file_handle, |
564 int32_t* result) { | 559 int32_t* result) { |
565 base::PlatformFile file; | 560 base::PlatformFile file; |
566 *result = ppb_flash_file_module_local_impl_->OpenFile( | 561 *result = ppb_flash_file_module_local_target()-> |
567 instance, path.c_str(), mode, &file); | 562 OpenFile(instance, path.c_str(), mode, &file); |
568 *file_handle = PlatformFileToPlatformFileForTransit( | 563 *file_handle = PlatformFileToPlatformFileForTransit( |
569 dispatcher(), result, file); | 564 dispatcher(), result, file); |
570 } | 565 } |
571 | 566 |
572 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgRenameFile( | 567 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgRenameFile( |
573 PP_Instance instance, | 568 PP_Instance instance, |
574 const std::string& from_path, | 569 const std::string& from_path, |
575 const std::string& to_path, | 570 const std::string& to_path, |
576 int32_t* result) { | 571 int32_t* result) { |
577 *result = ppb_flash_file_module_local_impl_->RenameFile( | 572 *result = ppb_flash_file_module_local_target()-> |
578 instance, from_path.c_str(), to_path.c_str()); | 573 RenameFile(instance, from_path.c_str(), to_path.c_str()); |
579 } | 574 } |
580 | 575 |
581 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgDeleteFileOrDir( | 576 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgDeleteFileOrDir( |
582 PP_Instance instance, | 577 PP_Instance instance, |
583 const std::string& path, | 578 const std::string& path, |
584 PP_Bool recursive, | 579 PP_Bool recursive, |
585 int32_t* result) { | 580 int32_t* result) { |
586 *result = ppb_flash_file_module_local_impl_->DeleteFileOrDir( | 581 *result = ppb_flash_file_module_local_target()-> |
587 instance, path.c_str(), recursive); | 582 DeleteFileOrDir(instance, path.c_str(), recursive); |
588 } | 583 } |
589 | 584 |
590 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgCreateDir(PP_Instance instance, | 585 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgCreateDir(PP_Instance instance, |
591 const std::string& path, | 586 const std::string& path, |
592 int32_t* result) { | 587 int32_t* result) { |
593 *result = ppb_flash_file_module_local_impl_->CreateDir( | 588 *result = ppb_flash_file_module_local_target()-> |
594 instance, path.c_str()); | 589 CreateDir(instance, path.c_str()); |
595 } | 590 } |
596 | 591 |
597 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgQueryFile(PP_Instance instance, | 592 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgQueryFile(PP_Instance instance, |
598 const std::string& path, | 593 const std::string& path, |
599 PP_FileInfo* info, | 594 PP_FileInfo* info, |
600 int32_t* result) { | 595 int32_t* result) { |
601 *result = ppb_flash_file_module_local_impl_->QueryFile( | 596 *result = ppb_flash_file_module_local_target()-> |
602 instance, path.c_str(), info); | 597 QueryFile(instance, path.c_str(), info); |
603 } | 598 } |
604 | 599 |
605 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgGetDirContents( | 600 void PPB_Flash_File_ModuleLocal_Proxy::OnMsgGetDirContents( |
606 PP_Instance instance, | 601 PP_Instance instance, |
607 const std::string& path, | 602 const std::string& path, |
608 std::vector<SerializedDirEntry>* entries, | 603 std::vector<SerializedDirEntry>* entries, |
609 int32_t* result) { | 604 int32_t* result) { |
610 PP_DirContents_Dev* contents = NULL; | 605 PP_DirContents_Dev* contents = NULL; |
611 *result = ppb_flash_file_module_local_impl_->GetDirContents( | 606 *result = ppb_flash_file_module_local_target()-> |
612 instance, path.c_str(), &contents); | 607 GetDirContents(instance, path.c_str(), &contents); |
613 if (*result != PP_OK) | 608 if (*result != PP_OK) |
614 return; | 609 return; |
615 | 610 |
616 // Convert the list of entries to the serialized version. | 611 // Convert the list of entries to the serialized version. |
617 entries->resize(contents->count); | 612 entries->resize(contents->count); |
618 for (int32_t i = 0; i < contents->count; i++) { | 613 for (int32_t i = 0; i < contents->count; i++) { |
619 (*entries)[i].name.assign(contents->entries[i].name); | 614 (*entries)[i].name.assign(contents->entries[i].name); |
620 (*entries)[i].is_dir = PP_ToBool(contents->entries[i].is_dir); | 615 (*entries)[i].is_dir = PP_ToBool(contents->entries[i].is_dir); |
621 } | 616 } |
622 ppb_flash_file_module_local_impl_->FreeDirContents(instance, contents); | 617 ppb_flash_file_module_local_target()->FreeDirContents(instance, contents); |
623 } | 618 } |
624 | 619 |
625 // PPB_Flash_File_FileRef ------------------------------------------------------ | 620 // PPB_Flash_File_FileRef ------------------------------------------------------ |
626 | 621 |
627 namespace { | 622 namespace { |
628 | 623 |
629 int32_t OpenFileRefFile(PP_Resource file_ref_id, | 624 int32_t OpenFileRefFile(PP_Resource file_ref_id, |
630 int32_t mode, | 625 int32_t mode, |
631 PP_FileHandle* file) { | 626 PP_FileHandle* file) { |
632 Resource* file_ref = | 627 Resource* file_ref = |
(...skipping 30 matching lines...) Expand all Loading... |
663 INTERFACE_ID_PPB_FLASH_FILE_FILEREF, | 658 INTERFACE_ID_PPB_FLASH_FILE_FILEREF, |
664 file_ref->host_resource(), info, &result)); | 659 file_ref->host_resource(), info, &result)); |
665 return result; | 660 return result; |
666 } | 661 } |
667 | 662 |
668 const PPB_Flash_File_FileRef flash_file_fileref_interface = { | 663 const PPB_Flash_File_FileRef flash_file_fileref_interface = { |
669 &OpenFileRefFile, | 664 &OpenFileRefFile, |
670 &QueryFileRefFile, | 665 &QueryFileRefFile, |
671 }; | 666 }; |
672 | 667 |
673 InterfaceProxy* CreateFlashFileFileRefProxy(Dispatcher* dispatcher) { | 668 InterfaceProxy* CreateFlashFileFileRefProxy(Dispatcher* dispatcher, |
674 return new PPB_Flash_File_FileRef_Proxy(dispatcher); | 669 const void* target_interface) { |
| 670 return new PPB_Flash_File_FileRef_Proxy(dispatcher, target_interface); |
675 } | 671 } |
676 | 672 |
677 } // namespace | 673 } // namespace |
678 | 674 |
679 PPB_Flash_File_FileRef_Proxy::PPB_Flash_File_FileRef_Proxy( | 675 PPB_Flash_File_FileRef_Proxy::PPB_Flash_File_FileRef_Proxy( |
680 Dispatcher* dispatcher) | 676 Dispatcher* dispatcher, |
681 : InterfaceProxy(dispatcher), | 677 const void* target_interface) |
682 ppb_flash_file_fileref_impl_(NULL) { | 678 : InterfaceProxy(dispatcher, target_interface) { |
683 if (!dispatcher->IsPlugin()) { | |
684 ppb_flash_file_fileref_impl_ = static_cast<const PPB_Flash_File_FileRef*>( | |
685 dispatcher->local_get_interface()(PPB_FLASH_FILE_FILEREF_INTERFACE)); | |
686 } | |
687 } | 679 } |
688 | 680 |
689 PPB_Flash_File_FileRef_Proxy::~PPB_Flash_File_FileRef_Proxy() { | 681 PPB_Flash_File_FileRef_Proxy::~PPB_Flash_File_FileRef_Proxy() { |
690 } | 682 } |
691 | 683 |
692 // static | 684 // static |
693 const InterfaceProxy::Info* PPB_Flash_File_FileRef_Proxy::GetInfo() { | 685 const InterfaceProxy::Info* PPB_Flash_File_FileRef_Proxy::GetInfo() { |
694 static const Info info = { | 686 static const Info info = { |
695 &flash_file_fileref_interface, | 687 &flash_file_fileref_interface, |
696 PPB_FLASH_FILE_FILEREF_INTERFACE, | 688 PPB_FLASH_FILE_FILEREF_INTERFACE, |
(...skipping 17 matching lines...) Expand all Loading... |
714 // TODO(brettw) handle bad messages! | 706 // TODO(brettw) handle bad messages! |
715 return handled; | 707 return handled; |
716 } | 708 } |
717 | 709 |
718 void PPB_Flash_File_FileRef_Proxy::OnMsgOpenFile( | 710 void PPB_Flash_File_FileRef_Proxy::OnMsgOpenFile( |
719 const HostResource& host_resource, | 711 const HostResource& host_resource, |
720 int32_t mode, | 712 int32_t mode, |
721 IPC::PlatformFileForTransit* file_handle, | 713 IPC::PlatformFileForTransit* file_handle, |
722 int32_t* result) { | 714 int32_t* result) { |
723 base::PlatformFile file; | 715 base::PlatformFile file; |
724 *result = ppb_flash_file_fileref_impl_->OpenFile( | 716 *result = ppb_flash_file_module_local_target()-> |
725 host_resource.host_resource(), mode, &file); | 717 OpenFile(host_resource.host_resource(), mode, &file); |
726 *file_handle = PlatformFileToPlatformFileForTransit( | 718 *file_handle = PlatformFileToPlatformFileForTransit( |
727 dispatcher(), result, file); | 719 dispatcher(), result, file); |
728 } | 720 } |
729 | 721 |
730 void PPB_Flash_File_FileRef_Proxy::OnMsgQueryFile( | 722 void PPB_Flash_File_FileRef_Proxy::OnMsgQueryFile( |
731 const HostResource& host_resource, | 723 const HostResource& host_resource, |
732 PP_FileInfo* info, | 724 PP_FileInfo* info, |
733 int32_t* result) { | 725 int32_t* result) { |
734 *result = ppb_flash_file_fileref_impl_->QueryFile( | 726 *result = ppb_flash_file_module_local_target()-> |
735 host_resource.host_resource(), info); | 727 QueryFile(host_resource.host_resource(), info); |
736 } | 728 } |
737 | 729 |
738 } // namespace proxy | 730 } // namespace proxy |
739 } // namespace ppapi | 731 } // namespace ppapi |
OLD | NEW |