Pepper_47_C++_interfaces
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
directory_entry.cc
Go to the documentation of this file.
1
// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#include "
ppapi/cpp/directory_entry.h
"
6
7
#include <string.h>
8
9
#include "
ppapi/cpp/logging.h
"
10
#include "
ppapi/cpp/module.h
"
11
12
namespace
pp {
13
14
DirectoryEntry::DirectoryEntry
() {
15
memset(&data_, 0,
sizeof
(data_));
16
}
17
18
DirectoryEntry::DirectoryEntry
(
19
PassRef
,
const
PP_DirectoryEntry
& data) {
20
data_.file_ref = data.file_ref;
21
data_.file_type = data.file_type;
22
}
23
24
DirectoryEntry::DirectoryEntry
(
const
DirectoryEntry
& other) {
25
data_.file_ref = other.data_.file_ref;
26
data_.file_type = other.data_.file_type;
27
if
(data_.file_ref)
28
Module::Get
()->
core
()->
AddRefResource
(data_.file_ref);
29
}
30
31
DirectoryEntry::~DirectoryEntry
() {
32
if
(data_.file_ref)
33
Module::Get
()->
core
()->
ReleaseResource
(data_.file_ref);
34
}
35
36
DirectoryEntry
&
DirectoryEntry::operator=
(
37
const
DirectoryEntry
& other) {
38
if
(data_.file_ref)
39
Module::Get
()->
core
()->
ReleaseResource
(data_.file_ref);
40
data_ = other.data_;
41
if
(data_.file_ref)
42
Module::Get
()->
core
()->
AddRefResource
(data_.file_ref);
43
return
*
this
;
44
}
45
46
namespace
internal {
47
48
DirectoryEntryArrayOutputAdapterWithStorage::
49
DirectoryEntryArrayOutputAdapterWithStorage
() {
50
set_output
(&temp_storage_);
51
}
52
53
DirectoryEntryArrayOutputAdapterWithStorage::
54
~DirectoryEntryArrayOutputAdapterWithStorage
() {
55
if
(!temp_storage_.empty()) {
56
// An easy way to release the resource references held by |temp_storage_|.
57
// A destructor for PP_DirectoryEntry will release them.
58
output
();
59
}
60
}
61
62
std::vector<DirectoryEntry>&
63
DirectoryEntryArrayOutputAdapterWithStorage::output
() {
64
PP_DCHECK
(output_storage_.empty());
65
typedef
std::vector<PP_DirectoryEntry> Entries;
66
for
(Entries::iterator it = temp_storage_.begin();
67
it != temp_storage_.end();
68
++it) {
69
output_storage_.push_back(
DirectoryEntry
(
PASS_REF
, *it));
70
}
71
temp_storage_.clear();
72
return
output_storage_;
73
}
74
75
}
// namespace internal
76
}
// namespace pp
pp::internal::DirectoryEntryArrayOutputAdapterWithStorage::~DirectoryEntryArrayOutputAdapterWithStorage
virtual ~DirectoryEntryArrayOutputAdapterWithStorage()
Definition:
directory_entry.cc:54
pp::Core::AddRefResource
void AddRefResource(PP_Resource resource)
Definition:
core.h:31
pp::DirectoryEntry::~DirectoryEntry
~DirectoryEntry()
Definition:
directory_entry.cc:31
pp::DirectoryEntry::DirectoryEntry
DirectoryEntry()
Definition:
directory_entry.cc:14
pp::PASS_REF
Definition:
pass_ref.h:17
pp::Module::core
Core * core()
Definition:
module.h:74
PP_DCHECK
#define PP_DCHECK(a)
Definition:
logging.h:16
logging.h
directory_entry.h
pp::Core::ReleaseResource
void ReleaseResource(PP_Resource resource)
Definition:
core.h:41
pp::ArrayOutputAdapter< PP_DirectoryEntry >::set_output
void set_output(std::vector< PP_DirectoryEntry > *output)
Definition:
array_output.h:91
pp::DirectoryEntry
Definition:
directory_entry.h:24
PP_DirectoryEntry
pp::internal::DirectoryEntryArrayOutputAdapterWithStorage::output
std::vector< DirectoryEntry > & output()
Definition:
directory_entry.cc:63
pp::PassRef
PassRef
Definition:
pass_ref.h:17
pp::Module::Get
static Module * Get()
Definition:
ppp_entrypoints.cc:22
pp::DirectoryEntry::operator=
DirectoryEntry & operator=(const DirectoryEntry &other)
Definition:
directory_entry.cc:36
module.h
pp::internal::DirectoryEntryArrayOutputAdapterWithStorage::DirectoryEntryArrayOutputAdapterWithStorage
DirectoryEntryArrayOutputAdapterWithStorage()
Definition:
directory_entry.cc:49
Generated on Wed Apr 5 2017 11:09:27 for Pepper_47_C++_interfaces by
1.8.6