No more C++ RecordedObject and ObjectsRegistry code.
All RPC API will be implemented in pure javascript.
This commit is contained in:
parent
d723173bc7
commit
0692776020
9 changed files with 9 additions and 161 deletions
5
atom.gyp
5
atom.gyp
|
@ -8,7 +8,6 @@
|
|||
'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',
|
||||
|
@ -25,10 +24,6 @@
|
|||
'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',
|
||||
|
|
|
@ -16,8 +16,8 @@ namespace atom {
|
|||
|
||||
namespace api {
|
||||
|
||||
EventEmitter::EventEmitter(v8::Handle<v8::Object> wrapper)
|
||||
: RecordedObject(wrapper) {
|
||||
EventEmitter::EventEmitter(v8::Handle<v8::Object> wrapper) {
|
||||
Wrap(wrapper);
|
||||
}
|
||||
|
||||
EventEmitter::~EventEmitter() {
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
|
||||
#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;
|
||||
|
@ -20,13 +21,16 @@ namespace api {
|
|||
// 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);
|
||||
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
// 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
|
|
@ -1,37 +0,0 @@
|
|||
// 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_
|
|
@ -1,41 +0,0 @@
|
|||
// 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_
|
|
@ -1,42 +0,0 @@
|
|||
// 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_
|
|
@ -4,13 +4,11 @@
|
|||
|
||||
#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() {
|
||||
|
|
|
@ -10,10 +10,6 @@
|
|||
|
||||
namespace atom {
|
||||
|
||||
namespace api {
|
||||
class ObjectsRegistry;
|
||||
}
|
||||
|
||||
class AtomBrowserContext : public brightray::BrowserContext {
|
||||
public:
|
||||
AtomBrowserContext();
|
||||
|
@ -21,13 +17,7 @@ class AtomBrowserContext : public brightray::BrowserContext {
|
|||
|
||||
static AtomBrowserContext* Get();
|
||||
|
||||
api::ObjectsRegistry* objects_registry() const {
|
||||
return objects_registry_.get();
|
||||
}
|
||||
|
||||
private:
|
||||
scoped_ptr<api::ObjectsRegistry> objects_registry_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(AtomBrowserContext);
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue