Chromium Code Reviews| Index: runtime/bin/resources.h |
| =================================================================== |
| --- runtime/bin/resources.h (revision 0) |
| +++ runtime/bin/resources.h (revision 0) |
| @@ -0,0 +1,53 @@ |
| +// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +#ifndef BIN_RESOURCES_H_ |
| +#define BIN_RESOURCES_H_ |
| + |
| +#include <stddef.h> |
| +#include <string.h> |
| + |
| +#include "platform/assert.h" |
| + |
| + |
| +class Resources { |
| + public: |
| + static const int kNoSuchInstance = -1; |
| + |
| + static int ResourceLookup(const char* path, const char** resource) { |
| + for (int i = 0; i < get_resource_count(); i++) { |
| + resource_map_entry* entry = get_resource(i); |
| + if (strcmp(path, entry->path_) == 0) { |
| + *resource = entry->resource_; |
| + ASSERT(entry->length_ > 0); |
| + return entry->length_; |
| + } |
| + } |
| + return kNoSuchInstance; |
| + } |
| + |
| + private: |
| + struct resource_map_entry { |
| + const char* path_; |
| + const char* resource_; |
| + intptr_t length_; |
| + }; |
| + |
| + // These fields are generated by resources_gen.cc. |
| + static resource_map_entry builtin_resources_[]; |
| + static const intptr_t builtin_resources_count_; |
| + |
| + static resource_map_entry* get_resource(int i) { |
| + ASSERT(i >= 0 && i < builtin_resources_count_); |
| + return builtin_resources_ + i; |
|
srdjan
2013/03/06 01:14:37
&builtin_resources_[i]
Tom Ball
2013/03/06 17:47:17
Done.
|
| + } |
| + |
| + static intptr_t get_resource_count() { |
| + return builtin_resources_count_; } |
| + |
| + DISALLOW_ALLOCATION(); |
| + DISALLOW_IMPLICIT_CONSTRUCTORS(Resources); |
| +}; |
| + |
| +#endif // BIN_RESOURCES_H_ |