All RPC API will be implemented in pure javascript.
'coffee_sources': [
'browser/api/lib/atom.coffee',
'browser/api/lib/ipc.coffee',
- 'browser/api/lib/.coffee',
'browser/api/lib/window.coffee',
'browser/atom/atom.coffee',
'browser/atom/objects_registry.coffee',
'browser/api/atom_api_event.h',
'browser/api/atom_api_event_emitter.cc',
'browser/api/atom_api_event_emitter.h',
- 'browser/api/atom_api_objects_registry.cc',
- 'browser/api/atom_api_objects_registry.h',
- 'browser/api/atom_api_recorded_object.cc',
- 'browser/api/atom_api_recorded_object.h',
'browser/api/atom_api_window.cc',
'browser/api/atom_api_window.h',
'browser/api/atom_browser_bindings.cc',
namespace api {
-EventEmitter::EventEmitter(v8::Handle<v8::Object> wrapper)
- : RecordedObject(wrapper) {
+EventEmitter::EventEmitter(v8::Handle<v8::Object> wrapper) {
+ Wrap(wrapper);
}
EventEmitter::~EventEmitter() {
#include <iosfwd>
-#include "browser/api/atom_api_recorded_object.h"
+#include "base/basictypes.h"
+#include "vendor/node/src/node_object_wrap.h"
namespace base {
class ListValue;
// Class interiting EventEmitter should assume it's a javascript object which
// interits require('events').EventEmitter, this class provides many helper
// methods to do event processing in C++.
-class EventEmitter : public RecordedObject {
+class EventEmitter : public node::ObjectWrap {
public:
virtual ~EventEmitter();
// Emit an event and returns whether the handler has called preventDefault().
bool Emit(const std::string& name, base::ListValue* args);
+ // Small accessor to return handle_, this follows Google C++ Style.
+ v8::Persistent<v8::Object>& handle() { return handle_; }
+
protected:
explicit EventEmitter(v8::Handle<v8::Object> wrapper);
+++ /dev/null
-// Copyright (c) 2013 GitHub, Inc. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "browser/api/atom_api_objects_registry.h"
-
-namespace atom {
-
-namespace api {
-
-ObjectsRegistry::ObjectsRegistry() {
-}
-
-ObjectsRegistry::~ObjectsRegistry() {
-}
-
-} // namespace api
-
-} // namespace atom
+++ /dev/null
-// Copyright (c) 2013 GitHub, Inc. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ATOM_BROWSER_API_ATOM_API_OBJECTS_REGISTRY_H_
-#define ATOM_BROWSER_API_ATOM_API_OBJECTS_REGISTRY_H_
-
-#include "base/id_map.h"
-#include "base/basictypes.h"
-
-namespace atom {
-
-namespace api {
-
-class RecordedObject;
-
-class ObjectsRegistry {
- public:
- ObjectsRegistry();
- virtual ~ObjectsRegistry();
-
- int Add(RecordedObject* data) { return id_map_.Add(data); }
- void Remove(int id) { id_map_.Remove(id); }
- void Clear() { id_map_.Clear(); }
- RecordedObject* Lookup(int id) const { return id_map_.Lookup(id); }
-
- private:
- IDMap<RecordedObject> id_map_;
-
- DISALLOW_COPY_AND_ASSIGN(ObjectsRegistry);
-};
-
-} // namespace api
-
-} // namespace atom
-
-#endif // ATOM_BROWSER_API_ATOM_API_OBJECTS_REGISTRY_H_
+++ /dev/null
-// Copyright (c) 2013 GitHub, Inc. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ATOM_BROWSER_API_ATOM_API_RECORDED_OBJECT_
-#define ATOM_BROWSER_API_ATOM_API_RECORDED_OBJECT_
-
-#include "browser/api/atom_api_recorded_object.h"
-
-#include "base/compiler_specific.h"
-#include "browser/api/atom_api_objects_registry.h"
-#include "browser/atom_browser_context.h"
-
-namespace atom {
-
-namespace api {
-
-RecordedObject::RecordedObject(v8::Handle<v8::Object> wrapper)
- : ALLOW_THIS_IN_INITIALIZER_LIST(id_(
- AtomBrowserContext::Get()->objects_registry()->Add(this))) {
- Wrap(wrapper);
-
- wrapper->SetAccessor(v8::String::New("id"), IDGetter);
-}
-
-RecordedObject::~RecordedObject() {
- AtomBrowserContext::Get()->objects_registry()->Remove(id());
-}
-
-// static
-v8::Handle<v8::Value> RecordedObject::IDGetter(v8::Local<v8::String> property,
- const v8::AccessorInfo& info) {
- RecordedObject* self = RecordedObject::Unwrap<RecordedObject>(info.This());
- return v8::Integer::New(self->id_);
-}
-
-} // namespace api
-
-} // namespace atom
-
-#endif // ATOM_BROWSER_API_ATOM_API_RECORDED_OBJECT_
+++ /dev/null
-// Copyright (c) 2013 GitHub, Inc. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ATOM_BROWSER_API_ATOM_API_RECORDED_OBJECT_H_
-#define ATOM_BROWSER_API_ATOM_API_RECORDED_OBJECT_H_
-
-#include "base/basictypes.h"
-#include "vendor/node/src/node_object_wrap.h"
-
-namespace atom {
-
-namespace api {
-
-// Objects of this class will be recorded in C++ and available for RPC from
-// renderer.
-class RecordedObject : public node::ObjectWrap {
- public:
- virtual ~RecordedObject();
-
- // Small accessor to return handle_, this follows Google C++ Style.
- v8::Persistent<v8::Object>& handle() { return handle_; }
-
- int id() const { return id_; }
-
- protected:
- explicit RecordedObject(v8::Handle<v8::Object> wrapper);
-
- private:
- static v8::Handle<v8::Value> IDGetter(v8::Local<v8::String> property,
- const v8::AccessorInfo& info);
-
- int id_;
-
- DISALLOW_COPY_AND_ASSIGN(RecordedObject);
-};
-
-} // namespace api
-
-} // namespace atom
-
-#endif // ATOM_BROWSER_API_ATOM_API_RECORDED_OBJECT_H_
#include "browser/atom_browser_context.h"
-#include "browser/api/atom_api_objects_registry.h"
#include "browser/atom_browser_main_parts.h"
namespace atom {
-AtomBrowserContext::AtomBrowserContext()
- : objects_registry_(new api::ObjectsRegistry) {
+AtomBrowserContext::AtomBrowserContext() {
}
AtomBrowserContext::~AtomBrowserContext() {
namespace atom {
-namespace api {
-class ObjectsRegistry;
-}
-
class AtomBrowserContext : public brightray::BrowserContext {
public:
AtomBrowserContext();
static AtomBrowserContext* Get();
- api::ObjectsRegistry* objects_registry() const {
- return objects_registry_.get();
- }
-
private:
- scoped_ptr<api::ObjectsRegistry> objects_registry_;
-
DISALLOW_COPY_AND_ASSIGN(AtomBrowserContext);
};