Updated Branches: refs/heads/master 2da6bbda2 -> e0a70faa0
Initial commit of Bind.c/h with Charbuf to ruby conversion routine. Project: http://git-wip-us.apache.org/repos/asf/lucy/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/e0a70faa Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/e0a70faa Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/e0a70faa Branch: refs/heads/master Commit: e0a70faa0b4c923a990834171907be52e48b86fd Parents: ec08e7f Author: Logan Bell <[email protected]> Authored: Mon Oct 29 15:22:46 2012 -0700 Committer: Logan Bell <[email protected]> Committed: Mon Oct 29 15:22:46 2012 -0700 ---------------------------------------------------------------------- clownfish/runtime/ruby/ext/Bind.c | 37 ++++++++++++++++++++++++++ clownfish/runtime/ruby/ext/Bind.h | 44 ++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy/blob/e0a70faa/clownfish/runtime/ruby/ext/Bind.c ---------------------------------------------------------------------- diff --git a/clownfish/runtime/ruby/ext/Bind.c b/clownfish/runtime/ruby/ext/Bind.c new file mode 100644 index 0000000..50cb831 --- /dev/null +++ b/clownfish/runtime/ruby/ext/Bind.c @@ -0,0 +1,37 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ruby.h" +#include "Bind.h" +#include "Clownfish/Util/StringHelper.h" +#include "Clownfish/Util/NumberUtils.h" + +VALUE +Bind_cfish_to_ruby(cfish_Obj *obj) { + if (Cfish_Obj_Is_A(obj, CFISH_CHARBUF)) { + return Bind_cb_to_ruby((cfish_CharBuf*)obj); + } +} + +VALUE +Bind_cb_to_ruby(const cfish_CharBuf *cb) { + if (!cb) { + return rb_str_new2(""); + } + else { + return rb_str_new((char*)Cfish_CB_Get_Ptr8(cb), Cfish_CB_Get_Size(cb)); + } +} http://git-wip-us.apache.org/repos/asf/lucy/blob/e0a70faa/clownfish/runtime/ruby/ext/Bind.h ---------------------------------------------------------------------- diff --git a/clownfish/runtime/ruby/ext/Bind.h b/clownfish/runtime/ruby/ext/Bind.h new file mode 100644 index 0000000..e16cf54 --- /dev/null +++ b/clownfish/runtime/ruby/ext/Bind.h @@ -0,0 +1,44 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* XSBind.h -- Functions to help bind Clownfish to Perl XS api. + */ + +#ifndef H_CFISH_XSBIND +#define H_CFISH_XSBIND 1 + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ruby.h" +#include "Clownfish/Obj.h" +#include "Clownfish/ByteBuf.h" +#include "Clownfish/CharBuf.h" +#include "Clownfish/Err.h" +#include "Clownfish/Hash.h" +#include "Clownfish/Num.h" +#include "Clownfish/VArray.h" +#include "Clownfish/VTable.h" + +VALUE Bind_cfish_to_ruby(cfish_Obj *obj); +VALUE Bind_cb_to_ruby(const cfish_CharBuf *cb); + +#ifdef __cplusplus +} +#endif + +#endif // H_CFISH_XSBIND
