summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/e17/ecore.rb51
-rw-r--r--spec/ecore_spec.rb28
2 files changed, 23 insertions, 56 deletions
diff --git a/lib/e17/ecore.rb b/lib/e17/ecore.rb
index 668c8e4..fe4786f 100644
--- a/lib/e17/ecore.rb
+++ b/lib/e17/ecore.rb
@@ -1,57 +1,24 @@
#! /usr/bin/env ruby
# -*- coding: UTF-8 -*-
#
-require 'e17/ffi_helper'
+require 'e17/ecore/ecore-ffi'
#
module E17
- module ECORE
- #
- extend FFIHelper
- extend FFI::Library
- #
- ffi_lib 'ecore'
- #
- typedef :pointer, :data
- typedef :pointer, :ecore_pipe
- typedef :pointer, :ecore_fd_handler
- #
- callback :ecore_pipe_cb, [:data, :pointer, :int], :void
- callback :ecore_select_function, [:int, :pointer, :pointer, :pointer, :pointer], :int
- callback :ecore_fd_prep_cb, [:data, :pointer], :void
- #
- fcts = [
- # http://docs.enlightenment.org/auto/ecore/group__Ecore__Group.html
- [ :ecore_init, [], :int],
- [ :ecore_shutdown, [], :int],
- [ :ecore_pipe_add, [:ecore_pipe_cb, :data], :ecore_pipe],
- [ :ecore_pipe_del, [:ecore_pipe], :data],
- [ :ecore_pipe_read_close, [:ecore_pipe], :void],
- [ :ecore_pipe_write_close, [:ecore_pipe], :void],
- [ :ecore_pipe_write, [:ecore_pipe, :pointer, :int], :bool],
- # http://docs.enlightenment.org/auto/ecore/group__Ecore__Main__Loop__Group.html
- [ :ecore_main_loop_iterate, [], :void],
- [ :ecore_main_loop_begin, [], :void],
- [ :ecore_main_loop_quit, [], :void],
- [ :ecore_main_loop_select_func_set, [:ecore_select_function], :void], # TODO spec
- [ :ecore_main_loop_select_func_get, [], :ecore_select_function], # TODO spec
- [ :ecore_main_fd_handler_prepare_callback_set, [:ecore_fd_handler, :ecore_fd_prep_cb, :data], :void], # TODO spec
- ]
- #
- attach_fcts fcts
- #
- create_aliases 'ecore_'.length, fcts
+ module Ecore
#
class EcorePipe
def initialize cb, data
- @ptr = ECORE.ecore_pipe_add cb, data
+ @ptr = E17::API.ecore_pipe_add cb, data
end
- def del; ECORE.ecore_pipe_del @ptr; end
- def read_close; ECORE.ecore_pipe_read_close @ptr; end
- def write_close; ECORE.ecore_pipe_write_close @ptr; end
+ def del; E17::API.ecore_pipe_del @ptr; end
+ def read_close; E17::API.ecore_pipe_read_close @ptr; end
+ def write_close; E17::API.ecore_pipe_write_close @ptr; end
def write data
- ECORE.ecore_pipe_write @ptr, FFI::MemoryPointer.from_string(data.to_s), data.to_s.length+1
+ E17::API.ecore_pipe_write @ptr, FFI::MemoryPointer.from_string(data.to_s), data.to_s.length+1
end
+ #
end
+ #
end
end
#
diff --git a/spec/ecore_spec.rb b/spec/ecore_spec.rb
index 96ece40..183e64c 100644
--- a/spec/ecore_spec.rb
+++ b/spec/ecore_spec.rb
@@ -3,26 +3,26 @@
#
require 'e17/ecore'
#
-describe E17::ECORE do
+describe E17::Ecore do
#
include E17
#
it "should init" do
- ECORE.init.should eql 1
- ECORE.init.should eql 2
- ECORE.init.should eql 3
+ Ecore.init.should eql 1
+ Ecore.init.should eql 2
+ Ecore.init.should eql 3
end
#
it "should shutdown" do
- ECORE.shutdown.should eql 2
- ECORE.shutdown.should eql 1
- ECORE.shutdown.should eql 0
+ Ecore.shutdown.should eql 2
+ Ecore.shutdown.should eql 1
+ Ecore.shutdown.should eql 0
end
#
it "should run a single iteration of the mainloop" do
- ECORE.init
- ECORE.main_loop_iterate
- ECORE.shutdown
+ Ecore.init
+ Ecore.main_loop_iterate
+ Ecore.shutdown
end
#
it 'should write and read data from pipe' do
@@ -32,13 +32,13 @@ describe E17::ECORE do
buffer.read_string.should eql 'hello world'
bytes.should eql 12
end
- ECORE.init
- pipe = ECORE::EcorePipe.new cb, data
+ Ecore.init
+ pipe = Ecore::EcorePipe.new cb, data
pipe.write("hello world").should be_true
- ECORE.main_loop_iterate
+ Ecore.main_loop_iterate
pipe.read_close
pipe.write_close
pipe.del.address.should eql data.address
- ECORE.shutdown
+ Ecore.shutdown
end
end