1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
|
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// slNode.h PostgreSQL Slony-I Node
//
//////////////////////////////////////////////////////////////////////////
#ifndef SLNODE_H
#define SLNODE_H
#include "slony/slCluster.h"
class slNodeFactory : public slObjFactory
{
public:
slNodeFactory();
virtual dlgProperty *CreateDialog(frmMain *frame, pgObject *node, pgObject *parent);
virtual pgObject *CreateObjects(pgCollection *obj, ctlTree *browser, const wxString &restr = wxEmptyString);
virtual pgCollection *CreateCollection(pgObject *obj);
int GetLocalIconId()
{
return localIconId;
}
int GetDisabledIconId()
{
return disabledIconId;
}
private:
int localIconId, disabledIconId;
};
extern slNodeFactory nodeFactory;
class slNode : public slObject
{
public:
slNode(slCluster *_cluster, const wxString &newName = wxT(""));
int GetIconId();
void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
void ShowStatistics(frmMain *form, ctlListView *statistics);
wxString GetTranslatedMessage(int kindOfMessage) const;
bool CanDrop();
bool RequireDropConfirm()
{
return true;
}
bool WantDummyChild()
{
return true;
}
long GetOutstandingAcks();
bool CheckAcksAndContinue(wxFrame *frame);
bool GetActive() const
{
return active;
}
void iSetActive(bool b)
{
active = b;
}
bool GetSpool() const
{
return spool;
}
void iSetSpool(bool b)
{
spool = b;
}
wxString GetConnInfo() const
{
return connInfo;
}
void iSetConnInfo(const wxString s)
{
connInfo = s;
}
long GetPid()
{
return pid;
}
bool WaitForEvent(long evNode);
bool DropObject(wxFrame *frame, ctlTree *browser, bool cascaded);
wxMenu *GetNewMenu();
wxString GetSql(ctlTree *browser);
pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);
private:
bool active, spool;
long pid;
wxString connInfo;
};
class slNodeCollection : public slObjCollection
{
public:
slNodeCollection(pgaFactory *factory, slCluster *cl) : slObjCollection(factory, cl) {}
wxString GetTranslatedMessage(int kindOfMessage) const;
void ShowStatistics(frmMain *form, ctlListView *statistics);
};
//////////////////////////////////////////
// Object under a Slony-I node
class slNodeObject : public slObject
{
public:
slNodeObject(slNode *n, pgaFactory &factory, const wxString &newName = wxT(""));
slNode *GetNode() const
{
return node;
}
private:
slNode *node;
};
// Collection of node objects
class slNodeObjCollection : public slObjCollection
{
public:
slNodeObjCollection(pgaFactory *factory, slNode *n);
slNode *GetNode()
{
return node;
}
private:
slNode *node;
};
class slNodeObjFactory : public slObjFactory
{
public:
slNodeObjFactory(const wxChar *tn, const wxChar *ns, const wxChar *nls, wxImage *img = 0) : slObjFactory(tn, ns, nls, img) {}
virtual pgCollection *CreateCollection(pgObject *obj);
};
#endif
|