Make javascript 'nspace' conform to corresponding lua example.
This commit is contained in:
parent
9149f5953b
commit
b30c6a452f
10 changed files with 78 additions and 71 deletions
|
|
@ -3,7 +3,7 @@ constant
|
|||
enum
|
||||
exception
|
||||
functor
|
||||
namespace
|
||||
nspace
|
||||
operator
|
||||
overload
|
||||
pointer
|
||||
|
|
|
|||
|
|
@ -1,36 +0,0 @@
|
|||
/* File : example.c */
|
||||
|
||||
#include <iostream>
|
||||
#include "example.h"
|
||||
|
||||
#define M_PI 3.14159
|
||||
|
||||
|
||||
/* A global variable */
|
||||
namespace nspace
|
||||
{
|
||||
double Foo = 3.0;
|
||||
|
||||
/* Compute the greatest common divisor of positive integers */
|
||||
int gcd(int x, int y) {
|
||||
int g;
|
||||
g = y;
|
||||
while (x > 0) {
|
||||
g = x;
|
||||
x = y % x;
|
||||
y = g;
|
||||
}
|
||||
return g;
|
||||
}
|
||||
|
||||
Circle::Circle(): radius(1.0) {}
|
||||
|
||||
Circle::Circle(double r): radius(r) {
|
||||
std::cout << "created Circle with r=" << radius << std::endl;
|
||||
}
|
||||
|
||||
double Circle::area() {
|
||||
std::cout << "Circle::area called, r=" << radius << std::endl;
|
||||
return M_PI*radius*radius;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
|
||||
namespace nspace {
|
||||
|
||||
extern int gcd(int x, int y);
|
||||
extern double Foo;
|
||||
|
||||
class Circle
|
||||
{
|
||||
public:
|
||||
Circle();
|
||||
|
||||
Circle(double r);
|
||||
|
||||
double area();
|
||||
|
||||
double radius;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
var example = require("./example");
|
||||
|
||||
console.log("Global variable Foo=" + example.nspace.Foo);
|
||||
example.nspace.Foo = 5;
|
||||
console.log("Variable Foo changed to " + example.nspace.Foo);
|
||||
console.log("GCD of number 6,18 is " + example.nspace.gcd(6,18));
|
||||
|
||||
console.log("Creating some objects:");
|
||||
c = new example.nspace.Circle(10);
|
||||
console.log("area = " + c.area());
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
SRCS = example.cxx
|
||||
SRCS =
|
||||
|
||||
include ../example.mk
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
"targets": [
|
||||
{
|
||||
"target_name": "example",
|
||||
"sources": [ "example.cxx", "example_wrap.cxx" ]
|
||||
"sources": [ "example_wrap.cxx" ]
|
||||
}
|
||||
]
|
||||
}
|
||||
23
Examples/javascript/nspace/example.h
Normal file
23
Examples/javascript/nspace/example.h
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
#ifndef _example_guardian_
|
||||
#define _example_guardian_
|
||||
|
||||
int module_function() { return 7; }
|
||||
int module_variable = 9;
|
||||
|
||||
namespace MyWorld {
|
||||
class World {
|
||||
public:
|
||||
World() : world_max_count(9) {}
|
||||
int create_world() { return 17; }
|
||||
const int world_max_count; // = 9
|
||||
};
|
||||
namespace Nested {
|
||||
class Dweller {
|
||||
public:
|
||||
enum Gender { MALE = 0, FEMALE = 1 };
|
||||
static int count() { return 19; }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
/* File : example.i */
|
||||
%module example
|
||||
|
||||
%{
|
||||
#include "example.h"
|
||||
%}
|
||||
|
||||
%feature("nspace", 1);
|
||||
%nspace MyWorld::Nested::Dweller;
|
||||
%nspace MyWorld::World;
|
||||
|
||||
%include "example.h"
|
||||
50
Examples/javascript/nspace/runme.js
Normal file
50
Examples/javascript/nspace/runme.js
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
// File: runme.js
|
||||
|
||||
// This file illustrates class C++ interface generated
|
||||
// by SWIG.
|
||||
|
||||
var example = require("./example");
|
||||
|
||||
// Calling a module function ( aka global function )
|
||||
if (example.module_function() !== 7) {
|
||||
throw new Error("example.module_function() should equal 7");
|
||||
}
|
||||
console.log("example.module_function(): " + example.module_function());
|
||||
|
||||
// Accessing a module (aka global) variable
|
||||
if (example.module_variable !== 9) {
|
||||
throw new Error("example.module_variable should equal 9");
|
||||
}
|
||||
console.log("example.module_variable: " + example.module_variable);
|
||||
|
||||
// Creating an instance of the class
|
||||
var w1 = new example.MyWorld.World();
|
||||
console.log("Creating class instance: w1 = new example.MyWorld.World(): " + w1);
|
||||
|
||||
// Accessing class members
|
||||
if (w1.create_world() !== 17) {
|
||||
throw new Error("w1.create_world() should equal 17");
|
||||
}
|
||||
console.log("w1.create_world() = " + w1.create_world());
|
||||
|
||||
if (w1.world_max_count !== 9) {
|
||||
throw new Error("w1.world_max_count should equal 9");
|
||||
}
|
||||
console.log("w1.world_max_count = " + w1.world_max_count);
|
||||
|
||||
// Accessing enums from class within namespace
|
||||
if (example.MyWorld.Nested.Dweller.MALE !== 0) {
|
||||
throw new Error("example.MyWorld.Nested.Dweller.MALE should equal 0");
|
||||
}
|
||||
console.log("Accessing enums: ex.MyWorld.Nested.Dweller.MALE = " + example.MyWorld.Nested.Dweller.MALE);
|
||||
|
||||
if (example.MyWorld.Nested.Dweller.FEMALE !== 1) {
|
||||
throw new Error("example.MyWorld.Nested.Dweller.FEMALE should equal 1");
|
||||
}
|
||||
console.log("Accessing enums: ex.MyWorld.Nested.Dweller.FEMALE = " + example.MyWorld.Nested.Dweller.FEMALE);
|
||||
|
||||
// Accessing static member function
|
||||
if (example.MyWorld.Nested.Dweller.count() !== 19) {
|
||||
throw new Error("example.MyWorld.Nested.Dweller.count() should equal 19");
|
||||
}
|
||||
console.log("Accessing static member function: ex.MyWorld.Nested.Dweller.count() = " + example.MyWorld.Nested.Dweller.count());
|
||||
Loading…
Add table
Add a link
Reference in a new issue