1 // Copyright (c) 2013 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.
5 // Some common file utilities for plugin code.
7 #ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_FILE_UTILS_H_
8 #define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_FILE_UTILS_H_
10 #include "native_client/src/include/nacl_string.h"
11 #include "native_client/src/include/portability_io.h"
12 #include "ppapi/c/pp_stdint.h"
15 namespace file_utils
{
18 PLUGIN_FILE_SUCCESS
= 0,
19 PLUGIN_FILE_ERROR_MEM_ALLOC
= 1,
20 PLUGIN_FILE_ERROR_OPEN
= 2,
21 PLUGIN_FILE_ERROR_FILE_TOO_LARGE
= 3,
22 PLUGIN_FILE_ERROR_STAT
= 4,
23 PLUGIN_FILE_ERROR_READ
= 5
26 // Slurp the whole contents of the given file (|fd| - open file descriptor) into
27 // |out_buf|. |max_size_to_read| is the maximal allowed size of the file.
28 // If the file turns out to be larger, an error is returned. In any case,
30 StatusCode
SlurpFile(int32_t fd
,
31 nacl::string
& out_buf
,
32 size_t max_size_to_read
= (1 << 20));
34 } // namespace file_utils
37 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_FILE_UTILS_H_