[0e1846] | 1 | #ifndef ATTRIB_H |
---|
| 2 | #define ATTRIB_H |
---|
| 3 | /**************************************** |
---|
| 4 | * Computer Algebra System SINGULAR * |
---|
| 5 | ****************************************/ |
---|
[341696] | 6 | /* $Id$ */ |
---|
[0e1846] | 7 | /* |
---|
[6ae4f5] | 8 | * ABSTRACT: attributes to leftv and idhdl |
---|
[0e1846] | 9 | */ |
---|
| 10 | #include <string.h> |
---|
[599326] | 11 | #include <kernel/structs.h> |
---|
[0e1846] | 12 | |
---|
| 13 | class sattr; |
---|
| 14 | typedef sattr * attr; |
---|
| 15 | class sattr |
---|
| 16 | { |
---|
| 17 | public: |
---|
[c4dab4] | 18 | inline void Init() { memset(this,0,sizeof(*this)); } |
---|
[85e68dd] | 19 | const char * name; |
---|
[0e1846] | 20 | void * data; |
---|
| 21 | attr next; |
---|
| 22 | int atyp; /* the type of the attribut, describes the data field |
---|
| 23 | */ |
---|
| 24 | |
---|
| 25 | void Print(); |
---|
| 26 | attr Copy(); /* copy all arguments */ |
---|
| 27 | void * CopyA(); /* copy the data of this attribute */ |
---|
[85e68dd] | 28 | attr set(const char * s, void * data, int t); |
---|
| 29 | attr get(const char * s); |
---|
[2dbaba4] | 30 | void kill(const ring r); |
---|
| 31 | void killAll(const ring r); |
---|
[0e1846] | 32 | }; |
---|
| 33 | |
---|
[85e68dd] | 34 | void * atGet(idhdl root,const char * name); |
---|
| 35 | void * atGet(leftv root,const char * name); |
---|
| 36 | void * atGet(idhdl root,const char * name, int t); |
---|
| 37 | void * atGet(leftv root,const char * name, int t); |
---|
| 38 | void atSet(idhdl root,const char * name,void * data,int typ); |
---|
| 39 | void atSet(leftv root,const char * name,void * data,int typ); |
---|
[2dbaba4] | 40 | void at_KillAll(idhdl root,const ring r); |
---|
| 41 | #define atKillAll(H) at_KillAll(H,currRing) |
---|
| 42 | void at_Kill(idhdl root,const char * name,const ring r); |
---|
| 43 | #define atKill(H,A) at_Kill(H,A,currRing) |
---|
[0e1846] | 44 | |
---|
| 45 | BOOLEAN atATTRIB1(leftv res,leftv a); |
---|
| 46 | BOOLEAN atATTRIB2(leftv res,leftv a,leftv b); |
---|
| 47 | BOOLEAN atATTRIB3(leftv res,leftv a,leftv b,leftv c); |
---|
| 48 | BOOLEAN atKILLATTR1(leftv res,leftv a); |
---|
| 49 | BOOLEAN atKILLATTR2(leftv res,leftv a,leftv b); |
---|
| 50 | #endif |
---|