My Project  debian-1:4.1.2-p1+ds-2
Functions
pyobject_setup.cc File Reference
#include "kernel/mod2.h"
#include "Singular/blackbox.h"
#include "Singular/ipshell.h"

Go to the source code of this file.

Functions

static BOOLEAN pyobject_load ()
 
void * pyobject_autoload (blackbox *bbx)
 blackbox support - initialization via autoloading More...
 
void pyobject_default_destroy (blackbox *, void *)
 
void pyobject_setup ()
 initialize blackbox support for pyobject; functionilty os autoloaded on demand More...
 
BOOLEAN pyobject_ensure ()
 Explicitely load, if not loaded already. More...
 

Detailed Description

Author
Alexander Dreyer
Date
2010-12-15

This header file defines the blackbox setup operations for the pyobject

Copyright:
(c) 2010 by The Singular Team, see LICENSE file

Definition in file pyobject_setup.cc.

Function Documentation

◆ pyobject_autoload()

void* pyobject_autoload ( blackbox *  bbx)

blackbox support - initialization via autoloading

Definition at line 26 of file pyobject_setup.cc.

27 {
28  assume(bbx != NULL);
29  return (pyobject_load() || (bbx->blackbox_Init == pyobject_autoload)?
30  NULL: bbx->blackbox_Init(bbx));
31 }

◆ pyobject_default_destroy()

void pyobject_default_destroy ( blackbox *  ,
void *   
)

Definition at line 33 of file pyobject_setup.cc.

34 {
35  WerrorS("Python-based functionality not available!");
36 }

◆ pyobject_ensure()

BOOLEAN pyobject_ensure ( )

Explicitely load, if not loaded already.

force leading of pyobject functionality

Definition at line 48 of file pyobject_setup.cc.

49 {
50 
51  int tok = -1;
52  blackbox* bbx = (blackboxIsCmd("pyobject", tok) == ROOT_DECL?
53  getBlackboxStuff(tok): (blackbox*)NULL);
54  if (bbx == NULL) return TRUE;
55  return (bbx->blackbox_Init == pyobject_autoload? pyobject_load(): FALSE);
56 }

◆ pyobject_load()

static BOOLEAN pyobject_load ( )
static

Definition at line 20 of file pyobject_setup.cc.

21 {
22  return jjLOAD("pyobject.so", TRUE);
23 }

◆ pyobject_setup()

void pyobject_setup ( )

initialize blackbox support for pyobject; functionilty os autoloaded on demand

Definition at line 39 of file pyobject_setup.cc.

40 {
41  blackbox *bbx = (blackbox*)omAlloc0(sizeof(blackbox));
42  bbx->blackbox_Init = pyobject_autoload;
43  bbx->blackbox_destroy = pyobject_default_destroy;
44  setBlackboxStuff(bbx, "pyobject");
45 }
FALSE
#define FALSE
Definition: auxiliary.h:96
pyobject_default_destroy
void pyobject_default_destroy(blackbox *, void *)
Definition: pyobject_setup.cc:33
TRUE
#define TRUE
Definition: auxiliary.h:100
pyobject_load
static BOOLEAN pyobject_load()
Definition: pyobject_setup.cc:20
blackboxIsCmd
int blackboxIsCmd(const char *n, int &tok)
used by scanner: returns ROOT_DECL for known types (and the type number in tok)
Definition: blackbox.cc:201
jjLOAD
BOOLEAN jjLOAD(const char *s, BOOLEAN autoexport)
load lib/module given in v
Definition: iparith.cc:5362
WerrorS
void WerrorS(const char *s)
Definition: feFopen.cc:24
assume
#define assume(x)
Definition: mod2.h:384
NULL
#define NULL
Definition: omList.c:11
pyobject_autoload
void * pyobject_autoload(blackbox *bbx)
blackbox support - initialization via autoloading
Definition: pyobject_setup.cc:26
getBlackboxStuff
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
Definition: blackbox.cc:16
ROOT_DECL
Definition: grammar.cc:319
omAlloc0
#define omAlloc0(size)
Definition: omAllocDecl.h:209
setBlackboxStuff
int setBlackboxStuff(blackbox *bb, const char *n)
define a new type
Definition: blackbox.cc:126