diff options
author | Jack Moffitt <jack@metajack.im> | 2014-08-28 09:34:23 -0600 |
---|---|---|
committer | Jack Moffitt <jack@metajack.im> | 2014-09-08 20:21:42 -0600 |
commit | c6ab60dbfc6da7b4f800c9e40893c8b58413960c (patch) | |
tree | d1d74076cf7fa20e4f77ec7cb82cae98b67362cb /components/script/dom/bindings/codegen/stubgenerator | |
parent | db2f642c32fc5bed445bb6f2e45b0f6f0b4342cf (diff) | |
download | servo-c6ab60dbfc6da7b4f800c9e40893c8b58413960c.tar.gz servo-c6ab60dbfc6da7b4f800c9e40893c8b58413960c.zip |
Cargoify servo
Diffstat (limited to 'components/script/dom/bindings/codegen/stubgenerator')
3 files changed, 96 insertions, 0 deletions
diff --git a/components/script/dom/bindings/codegen/stubgenerator/Skeleton.cpp b/components/script/dom/bindings/codegen/stubgenerator/Skeleton.cpp new file mode 100644 index 00000000000..dfa17d23400 --- /dev/null +++ b/components/script/dom/bindings/codegen/stubgenerator/Skeleton.cpp @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=2 sw=2 sts=2 et cindent: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "Skeleton.h" +#include "mozilla/dom/SkeletonBinding.h" +#include "nsContentUtils.h" + +namespace mozilla { +namespace dom { + +NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(Skeleton) +NS_IMPL_CYCLE_COLLECTING_ADDREF(Skeleton) +NS_IMPL_CYCLE_COLLECTING_RELEASE(Skeleton) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(Skeleton) + NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY + NS_INTERFACE_MAP_ENTRY(nsISupports) +NS_INTERFACE_MAP_END + +Skeleton::Skeleton() +{ + SetIsDOMBinding(); +} + +Skeleton::~Skeleton() +{ +} + +JSObject* +Skeleton::WrapObject(JSContext* aCx, JSObject* aScope, + bool* aTriedToWrap) +{ + return SkeletonBinding::Wrap(aCx, aScope, this, aTriedToWrap); +} + +} +} + diff --git a/components/script/dom/bindings/codegen/stubgenerator/Skeleton.h b/components/script/dom/bindings/codegen/stubgenerator/Skeleton.h new file mode 100644 index 00000000000..286cff9af4a --- /dev/null +++ b/components/script/dom/bindings/codegen/stubgenerator/Skeleton.h @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=2 sw=2 sts=2 et cindent: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#pragma once + +#include "nsWrapperCache.h" +#include "nsCycleCollectionParticipant.h" +#include "mozilla/Attributes.h" + +struct JSContext; + +namespace mozilla { +namespace dom { + +class Skeleton MOZ_FINAL : public nsISupports, + public nsWrapperCache +{ +public: + Skeleton(); + ~Skeleton(); + + NS_DECL_CYCLE_COLLECTING_ISUPPORTS + NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(Skeleton) + + void* GetParentObject() const + { + // TODO: return something sensible here, and change the return type + return somethingSensible; + } + + virtual JSObject* WrapObject(JSContext* aCx, JSObject* aScope, + bool* aTriedToWrap); +}; + +} +} + diff --git a/components/script/dom/bindings/codegen/stubgenerator/generate.sh b/components/script/dom/bindings/codegen/stubgenerator/generate.sh new file mode 100644 index 00000000000..52577f6f42f --- /dev/null +++ b/components/script/dom/bindings/codegen/stubgenerator/generate.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# This script creates a skeleton implementation for a C++ class which +# implements a Web IDL interface. + +# This script is released into the public domain. + +if [ -z "$1" ]; then + echo usage: ./generate.sh ClassName + exit 1 +fi + +expression="s/Skeleton/$1/g" + +sed "$expression" < Skeleton.h > "$1.h" +sed "$expression" < Skeleton.cpp > "$1.cpp" + |