| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "nacl_io/pepper_interface.h" | 5 #include "nacl_io/pepper_interface.h" |
| 6 #include <errno.h> | 6 #include <errno.h> |
| 7 #include <ppapi/c/pp_errors.h> | 7 #include <ppapi/c/pp_errors.h> |
| 8 | 8 |
| 9 namespace nacl_io { | 9 namespace nacl_io { |
| 10 | 10 |
| 11 ScopedResource::ScopedResource(PepperInterface* ppapi, PP_Resource resource) | 11 ScopedResource::ScopedResource(PepperInterface* ppapi, PP_Resource resource) |
| 12 : ppapi_(ppapi), | 12 : ppapi_(ppapi), |
| 13 resource_(resource) { | 13 resource_(resource) { |
| 14 } | 14 } |
| 15 | 15 |
| 16 ScopedResource::~ScopedResource() { | 16 ScopedResource::~ScopedResource() { |
| 17 if (resource_) | 17 if (resource_) |
| 18 ppapi_->ReleaseResource(resource_); | 18 ppapi_->ReleaseResource(resource_); |
| 19 } | 19 } |
| 20 | 20 |
| 21 PP_Resource ScopedResource::Release() { | 21 PP_Resource ScopedResource::Release() { |
| 22 PP_Resource result = resource_; | 22 PP_Resource result = resource_; |
| 23 resource_ = 0; | 23 resource_ = 0; |
| 24 return result; | 24 return result; |
| 25 } | 25 } |
| 26 | 26 |
| 27 int PPErrorToErrno(int32_t err) { | 27 int PPErrorToErrno(int32_t err) { |
| 28 // If not an error, then just return it. |
| 29 if (err >= PP_OK) |
| 30 return err; |
| 31 |
| 28 switch (err) { | 32 switch (err) { |
| 29 case PP_OK: return 0; | |
| 30 case PP_OK_COMPLETIONPENDING: return 0; | 33 case PP_OK_COMPLETIONPENDING: return 0; |
| 31 case PP_ERROR_FAILED: return EPERM; | 34 case PP_ERROR_FAILED: return EPERM; |
| 32 case PP_ERROR_ABORTED: return EPERM; | 35 case PP_ERROR_ABORTED: return EPERM; |
| 33 case PP_ERROR_BADARGUMENT: return EINVAL; | 36 case PP_ERROR_BADARGUMENT: return EINVAL; |
| 34 case PP_ERROR_BADRESOURCE: return EBADF; | 37 case PP_ERROR_BADRESOURCE: return EBADF; |
| 35 case PP_ERROR_NOINTERFACE: return ENOSYS; | 38 case PP_ERROR_NOINTERFACE: return ENOSYS; |
| 36 case PP_ERROR_NOACCESS: return EACCES; | 39 case PP_ERROR_NOACCESS: return EACCES; |
| 37 case PP_ERROR_NOMEMORY: return ENOMEM; | 40 case PP_ERROR_NOMEMORY: return ENOMEM; |
| 38 case PP_ERROR_NOSPACE: return ENOSPC; | 41 case PP_ERROR_NOSPACE: return ENOSPC; |
| 39 case PP_ERROR_NOQUOTA: return ENOSPC; | 42 case PP_ERROR_NOQUOTA: return ENOSPC; |
| 40 case PP_ERROR_INPROGRESS: return EBUSY; | 43 case PP_ERROR_INPROGRESS: return EBUSY; |
| 41 case PP_ERROR_NOTSUPPORTED: return ENOSYS; | 44 case PP_ERROR_NOTSUPPORTED: return ENOSYS; |
| 42 case PP_ERROR_BLOCKS_MAIN_THREAD: return EPERM; | 45 case PP_ERROR_BLOCKS_MAIN_THREAD: return EPERM; |
| 43 case PP_ERROR_FILENOTFOUND: return ENOENT; | 46 case PP_ERROR_FILENOTFOUND: return ENOENT; |
| 44 case PP_ERROR_FILEEXISTS: return EEXIST; | 47 case PP_ERROR_FILEEXISTS: return EEXIST; |
| 45 case PP_ERROR_FILETOOBIG: return EFBIG; | 48 case PP_ERROR_FILETOOBIG: return EFBIG; |
| 46 case PP_ERROR_FILECHANGED: return EINVAL; | 49 case PP_ERROR_FILECHANGED: return EINVAL; |
| 47 case PP_ERROR_TIMEDOUT: return EBUSY; | 50 case PP_ERROR_TIMEDOUT: return EBUSY; |
| 48 case PP_ERROR_USERCANCEL: return EPERM; | 51 case PP_ERROR_USERCANCEL: return EPERM; |
| 49 case PP_ERROR_NO_USER_GESTURE: return EPERM; | 52 case PP_ERROR_NO_USER_GESTURE: return EPERM; |
| 50 case PP_ERROR_CONTEXT_LOST: return EPERM; | 53 case PP_ERROR_CONTEXT_LOST: return EPERM; |
| 51 case PP_ERROR_NO_MESSAGE_LOOP: return EPERM; | 54 case PP_ERROR_NO_MESSAGE_LOOP: return EPERM; |
| 52 case PP_ERROR_WRONG_THREAD: return EPERM; | 55 case PP_ERROR_WRONG_THREAD: return EPERM; |
| 56 case PP_ERROR_CONNECTION_ABORTED: return ECONNABORTED; |
| 57 case PP_ERROR_CONNECTION_REFUSED: return ECONNREFUSED; |
| 58 case PP_ERROR_CONNECTION_FAILED: return ECONNREFUSED; |
| 59 case PP_ERROR_CONNECTION_TIMEDOUT: return ETIMEDOUT; |
| 60 case PP_ERROR_ADDRESS_UNREACHABLE: return ENETUNREACH; |
| 61 case PP_ERROR_ADDRESS_IN_USE: return EADDRINUSE; |
| 53 } | 62 } |
| 54 | 63 |
| 55 return EINVAL; | 64 return EINVAL; |
| 56 } | 65 } |
| 57 | 66 |
| 58 } // namespace nacl_io | 67 } // namespace nacl_io |
| OLD | NEW |