diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2012-03-07 00:48:20 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2012-03-07 00:48:20 +0100 |
commit | 82bfaab0b6487697b12c8544b6c70e72b4e4f7cf (patch) | |
tree | fb30f4ffe2c7b3f1c8a5c4a4b4ed02373649554d /lib/efl/elm/elm_store.rb | |
parent | 8c2f3d46390d2f44d2fcd58cd4f39ad621e6b3db (diff) | |
parent | 7d430af815626bb783f0eb435d7df549733958d2 (diff) | |
download | ffi-efl-82bfaab0b6487697b12c8544b6c70e72b4e4f7cf.zip ffi-efl-82bfaab0b6487697b12c8544b6c70e72b4e4f7cf.tar.gz |
Merge branch 'master' of asynk.ch:ffi-efl
Diffstat (limited to 'lib/efl/elm/elm_store.rb')
-rw-r--r-- | lib/efl/elm/elm_store.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/efl/elm/elm_store.rb b/lib/efl/elm/elm_store.rb new file mode 100644 index 0000000..625232a --- /dev/null +++ b/lib/efl/elm/elm_store.rb @@ -0,0 +1,43 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +require 'efl' +require 'efl/native/elm/elm_store' +# +module Efl + # + module Elm + # + class ElmStore + # + include Efl::ClassHelper + search_prefixes 'elm_store_' + # + def initialize o=nil, &block + @ptr = ( + case o + when NilClass + FFI::AutoPointer.new Native.elm_store_filesystem_new, ElmStore.method(:release) + when FFI::Pointer + o + else + raise ArgumentError.new "wrong argument #{o.class.name}" + end + ) + instance_eval &block if block + end + def self.release p + Native.elm_store_free p + end + def free + @ptr.autorelease=false if @ptr.is_a? FFI::AutoPointer + ElmStore.release @ptr + @ptr=nil + end + # + end + # + end +end +# +# EOF |