00001
#ifndef NODETABLE_H
00002
#define NODETABLE_H
00003
00004
#include "Table.h"
00005
#include "QBox.h"
00006
00007
00008
BOREALIS_NAMESPACE_BEGIN
00009
00011 typedef map< string, ptr<Table> >
TableMapType;
00012
00014 class TableMap :
TableMapType
00015 {
00016
public:
00017
00019
void copyFrom(
00020
const TableMap &other );
00021
00023
void repr(
00024 string &out )
const;
00025
00027 int32
count(
00028 string name )
const;
00029
00031 TableMapType _map;
00032 };
00033
00034
00036 class NodeTable
00037 {
00038
public:
00039
00041
NodeTable(
00042
TableMap &init );
00043
00044
00046 ~NodeTable() {};
00047
00048
00050
void parseAddBoxXml(
00051
const DOMElement *boxNode,
00052
00054
TableMap &top_tables,
00055
00057 string box_name,
00058
00060 ptr<QBox> box
00061 )
00062
throw(
AuroraException );
00063
00064
00066
void parseAddXml(
00067
AuroraNode &node,
00068
00070 string table_name,
00071
00073 TupleDescription desc,
00074
00076 DOMElement *entityelt,
00077
00079
TableMap top_tables
00080 );
00081
00082
00084
void parseRemoveBoxXml(
00085
const DOMElement *removeBoxNode,
00086
00088
const string box_name,
00089
00091 ptr<QBox> box
00092 )
00093
throw(
AuroraException );
00094
00096
void parseRemoveXml()
00097 throw(
AuroraException );
00098
00100
void shutdown();
00101
00102
00103 private:
00104
00106
TableMap &_table_map;
00107
00109 ptr<
TableEnvironment> _table_env;
00110 };
00111
00112
00113 BOREALIS_NAMESPACE_END
00114
00115 #endif