OLD | NEW |
---|---|
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef BIN_DARTUTILS_H_ | 5 #ifndef BIN_DARTUTILS_H_ |
6 #define BIN_DARTUTILS_H_ | 6 #define BIN_DARTUTILS_H_ |
7 | 7 |
8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
9 | 9 |
10 #include "platform/assert.h" | 10 #include "platform/assert.h" |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
200 static const char* GetCanonicalPath(const char* reference_dir, | 200 static const char* GetCanonicalPath(const char* reference_dir, |
201 const char* filename); | 201 const char* filename); |
202 | 202 |
203 DISALLOW_ALLOCATION(); | 203 DISALLOW_ALLOCATION(); |
204 DISALLOW_IMPLICIT_CONSTRUCTORS(DartUtils); | 204 DISALLOW_IMPLICIT_CONSTRUCTORS(DartUtils); |
205 }; | 205 }; |
206 | 206 |
207 | 207 |
208 class CObject { | 208 class CObject { |
209 public: | 209 public: |
210 // These match the constants in sdk/lib/io/common.dart. | |
Søren Gjesse
2013/05/14 13:50:36
These constants should be moved. They are not part
Bill Hesse
2013/05/14 16:33:58
I would do this, but I don't know where you think
Søren Gjesse
2013/05/15 14:06:35
Let's create a new class NativePortRPC with these
| |
211 static const int kSuccess = 0; | |
212 static const int kArgumentError = 1; | |
213 static const int kOSError = 2; | |
214 static const int kFileClosedError = 3; | |
215 | |
210 explicit CObject(Dart_CObject *cobject) : cobject_(cobject) {} | 216 explicit CObject(Dart_CObject *cobject) : cobject_(cobject) {} |
211 Dart_CObject::Type type() { return cobject_->type; } | 217 Dart_CObject::Type type() { return cobject_->type; } |
212 Dart_CObject::TypedDataType byte_array_type() { | 218 Dart_CObject::TypedDataType byte_array_type() { |
213 ASSERT(type() == Dart_CObject::kTypedData || | 219 ASSERT(type() == Dart_CObject::kTypedData || |
214 type() == Dart_CObject::kExternalTypedData); | 220 type() == Dart_CObject::kExternalTypedData); |
215 return cobject_->value.as_typed_data.type; | 221 return cobject_->value.as_typed_data.type; |
216 } | 222 } |
217 | 223 |
218 bool IsNull() { return type() == Dart_CObject::kNull; } | 224 bool IsNull() { return type() == Dart_CObject::kNull; } |
219 bool IsBool() { return type() == Dart_CObject::kBool; } | 225 bool IsBool() { return type() == Dart_CObject::kBool; } |
(...skipping 26 matching lines...) Expand all Loading... | |
246 static CObject* Null(); | 252 static CObject* Null(); |
247 static CObject* True(); | 253 static CObject* True(); |
248 static CObject* False(); | 254 static CObject* False(); |
249 static CObject* Bool(bool value); | 255 static CObject* Bool(bool value); |
250 static Dart_CObject* NewInt32(int32_t value); | 256 static Dart_CObject* NewInt32(int32_t value); |
251 static Dart_CObject* NewInt64(int64_t value); | 257 static Dart_CObject* NewInt64(int64_t value); |
252 static Dart_CObject* NewIntptr(intptr_t value); | 258 static Dart_CObject* NewIntptr(intptr_t value); |
253 // TODO(sgjesse): Add support for kBigint. | 259 // TODO(sgjesse): Add support for kBigint. |
254 static Dart_CObject* NewDouble(double value); | 260 static Dart_CObject* NewDouble(double value); |
255 static Dart_CObject* NewString(int length); | 261 static Dart_CObject* NewString(int length); |
256 static Dart_CObject* NewString(const char* str); | 262 static Dart_CObject* NewString(const char* str); |
Søren Gjesse
2013/05/14 13:50:36
I don't think this comment belongs here. It is spe
Bill Hesse
2013/05/14 16:33:58
Removed. But the RPC protocol is exactly the func
Søren Gjesse
2013/05/15 14:06:35
That's right, see comment above.
| |
263 // A CObject array cannot be returned as the result, since errors are | |
264 // encoded as arrays starting with a nonzero first element. It must be | |
265 // wrapped in an array starting with kSuccess, and unwrapped by the receiver. | |
257 static Dart_CObject* NewArray(int length); | 266 static Dart_CObject* NewArray(int length); |
258 static Dart_CObject* NewUint8Array(int length); | 267 static Dart_CObject* NewUint8Array(int length); |
259 static Dart_CObject* NewExternalUint8Array( | 268 static Dart_CObject* NewExternalUint8Array( |
260 int64_t length, uint8_t* data, void* peer, | 269 int64_t length, uint8_t* data, void* peer, |
261 Dart_WeakPersistentHandleFinalizer callback); | 270 Dart_WeakPersistentHandleFinalizer callback); |
262 static Dart_CObject* NewIOBuffer(int64_t length); | 271 static Dart_CObject* NewIOBuffer(int64_t length); |
263 static void FreeIOBufferData(Dart_CObject* object); | 272 static void FreeIOBufferData(Dart_CObject* object); |
264 | 273 |
265 Dart_CObject* AsApiCObject() { return cobject_; } | 274 Dart_CObject* AsApiCObject() { return cobject_; } |
266 | 275 |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
495 } | 504 } |
496 | 505 |
497 private: | 506 private: |
498 DISALLOW_COPY_AND_ASSIGN(CObjectExternalUint8Array); | 507 DISALLOW_COPY_AND_ASSIGN(CObjectExternalUint8Array); |
499 }; | 508 }; |
500 | 509 |
501 } // namespace bin | 510 } // namespace bin |
502 } // namespace dart | 511 } // namespace dart |
503 | 512 |
504 #endif // BIN_DARTUTILS_H_ | 513 #endif // BIN_DARTUTILS_H_ |
OLD | NEW |