Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1599)

Unified Diff: utils/archive/dart_archive.c

Issue 12016011: Remove utils/archive. It is not used at this point. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « utils/archive/dart_archive.h ('k') | utils/archive/entry.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/archive/dart_archive.c
diff --git a/utils/archive/dart_archive.c b/utils/archive/dart_archive.c
deleted file mode 100644
index da284a6cb3fa9a7e5182947e15bededdae5fc4a8..0000000000000000000000000000000000000000
--- a/utils/archive/dart_archive.c
+++ /dev/null
@@ -1,415 +0,0 @@
-// Copyright (c) 2012, 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.
-
-#include <assert.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "dart_archive.h"
-#include "entry.h"
-#include "messaging.h"
-#include "reader.h"
-
-/** The enumeration of request types for communicating with Dart. */
-enum RequestType {
- kArchiveReadNew = 0,
- kArchiveReadSupportFilterAll,
- kArchiveReadSupportFilterBzip2,
- kArchiveReadSupportFilterCompress,
- kArchiveReadSupportFilterGzip,
- kArchiveReadSupportFilterLzma,
- kArchiveReadSupportFilterXz,
- kArchiveReadSupportFilterProgram,
- kArchiveReadSupportFilterProgramSignature,
- kArchiveReadSupportFormatAll,
- kArchiveReadSupportFormatAr,
- kArchiveReadSupportFormatCpio,
- kArchiveReadSupportFormatEmpty,
- kArchiveReadSupportFormatIso9660,
- kArchiveReadSupportFormatMtree,
- kArchiveReadSupportFormatRaw,
- kArchiveReadSupportFormatTar,
- kArchiveReadSupportFormatZip,
- kArchiveReadSetFilterOption,
- kArchiveReadSetFormatOption,
- kArchiveReadSetOption,
- kArchiveReadOpenFilename,
- kArchiveReadOpenMemory,
- kArchiveReadNextHeader,
- kArchiveReadDataBlock,
- kArchiveReadDataSkip,
- kArchiveReadClose,
- kArchiveReadFree,
- kArchiveEntryClone,
- kArchiveEntryFree,
- kArchiveEntryNew,
- kArchiveEntrySetHardlink,
- kArchiveEntrySetPathname,
- kArchiveEntrySetSymlink,
- kArchiveEntrySetGid,
- kArchiveEntrySetUid,
- kArchiveEntrySetPerm,
- kArchiveEntrySetGname,
- kArchiveEntrySetUname,
- kArchiveEntrySetFflagsSet,
- kArchiveEntrySetFflagsClear,
- kArchiveEntrySetFflagsText,
- kArchiveEntrySetFiletype,
- kArchiveEntrySetMode,
- kArchiveEntrySetSize,
- kArchiveEntrySetDev,
- kArchiveEntrySetDevmajor,
- kArchiveEntrySetDevminor,
- kArchiveEntrySetIno,
- kArchiveEntrySetNlink,
- kArchiveEntrySetRdev,
- kArchiveEntrySetRdevmajor,
- kArchiveEntrySetRdevminor,
- kArchiveEntrySetAtime,
- kArchiveEntrySetBirthtime,
- kArchiveEntrySetCtime,
- kArchiveEntrySetMtime,
- kNumberOfRequestTypes
-};
-
-/**
- * Dispatches a message from Dart to its native function equivalent.
- *
- * In addition to matching up a message with its respective function, this
- * parses out the standard archive struct argument from the message and resolves
- * it to an actual pointer to an archive struct.
- */
-static void archiveDispatch(Dart_Port dest_port_id,
- Dart_Port reply_port_id,
- Dart_CObject* message) {
- if (message->type != kArray) {
- postInvalidArgument(reply_port_id, "Message was not an array.");
- return;
- } else if (message->value.as_array.length < 2) {
- postInvalidArgument(reply_port_id, "Message array had %d elements, " \
- "expected at least 2.", message->value.as_array.length);
- return;
- }
-
- Dart_CObject* wrapped_request_type = message->value.as_array.values[0];
- if (wrapped_request_type->type != kInt32) {
- postInvalidArgument(reply_port_id, "Invalid request type %d.",
- wrapped_request_type->type);
- return;
- }
- enum RequestType request_type = wrapped_request_type->value.as_int32;
-
- Dart_CObject* id = message->value.as_array.values[1];
- void* ptr;
- if (id->type == kNull) {
- ptr = NULL;
- } else if (id->type == kInt64 || id->type == kInt32) {
- ptr = (void*) (intptr_t) getInteger(id);
- } else {
- postInvalidArgument(reply_port_id, "Invalid id type %d.", id->type);
- return;
- }
-
- switch (request_type) {
- case kArchiveReadNew:
- archiveReadNew(reply_port_id);
- break;
- case kArchiveReadSupportFilterAll:
- archiveReadSupportFilterAll(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFilterBzip2:
- archiveReadSupportFilterBzip2(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFilterCompress:
- archiveReadSupportFilterCompress(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFilterGzip:
- archiveReadSupportFilterGzip(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFilterLzma:
- archiveReadSupportFilterLzma(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFilterXz:
- archiveReadSupportFilterXz(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFilterProgram:
- archiveReadSupportFilterProgram(
- reply_port_id, (struct archive*) ptr, message);
- break;
- case kArchiveReadSupportFilterProgramSignature:
- archiveReadSupportFilterProgramSignature(
- reply_port_id, (struct archive*) ptr, message);
- break;
- case kArchiveReadSupportFormatAll:
- archiveReadSupportFormatAll(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFormatAr:
- archiveReadSupportFormatAr(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFormatCpio:
- archiveReadSupportFormatCpio(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFormatEmpty:
- archiveReadSupportFormatEmpty(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFormatIso9660:
- archiveReadSupportFormatIso9660(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFormatMtree:
- archiveReadSupportFormatMtree(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFormatRaw:
- archiveReadSupportFormatRaw(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFormatTar:
- archiveReadSupportFormatTar(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSupportFormatZip:
- archiveReadSupportFormatZip(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadSetFilterOption:
- archiveReadSetFilterOption(reply_port_id, (struct archive*) ptr, message);
- break;
- case kArchiveReadSetFormatOption:
- archiveReadSetFormatOption(reply_port_id, (struct archive*) ptr, message);
- break;
- case kArchiveReadSetOption:
- archiveReadSetOption(reply_port_id, (struct archive*) ptr, message);
- break;
- case kArchiveReadOpenFilename:
- archiveReadOpenFilename(reply_port_id, (struct archive*) ptr, message);
- break;
- case kArchiveReadOpenMemory:
- archiveReadOpenMemory(reply_port_id, (struct archive*) ptr, message);
- break;
- case kArchiveReadNextHeader:
- archiveReadNextHeader(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadDataBlock:
- archiveReadDataBlock(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadDataSkip:
- archiveReadDataSkip(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadClose:
- archiveReadClose(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveReadFree:
- archiveReadFree(reply_port_id, (struct archive*) ptr);
- break;
- case kArchiveEntryClone:
- archiveEntryClone(reply_port_id, (struct archive_entry*) ptr);
- break;
- case kArchiveEntryFree:
- archiveEntryFree(reply_port_id, (struct archive_entry*) ptr);
- break;
- case kArchiveEntryNew:
- archiveEntryNew(reply_port_id);
- break;
- case kArchiveEntrySetHardlink:
- archiveEntrySetHardlink(
- reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetPathname:
- archiveEntrySetPathname(
- reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetSymlink:
- archiveEntrySetSymlink(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetGid:
- archiveEntrySetGid(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetUid:
- archiveEntrySetUid(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetPerm:
- archiveEntrySetPerm(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetGname:
- archiveEntrySetGname(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetUname:
- archiveEntrySetUname(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetFflagsSet:
- archiveEntrySetFflagsSet(
- reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetFflagsClear:
- archiveEntrySetFflagsClear(
- reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetFiletype:
- archiveEntrySetFiletype(
- reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetMode:
- archiveEntrySetMode(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetSize:
- archiveEntrySetSize(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetDev:
- archiveEntrySetDev(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetDevmajor:
- archiveEntrySetDevmajor(
- reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetDevminor:
- archiveEntrySetDevminor(
- reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetIno:
- archiveEntrySetIno(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetNlink:
- archiveEntrySetNlink(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetRdev:
- archiveEntrySetRdev(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetRdevmajor:
- archiveEntrySetRdevmajor(
- reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetRdevminor:
- archiveEntrySetRdevminor(
- reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetAtime:
- archiveEntrySetAtime(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetBirthtime:
- archiveEntrySetBirthtime(
- reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetCtime:
- archiveEntrySetCtime(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- case kArchiveEntrySetMtime:
- archiveEntrySetMtime(reply_port_id, (struct archive_entry*) ptr, message);
- break;
- default:
- postInvalidArgument(reply_port_id, "Invalid request id %d.", request_type);
- break;
- }
-}
-
-/**
- * Checks if [handle] represents an error and, if so, propagates it to Dart.
- * Otherwise, returns [handle].
- */
-static Dart_Handle handleError(Dart_Handle handle) {
- if (Dart_IsError(handle)) Dart_PropagateError(handle);
- return handle;
-}
-
-/**
- * A function exposed to Dart that creates a [ServicePort] for two-way
- * communication between Dart and C.
- *
- * Takes no arguments and returns a [ServicePort].
- */
-static void archiveServicePort(Dart_NativeArguments arguments) {
- Dart_EnterScope();
- Dart_SetReturnValue(arguments, Dart_Null());
- Dart_Port service_port =
- Dart_NewNativePort("ArchiveService", archiveDispatch, false);
- if (service_port != ILLEGAL_PORT) {
- Dart_Handle send_port = handleError(Dart_NewSendPort(service_port));
- Dart_SetReturnValue(arguments, send_port);
- }
- Dart_ExitScope();
-}
-
-/**
- * The C callback that runs the Dart finalizer for an object. Set up by
- * [attachDartFinalizer]. [handle] is the object that's been collected, and
- * [peerPtr] is a Dart list containing the callback and its argument.
- */
-static void runDartFinalizer(Dart_Handle handle, void* peerPtr) {
- Dart_EnterScope();
- Dart_Handle wrappedPeer = (Dart_Handle) peerPtr;
- Dart_Handle callback = handleError(Dart_ListGetAt(wrappedPeer, 0));
- Dart_Handle peer = handleError(Dart_ListGetAt(wrappedPeer, 1));
-
- handleError(Dart_InvokeClosure(callback, 1, &peer));
- Dart_DeletePersistentHandle(wrappedPeer);
- Dart_ExitScope();
-}
-
-/**
- * Attaches a finalizer callback to a Dart object.
- *
- * This takes a Dart object, a callback function, and an argument to pass to the
- * callback function. The callback will be called with the given argument some
- * time after the object has been garbage collected.
- */
-static void attachDartFinalizer(Dart_NativeArguments arguments) {
- Dart_EnterScope();
- Dart_SetReturnValue(arguments, Dart_Null());
- Dart_Handle object = handleError(Dart_GetNativeArgument(arguments, 0));
- Dart_Handle callback = handleError(Dart_GetNativeArgument(arguments, 1));
- Dart_Handle peer = handleError(Dart_GetNativeArgument(arguments, 2));
-
- Dart_Handle wrappedPeer = handleError(Dart_NewList(2));
- handleError(Dart_ListSetAt(wrappedPeer, 0, callback));
- handleError(Dart_ListSetAt(wrappedPeer, 1, peer));
- wrappedPeer = handleError(Dart_NewPersistentHandle(wrappedPeer));
-
- handleError(Dart_NewWeakPersistentHandle(
- object, wrappedPeer, runDartFinalizer));
- Dart_ExitScope();
-}
-
-/**
- * A struct representing a function exposed to Dart and the name under which it
- * can be looked up.
- */
-struct FunctionLookup {
- const char* name;
- Dart_NativeFunction function;
-};
-
-/** The list of functions exposed to Dart. */
-struct FunctionLookup function_list[] = {
- {"Archive_ServicePort", archiveServicePort},
- {"Archive_AttachFinalizer", attachDartFinalizer},
- {NULL, NULL}
-};
-
-/**
- * Resolves a Dart name as provided in a `native` declaration and returns the
- * C function that should be invoked for that name.
- */
-static Dart_NativeFunction resolveName(Dart_Handle name, int argc) {
- if (!Dart_IsString8(name)) return NULL;
- Dart_EnterScope();
- const char* cname;
- handleError(Dart_StringToCString(name, &cname));
-
- Dart_NativeFunction result = NULL;
- int i;
- for (i = 0; function_list[i].name != NULL; ++i) {
- if (strcmp(function_list[i].name, cname) == 0) {
- result = function_list[i].function;
- break;
- }
- }
- Dart_ExitScope();
- return result;
-}
-
-/** Initializes the C extension. */
-DART_EXPORT Dart_Handle dart_archive_Init(Dart_Handle parent_library) {
- if (Dart_IsError(parent_library)) return parent_library;
-
- Dart_Handle result_code = Dart_SetNativeResolver(parent_library, resolveName);
- if (Dart_IsError(result_code)) return result_code;
-
- return Dart_Null();
-}
« no previous file with comments | « utils/archive/dart_archive.h ('k') | utils/archive/entry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698