OpenCog Framework  Branch: master, revision 6f0b7fc776b08468cf1b74aa9db028f387b4f0c0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SchemeModule.h
Go to the documentation of this file.
1 /*
2  * SchemeModule.h
3  *
4  * Simplified wrapper for creating guile modules.
5  * Copyright (c) 2008, 2014, 2015 Linas Vepstas <linas@linas.org>
6  */
7 
8 #ifndef _OPENCOG_SCHEME_MODULE_H
9 #define _OPENCOG_SCHEME_MODULE_H
10 
13 #include <opencog/atomspace/atom_types.h>
14 
15 namespace opencog {
16 
17 class AtomSpace;
18 
21 {
22  private:
23  Handle (*_func)(AtomSpace*, const Handle&);
24  Handle (*_func_htq)(AtomSpace*, const Handle&, Type, const HandleSeq&);
25 
28 
31 
32  const char *_name; // scheme name of the c++ function.
33  public:
34  FunctionWrap(Handle (*)(AtomSpace*, const Handle&),
35  const char*, const char*);
36  FunctionWrap(Handle (*)(AtomSpace*, const Handle&, Type, const HandleSeq&),
37  const char*, const char*);
39  const char*, const char*);
40 };
41 
43 {
44  private:
45  static void* init_in_guile(void*);
46  static void init_in_module(void*);
47  const char* _modname;
48  protected:
49  virtual void init(void) = 0;
50  public:
51  ModuleWrap(const char*);
52  void module_init(void);
53  virtual ~ModuleWrap();
54 };
55 
56 }
57 
58 #endif // _OPENCOG_SCHEME_MODULE_H
59 
Handle wrapper_htq(Handle, Type, const HandleSeq &)
Definition: SchemeModule.cc:43
static void * init_in_guile(void *)
Definition: SchemeModule.cc:67
static void init_in_module(void *)
Definition: SchemeModule.cc:80
Handle(* _func_htq)(AtomSpace *, const Handle &, Type, const HandleSeq &)
Definition: SchemeModule.h:24
std::vector< Handle > HandleSeq
a list of handles
Definition: Handle.h:246
void module_init(void)
Definition: SchemeModule.cc:62
std::shared_ptr< TruthValue > TruthValuePtr
Definition: TruthValue.h:85
Wrapper class, to invoke misc extension code from guile.
Definition: SchemeModule.h:20
Handle(* _func)(AtomSpace *, const Handle &)
Definition: SchemeModule.h:23
TruthValuePtr prapper(Handle)
Definition: SchemeModule.cc:49
FunctionWrap(Handle(*)(AtomSpace *, const Handle &), const char *, const char *)
Handle wrapper(Handle)
Definition: SchemeModule.cc:36
virtual void init(void)=0
TruthValuePtr(* _pred)(AtomSpace *, const Handle &)
Definition: SchemeModule.h:29
ModuleWrap(const char *)
Definition: SchemeModule.cc:58
unsigned short Type
type of Atoms, represented as short integer (16 bits)
Definition: types.h:40
const char * _name
Definition: SchemeModule.h:32
const char * _modname
Definition: SchemeModule.h:47