📄 tgrecipe.h
字号:
/*------------------------------------------------------------------------- * * tgRecipe.h * Tioga recipe-related definitions and declarations * these functions can be used in both the frontend and the * backend * * to use this header, you must also include * "utils/geo-decls.h" * and "libpq/libpq.h" * * Copyright (c) 1994, Regents of the University of California * * $Id: tgRecipe.h,v 1.11 1999/05/25 22:42:09 momjian Exp $ * *------------------------------------------------------------------------- */#include "libpq/libpq.h"#ifndef TIOGA_FRONTEND#include "libpq/libpq-be.h"#include "utils/elog.h"#include "utils/geo-decls.h"#else#include "libpq-fe.h"typedef struct{ double x, y;} Point; /* this should match whatever is in * * * * * * * * * * geo-decls.h */#endif /* TIOGA_FRONTEND */typedef enum{ TG_INGRED, TG_EYE, TG_RECIPE} TgElemType;typedef enum{ TG_SQL, TG_C, TG_RECIPE_GRAPH, TG_COMPILED} TgSrcLangType;typedef enum{ TG_INGRED_NODE, TG_EYE_NODE, TG_RECIPE_NODE, TG_TEE_NODE /* tee nodes are not stored in the db we * create them when we read the recipe * back */} TgNodeType;/* -- type definition for setting up in memory Tioga recipe structure -- *//* -- see 'recipe-schema.sql' for their corresponding database types -- */typedef char *TgString;typedef struct _tgelement *TgElementPtr;typedef struct _tgnode *TgNodePtr;typedef struct _tgrecipe *TgRecipePtr;/* auto-generated header containing Arr_TgString, Arr_TgElementPtr, and Arr_TgNodePtr */#include "tioga/Arr_TgRecipe.h"/* C structure representation of a Tioga Element */typedef struct _tgelement{ char *elemName; /* name of function this element represent */ TgElemType elemType; /* type of this element */ Arr_TgString *inPorts; /* names of inputs */ Arr_TgString *inTypes; /* name of input types */ Arr_TgString *outPorts; /* type of output */ Arr_TgString *outTypes; /* name of output types */ char *doc; /* description of this element */ Arr_TgString *keywords; /* keywords used to search for this * element */ char *icon; /* iconic representation */ char *src; /* source code for this element */ TgSrcLangType srcLang; /* source language */ char *owner; /* owner recipe name */} TgElement;/* C structure representation of a Tioga Node */typedef struct _tgnode{ char *nodeName; /* name of this node */ TgNodeType nodeType; /* type of this node */ Point loc; /* screen location of the node. */ TgElement *nodeElem; /* the underlying element of this node */ Arr_TgNodePtr *inNodes; /* variable array of in node pointers a * NULL TgNodePtr indicates a run-time * parameter */ Arr_TgNodePtr *outNodes; /* variable array of out node pointers. */} TgNode;/* C structure representation of a Tioga Recipe */typedef struct _tgrecipe{ TgElement elmValue; /* "inherits" TgElement attributes. */ Arr_TgNodePtr *allNodes; /* array of all nodes for this recipe. */ Arr_TgNodePtr *rootNodes; /* array of root nodes for this recipe. * root nodes are nodes with no parents */ Arr_TgNodePtr *eyes; /* array of pointers for the browser nodes * recipe, execution of recipe starts by * traversing the recipe C structure from * the eye nodes pointed by these * pointers. */ Arr_TgNodePtr *tees; /* array of pointers of all the tee nodes */ Arr_TgElementPtr *elements; /* array of all the elements in this * recipe, elements may be shared by * multiple nodes */} TgRecipe;/* functions defined in tgRecipe.c */extern TgRecipe *retrieveRecipe(char *name);extern TgElement *findElemInRecipe(TgRecipe * r, char *elemName);extern TgNode *findNodeInRecipe(TgRecipe * r, char *nodeName);/* ---- copyXXX functions ---- */extern void copyTgElementPtr(TgElementPtr *, TgElementPtr *);extern void copyTgNodePtr(TgNodePtr *, TgNodePtr *);extern void copyTgRecipePtr(TgRecipePtr *, TgRecipePtr *);extern void copyTgString(TgString *, TgString *);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -