190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_STATUS_CODE_H_
62385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#define CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_STATUS_CODE_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string>
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "base/files/file.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace leveldb {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Status;
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace sync_file_system {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum SyncStatusCode {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_STATUS_OK = 0,
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_STATUS_UNKNOWN = -1000,
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Generic error code which is not specifically related to a specific
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // submodule error code (yet).
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SYNC_STATUS_FAILED = -1001,
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  // Basic ones that could be directly mapped to File::Error.
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_FAILED = -1,
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_IN_USE = -2,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_EXISTS = -3,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_NOT_FOUND = -4,
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_ACCESS_DENIED = -5,
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_TOO_MANY_OPENED = -6,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_NO_MEMORY = -7,
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_NO_SPACE = -8,
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_NOT_A_DIRECTORY = -9,
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_INVALID_OPERATION = -10,
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_SECURITY = -11,
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_ABORT = -12,
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_NOT_A_FILE = -13,
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_NOT_EMPTY = -14,
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_FILE_ERROR_INVALID_URL = -15,
423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  SYNC_FILE_ERROR_IO = -16,
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Database related errors.
453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  SYNC_DATABASE_ERROR_NOT_FOUND = -50,
463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  SYNC_DATABASE_ERROR_CORRUPTION = -51,
473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  SYNC_DATABASE_ERROR_IO_ERROR = -52,
483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  SYNC_DATABASE_ERROR_FAILED = -53,
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Sync specific status code.
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_STATUS_FILE_BUSY = -100,
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_STATUS_HAS_CONFLICT = -101,
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SYNC_STATUS_NO_CONFLICT = -102,
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_STATUS_ABORT = -103,
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_STATUS_NO_CHANGE_TO_SYNC = -104,
56d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  SYNC_STATUS_SERVICE_TEMPORARILY_UNAVAILABLE = -105,
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_STATUS_NETWORK_ERROR = -106,
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYNC_STATUS_AUTHENTICATION_FAILED = -107,
59b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  SYNC_STATUS_UNKNOWN_ORIGIN = -108,
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SYNC_STATUS_NOT_MODIFIED = -109,
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SYNC_STATUS_SYNC_DISABLED = -110,
627d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  SYNC_STATUS_ACCESS_FORBIDDEN = -111,
63d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  SYNC_STATUS_RETRY = -112,
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
662385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdochconst char* SyncStatusCodeToString(SyncStatusCode status);
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
682385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochSyncStatusCode LevelDBStatusToSyncStatusCode(const leveldb::Status& status);
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)SyncStatusCode FileErrorToSyncStatusCode(base::File::Error file_error);
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::File::Error SyncStatusCodeToFileError(SyncStatusCode status);
7358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace sync_file_system
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
762385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#endif  // CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_STATUS_CODE_H_
77