Add files via upload
This commit is contained in:
489
L7Test/L7Test.cpp
Normal file
489
L7Test/L7Test.cpp
Normal file
@@ -0,0 +1,489 @@
|
|||||||
|
/*
|
||||||
|
* File: L7Test.cpp
|
||||||
|
* Author: Saleem EDAH-TALLY - nmset@netcourrier.com
|
||||||
|
* Copyright Saleem EDAH-TALLY - © 2014
|
||||||
|
*
|
||||||
|
* Created on 4 juin 2014, 20:42
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "L7Test.h"
|
||||||
|
#include <LPQConnection.h>
|
||||||
|
#include <LPQResultSet.h>
|
||||||
|
#include <LSQConnection.h>
|
||||||
|
#include <LSQResultSet.h>
|
||||||
|
#include <LLightPQResultSet.h>
|
||||||
|
#include <LLightSQResultSet.h>
|
||||||
|
#include <LItemData.h>
|
||||||
|
#include <wx/stdpaths.h>
|
||||||
|
#include <wx/filename.h>
|
||||||
|
IMPLEMENT_APP( L7Test )
|
||||||
|
|
||||||
|
L7Test::L7Test()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
L7Test::~L7Test()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool L7Test::OnInit() {
|
||||||
|
L7Frame * main = new L7Frame(NULL, wxID_ANY, _T("L7 Test"));
|
||||||
|
SetAppName(_T("L7Test"));
|
||||||
|
SetTopWindow(main);
|
||||||
|
main->Show();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
int L7Test::OnExit() {
|
||||||
|
return wxApp::OnExit();
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
L7Frame::L7Frame(wxWindow* parent, wxWindowID id, const wxString& title)
|
||||||
|
: wxFrame(parent, id, title)
|
||||||
|
{
|
||||||
|
m_conn = NULL;
|
||||||
|
m_rsTbl1 = NULL;
|
||||||
|
rsTbl2 = NULL;
|
||||||
|
colsCreated = false;
|
||||||
|
wxBoxSizer* szMain = new wxBoxSizer(wxVERTICAL);
|
||||||
|
SetSizer(szMain);
|
||||||
|
|
||||||
|
wxPanel * panConn = new wxPanel(this, wxID_ANY);
|
||||||
|
szMain->Add(panConn, 0 , wxEXPAND, 0);
|
||||||
|
wxBoxSizer * szConn = new wxBoxSizer(wxVERTICAL);
|
||||||
|
panConn->SetSizer(szConn);
|
||||||
|
const wxString b[3]{_T("Choose"), _T("PostgreSQL"), _T("SQLite")};
|
||||||
|
rdBE = new wxRadioBox(panConn, wxID_ANY, _T("Backend"), wxDefaultPosition, wxDefaultSize, 3, b);
|
||||||
|
szConn->Add(rdBE, 0, wxALIGN_CENTER_HORIZONTAL, 0);
|
||||||
|
wxBoxSizer * szDoConn = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
szConn->Add(szDoConn, 0 , wxEXPAND);
|
||||||
|
m_txtConnInfo = new wxTextCtrl(panConn, wxID_ANY);
|
||||||
|
szDoConn->Add(m_txtConnInfo, 1, wxALIGN_CENTRE_VERTICAL);
|
||||||
|
wxButton * btnConn = new wxButton(panConn, wxID_ANY, _("Connect"));
|
||||||
|
szDoConn->Add(btnConn, 0, wxALIGN_CENTRE_VERTICAL);
|
||||||
|
wxButton * btnNewFrame = new wxButton(panConn, wxID_ANY, _T("+"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
|
||||||
|
btnNewFrame->SetToolTip(_("New window"));
|
||||||
|
szDoConn->Add(btnNewFrame, 0, wxALIGN_CENTER_VERTICAL);
|
||||||
|
rdBE->Bind(wxEVT_RADIOBOX, &L7Frame::OnRadioConnClick, this);
|
||||||
|
btnConn->Bind(wxEVT_BUTTON, &L7Frame::OnButtonConnectClick, this);
|
||||||
|
btnNewFrame->Bind(wxEVT_BUTTON, &L7Frame::OnButtonNewFrameClick, this);
|
||||||
|
|
||||||
|
wxPanel * panTbl1 = new wxPanel(this, wxID_ANY);
|
||||||
|
szMain->Add(panTbl1, 0, wxEXPAND, 0);
|
||||||
|
wxBoxSizer * szTbl1 = new wxBoxSizer(wxVERTICAL);
|
||||||
|
panTbl1->SetSizer(szTbl1);
|
||||||
|
wxFlexGridSizer * flxszTbl1 = new wxFlexGridSizer(0, 2, 0, 0);
|
||||||
|
flxszTbl1->AddGrowableCol(0, 1);
|
||||||
|
flxszTbl1->AddGrowableCol(1, 3);
|
||||||
|
szTbl1->Add(flxszTbl1, 0, wxEXPAND, 0);
|
||||||
|
wxStaticText * lbl = new wxStaticText(panTbl1, wxID_ANY, _T("pk1"));
|
||||||
|
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
Pk1 = new LBoundTextCtrl(panTbl1, wxID_ANY);
|
||||||
|
Pk1->SetSQLQuote(wxEmptyString);
|
||||||
|
flxszTbl1->Add(Pk1, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
Pk1->SetEditable(false);
|
||||||
|
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("text1"));
|
||||||
|
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
Text1 = new LBoundTextCtrl(panTbl1, wxID_ANY);
|
||||||
|
flxszTbl1->Add(Text1, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("check1d"));
|
||||||
|
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
Check1d = new LBoundCheckBox(panTbl1, wxID_ANY, wxCHK_2STATE);
|
||||||
|
Check1d->SetLabel(wxEmptyString);
|
||||||
|
flxszTbl1->Add(Check1d, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("check1t"));
|
||||||
|
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
Check1t = new LBoundCheckBox(panTbl1, wxID_ANY, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER);
|
||||||
|
Check1t->SetLabel(wxEmptyString);
|
||||||
|
flxszTbl1->Add(Check1t, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("combo1t"));
|
||||||
|
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
Combo1t = new LBoundComboBox(panTbl1, wxID_ANY);
|
||||||
|
flxszTbl1->Add(Combo1t, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("combo1x"));
|
||||||
|
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
Combo1x = new LBoundComboBox(panTbl1, wxID_ANY);
|
||||||
|
Combo1x->SetSQLQuote(_T("'"));
|
||||||
|
flxszTbl1->Add(Combo1x, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("date1"));
|
||||||
|
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
Date1 = new LBoundDatePickerCtrl(panTbl1, wxID_ANY);
|
||||||
|
flxszTbl1->Add(Date1, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("spin1"));
|
||||||
|
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
Spin1 = new LBoundSpinCtrl(panTbl1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS | wxALIGN_RIGHT, -10, 25, 3);
|
||||||
|
flxszTbl1->Add(Spin1, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||||
|
navTbl1 = new LNavigator(panTbl1, wxID_ANY);
|
||||||
|
szTbl1->Add(navTbl1, 0, wxEXPAND, 0);
|
||||||
|
|
||||||
|
grid = new LBoundGrid(this, wxID_ANY);
|
||||||
|
szMain->Add(grid, 1, wxEXPAND, 0);
|
||||||
|
grid->SetGridFormEventHandler(new GridEVH(this));
|
||||||
|
|
||||||
|
txtMessages = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
|
||||||
|
//szMain->Add(txtMessages, 1, wxEXPAND|wxALIGN_BOTTOM, 0);
|
||||||
|
szMain->Add(txtMessages, 1, wxEXPAND, 0);
|
||||||
|
SetSize(800, 600);
|
||||||
|
}
|
||||||
|
L7Frame::~L7Frame() {
|
||||||
|
delete m_txtConnInfo;
|
||||||
|
delete txtMessages;
|
||||||
|
delete rdBE;
|
||||||
|
delete Pk1;
|
||||||
|
delete Text1;
|
||||||
|
delete Check1d;
|
||||||
|
delete Check1t;
|
||||||
|
delete Combo1t;
|
||||||
|
delete Combo1x;
|
||||||
|
delete Date1;
|
||||||
|
delete Spin1;
|
||||||
|
delete navTbl1; // Has deleted and unregistered it's own event handler.
|
||||||
|
if (m_rsTbl1) {
|
||||||
|
for (unsigned int i = 0; i < m_rsTbl1->GetEventHandlers().Count(); i++) {
|
||||||
|
delete static_cast<LResultSetEvent*> (m_rsTbl1->GetEventHandlers().Item(i));
|
||||||
|
}
|
||||||
|
delete m_rsTbl1;
|
||||||
|
}
|
||||||
|
if (rsTbl2) {
|
||||||
|
for (unsigned int i = 0; i < rsTbl2->GetEventHandlers().Count(); i++) {
|
||||||
|
delete static_cast<LResultSetEvent*> (rsTbl2->GetEventHandlers().Item(i));
|
||||||
|
}
|
||||||
|
delete rsTbl2;
|
||||||
|
}
|
||||||
|
if (m_conn) {
|
||||||
|
m_conn->Close();
|
||||||
|
for (unsigned int i = 0; i < m_conn->GetEventHandlers().Count(); i++) {
|
||||||
|
delete static_cast<ConnectionEVH*> (m_conn->GetEventHandlers().Item(i));
|
||||||
|
}
|
||||||
|
delete m_conn;
|
||||||
|
}
|
||||||
|
delete grid->GetGridFormEventHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
void L7Frame::AppendMsg(const wxString& msg) {
|
||||||
|
static int n =0;
|
||||||
|
txtMessages->AppendText(wxAny(n).As<wxString>() + _T(". ") + msg + _T("\n"));
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
void L7Frame::MsgBox(const wxString& msg) {
|
||||||
|
wxMessageBox(msg, wxApp::GetInstance()->GetAppName(), wxOK|wxCENTRE, this);
|
||||||
|
}
|
||||||
|
void L7Frame::OnRadioConnClick(wxCommandEvent& evt) {
|
||||||
|
wxString connInfo;
|
||||||
|
if (evt.GetInt() == 1) {
|
||||||
|
connInfo = _T("host=localhost port=5424 dbname=l7 user=l7 password=L7");
|
||||||
|
} else if (evt.GetInt() == 2) {
|
||||||
|
connInfo = wxStandardPaths::Get().GetUserDataDir()
|
||||||
|
+ wxFileName::GetPathSeparator()
|
||||||
|
+ _T("L7.db");
|
||||||
|
}
|
||||||
|
m_txtConnInfo->SetValue(connInfo);
|
||||||
|
rdBE->Enable(false);
|
||||||
|
}
|
||||||
|
void L7Frame::OnButtonConnectClick(wxCommandEvent& evt) {
|
||||||
|
if (rdBE->GetSelection() == 0) return;
|
||||||
|
if (!m_conn) {
|
||||||
|
if (rdBE->GetSelection() == 1) {
|
||||||
|
m_conn = new PQ::LPQConnection(m_txtConnInfo->GetValue());
|
||||||
|
ConnectionEVH * connEVH = new ConnectionEVH(this);
|
||||||
|
m_conn->RegisterEventHandler(connEVH);
|
||||||
|
if (m_conn->Connect()) {
|
||||||
|
m_rsTbl1 = new PQ::LPQResultSet(m_conn);
|
||||||
|
rsTbl2 = new PQ::LPQResultSet(m_conn);
|
||||||
|
}
|
||||||
|
} else if (rdBE->GetSelection() == 2) {
|
||||||
|
m_conn = new SQ::LSQConnection(m_txtConnInfo->GetValue());
|
||||||
|
ConnectionEVH * connEVH = new ConnectionEVH(this);
|
||||||
|
m_conn->RegisterEventHandler(connEVH);
|
||||||
|
if (wxFileName::Exists(m_conn->GetInfo())) {
|
||||||
|
if (m_conn->Connect()) {
|
||||||
|
m_rsTbl1 = new SQ::LSQResultSet(m_conn);
|
||||||
|
rsTbl2 = new SQ::LSQResultSet(m_conn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (m_conn->IsValid()) {
|
||||||
|
Pk1->SetColumnName(_T("pk1")); Pk1->SetResultSet(m_rsTbl1);
|
||||||
|
Text1->SetColumnName(_T("text1")); Text1->SetResultSet(m_rsTbl1);
|
||||||
|
Check1d->SetColumnName(_T("check1d")); Check1d->SetResultSet(m_rsTbl1);
|
||||||
|
Check1t->SetColumnName(_T("check1t")); Check1t->SetResultSet(m_rsTbl1);
|
||||||
|
Combo1t->SetColumnName(_T("combo1t")); Combo1t->SetResultSet(m_rsTbl1);
|
||||||
|
Combo1x->SetColumnName(_T("combo1x")); Combo1x->SetResultSet(m_rsTbl1);
|
||||||
|
Date1->SetColumnName(_T("date1")); Date1->SetResultSet(m_rsTbl1);
|
||||||
|
Spin1->SetColumnName(_T("spin1")); Spin1->SetResultSet(m_rsTbl1);
|
||||||
|
Pk1->SetSQLQuote(wxEmptyString);
|
||||||
|
FillComboBox(Combo1t, _T("SELECT id_list1, item FROM list1 ORDER BY id_list1"));
|
||||||
|
FillComboBox(Combo1x, _T("SELECT item FROM list1 ORDER BY id_list1"));
|
||||||
|
navTbl1->SetResultSet(m_rsTbl1);
|
||||||
|
m_rsTbl1->SetTableName(_T("tbl1"));
|
||||||
|
m_rsTbl1->SetPKColumnName(_T("pk1"));
|
||||||
|
m_rsTbl1->RegisterEventHandler(new ResultSetTbl1EVH(this));
|
||||||
|
const wxString sql = _T("SELECT * FROM tbl1 ORDER BY text1");
|
||||||
|
m_rsTbl1->SetSQL(sql); // Must be last, calls LResultSet::Display()
|
||||||
|
rsTbl2->SetTableName(_T("tbl2"));
|
||||||
|
rsTbl2->SetPKColumnName(_T("PK2"));
|
||||||
|
rsTbl2->SetMasterColumnNames(_T("pk1;rand1"));
|
||||||
|
rsTbl2->SetChildColumnNames(_T("pk1;rand1"));
|
||||||
|
rsTbl2->SetMasterResultSet(m_rsTbl1);
|
||||||
|
grid->SetResultSet(rsTbl2);
|
||||||
|
rsTbl2->RegisterEventHandler(new ResultSetTbl2EVH(this));
|
||||||
|
FilterGrid();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const wxAny status = m_conn->IsValid();
|
||||||
|
AppendMsg(_("Connection status : ") + status.As<wxString>());
|
||||||
|
if (!m_conn->IsValid()) {
|
||||||
|
wxDELETE(m_rsTbl1);
|
||||||
|
wxDELETE(m_conn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void L7Frame::OnButtonNewFrameClick(wxCommandEvent& evt) {
|
||||||
|
L7Frame * newFrame = new L7Frame(NULL, wxID_ANY, GetTitle());
|
||||||
|
newFrame->Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void L7Frame::FillComboBox(LBoundComboBox* cmb, const wxString& sql) {
|
||||||
|
if (!m_conn || !cmb) return;
|
||||||
|
LLightResultSet * rs;
|
||||||
|
if (rdBE->GetSelection() == 1) {
|
||||||
|
rs = new PQ::LLightPQResultSet(m_conn);
|
||||||
|
} else if (rdBE->GetSelection() == 2) {
|
||||||
|
rs = new SQ::LLightSQResultSet(m_conn);
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
rs->SetSQL(sql);
|
||||||
|
if (rs->HasData()) {
|
||||||
|
cmb->Clear();
|
||||||
|
if (rs->GetColumnCount() > 1) {
|
||||||
|
cmb->Append(_("NULL item"), (LItemData*) NULL);
|
||||||
|
const wxString dispCol = rs->GetColumnName(1);
|
||||||
|
const wxString idCol = rs->GetColumnName(0);
|
||||||
|
do {
|
||||||
|
cmb->Append(rs->GetData(dispCol).As<wxString>(), new LItemData(rs->GetData(idCol)));
|
||||||
|
} while (rs->Next());
|
||||||
|
} else {
|
||||||
|
cmb->Append(wxEmptyString);
|
||||||
|
const wxString dispCol = rs->GetColumnName(0);
|
||||||
|
do {
|
||||||
|
cmb->Append(rs->GetData(dispCol).As<wxString>());
|
||||||
|
} while (rs->Next());
|
||||||
|
}
|
||||||
|
delete rs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void L7Frame::FilterGrid()
|
||||||
|
{
|
||||||
|
wxString sql = _T("SELECT rand1, PK2, PK1, text2, check2d, check2t, list1.item AS combo2t,"
|
||||||
|
" combo2x, date2, spin2 FROM tbl2"
|
||||||
|
" LEFT JOIN list1 ON tbl2.combo2t = list1.id_list1"
|
||||||
|
" WHERE tbl2.pk1");
|
||||||
|
sql += Pk1->GetValue().IsEmpty() ? _T(" IS NULL ") : _T(" = ") + Pk1->GetValue();
|
||||||
|
sql += " ORDER BY tbl2.text2";
|
||||||
|
rsTbl2->SetSQL(sql);
|
||||||
|
grid->FillGrid();
|
||||||
|
|
||||||
|
if (!colsCreated) {
|
||||||
|
grid->SetDefaultRowSize(40, true);
|
||||||
|
grid->CreateTextColumn(_T("Pk2"), _T("PK2"), 40, false, true);
|
||||||
|
grid->CreateTextColumn(_T("pK1"), _T("PK1"), 40, false, true);
|
||||||
|
grid->CreateTextColumn(_T("text2"), _T("Text 2"), 100, true);
|
||||||
|
grid->CreateCheckBoxColumn(_T("check2d"), _T("Case 2"), 50, false, true);
|
||||||
|
grid->CreateCheckBoxColumn(_T("check2t"), _T("Case 3"), 50, false, false);
|
||||||
|
grid->CreateComboBoxColumn(_T("combo2t"), _T("Combo num"), 80);
|
||||||
|
grid->CreateComboBoxColumn(_T("combo2x"), _T("Combo txt"), 80);
|
||||||
|
grid->CreateDateColumn(_T("date2"), _T("Date"), 80);
|
||||||
|
grid->CreateSpinColumn(_T("spin2"), _T("Spin"), 60, -20, 20, 5);
|
||||||
|
grid->CreateTextColumn(_T("rand1"), _T("Random"), 80, false, true);
|
||||||
|
|
||||||
|
LBoundComboBox * Combo2t = static_cast<LBoundComboBox*> (grid->GetBoundControl(grid->GetGridCursorRow(), _T("combo2t"), false));
|
||||||
|
FillComboBox(Combo2t, _T("SELECT id_list1, item FROM list1 ORDER BY id_list1"));
|
||||||
|
LBoundComboBox * Combo2x = static_cast<LBoundComboBox*> (grid->GetBoundControl(grid->GetGridCursorRow(), _T("combo2x"), false));
|
||||||
|
Combo2x->SetSQLQuote(_T("'"));
|
||||||
|
FillComboBox(Combo2x, _T("SELECT item FROM list1 ORDER BY id_list1"));
|
||||||
|
LBoundControl * Pk2 = grid->GetBoundControl(grid->GetGridCursorRow(), _T("pk2"), false);
|
||||||
|
Pk2->SetSQLQuote(wxEmptyString);
|
||||||
|
LBoundControl * Pk1 = grid->GetBoundControl(grid->GetGridCursorRow(), _T("pk1"), false);
|
||||||
|
Pk1->SetSQLQuote(wxEmptyString);
|
||||||
|
colsCreated = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
ConnectionEVH::ConnectionEVH(L7Frame* newOwner) {
|
||||||
|
owner = newOwner;
|
||||||
|
}
|
||||||
|
ConnectionEVH::~ConnectionEVH() {
|
||||||
|
|
||||||
|
}
|
||||||
|
void ConnectionEVH::Inform(const LConnection* caller, const LInformation& msg) const {
|
||||||
|
owner->MsgBox(msg.GetFullInformation());
|
||||||
|
}
|
||||||
|
void ConnectionEVH::BeforeExecute(const LConnection* caller) {
|
||||||
|
owner->AppendMsg(_T("LConnection::BeforeExecute"));
|
||||||
|
}
|
||||||
|
void ConnectionEVH::AfterExecute(const LConnection* caller) {
|
||||||
|
owner->AppendMsg(_T("LConnection::AfterExecute"));
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
ResultSetTbl1EVH::ResultSetTbl1EVH(L7Frame* newOwner) {
|
||||||
|
owner = newOwner;
|
||||||
|
}
|
||||||
|
ResultSetTbl1EVH::~ResultSetTbl1EVH() {
|
||||||
|
|
||||||
|
}
|
||||||
|
void ResultSetTbl1EVH::Inform(const LResultSet* caller, const LInformation& msg) const {
|
||||||
|
owner->MsgBox(msg.GetFullInformation());
|
||||||
|
}
|
||||||
|
void ResultSetTbl1EVH::AfterAction(LResultSet* caller, ACTIONS action) {
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterAction - ") + caller->GetTableName() + _T(" - ") + wxAny((int) action).As<wxString>());
|
||||||
|
}
|
||||||
|
void ResultSetTbl1EVH::AfterChangeRow(LResultSet* caller) {
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterChangeRow - ") + caller->GetTableName());
|
||||||
|
owner->FilterGrid();
|
||||||
|
}
|
||||||
|
void ResultSetTbl1EVH::AfterDelete(LResultSet* caller, const wxAny& oldPK, const wxString& sql) {
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterDelete - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||||
|
}
|
||||||
|
void ResultSetTbl1EVH::AfterInsert(LResultSet* caller, const wxAny& newPK, const wxString& sql)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterInsert - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl1EVH::AfterSave(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterSave - ") + caller->GetTableName());
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl1EVH::AfterUpdate(LResultSet* caller, const wxAny& curPK, const wxString& sql)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterUpdate - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl1EVH::BeforeChangeRow(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::BeforeChangeRow - ") + caller->GetTableName());
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl1EVH::BeforeDelete(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::BeforeDelete - ") + caller->GetTableName());
|
||||||
|
wxMessageDialog * md = new wxMessageDialog(owner, _("Delete ?"), wxApp::GetInstance()->GetAppName(), wxYES_NO);
|
||||||
|
int reply = md->ShowModal();
|
||||||
|
caller->SetCanDelete(reply == wxID_YES ? true : false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl1EVH::BeforeInsert(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::BeforeInsert - ") + caller->GetTableName());
|
||||||
|
bool valid = !(owner->Text1->IsNull());
|
||||||
|
if (!valid) {
|
||||||
|
owner->MsgBox(_("Text1 is NULL."));
|
||||||
|
}
|
||||||
|
caller->SetCanInsert(valid);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl1EVH::BeforeSave(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::BeforeSave - ") + caller->GetTableName());
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl1EVH::BeforeUpdate(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::BeforeUpdate - ") + caller->GetTableName());
|
||||||
|
bool valid = !(owner->Text1->IsNull());
|
||||||
|
if (!valid) {
|
||||||
|
owner->MsgBox(_("Text1 is NULL."));
|
||||||
|
}
|
||||||
|
caller->SetCanUpdate(valid);
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
ResultSetTbl2EVH::ResultSetTbl2EVH(L7Frame* newOwner) {
|
||||||
|
owner = newOwner;
|
||||||
|
}
|
||||||
|
ResultSetTbl2EVH::~ResultSetTbl2EVH() {
|
||||||
|
|
||||||
|
}
|
||||||
|
void ResultSetTbl2EVH::Inform(const LResultSet* caller, const LInformation& msg) const {
|
||||||
|
owner->MsgBox(msg.GetFullInformation());
|
||||||
|
}
|
||||||
|
void ResultSetTbl2EVH::AfterAction(LResultSet* caller, ACTIONS action) {
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterAction - ") + caller->GetTableName() + _T(" - ") + wxAny((int) action).As<wxString>());
|
||||||
|
}
|
||||||
|
void ResultSetTbl2EVH::AfterChangeRow(LResultSet* caller) {
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterChangeRow - ") + caller->GetTableName());
|
||||||
|
}
|
||||||
|
void ResultSetTbl2EVH::AfterDelete(LResultSet* caller, const wxAny& oldPK, const wxString& sql) {
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterDelete - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||||
|
}
|
||||||
|
void ResultSetTbl2EVH::AfterInsert(LResultSet* caller, const wxAny& newPK, const wxString& sql)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterInsert - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl2EVH::AfterSave(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterSave - ") + caller->GetTableName());
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl2EVH::AfterUpdate(LResultSet* caller, const wxAny& curPK, const wxString& sql)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::AfterUpdate - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl2EVH::BeforeChangeRow(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::BeforeChangeRow - ") + caller->GetTableName());
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl2EVH::BeforeDelete(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::BeforeDelete - ") + caller->GetTableName());
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl2EVH::BeforeInsert(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::BeforeInsert - ") + caller->GetTableName());
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl2EVH::BeforeSave(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::BeforeSave - ") + caller->GetTableName());
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultSetTbl2EVH::BeforeUpdate(LResultSet* caller)
|
||||||
|
{
|
||||||
|
owner->AppendMsg(_T("LResultSet::BeforeUpdate - ") + caller->GetTableName());
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
GridEVH::GridEVH(L7Frame* newOwner)
|
||||||
|
{
|
||||||
|
owner = newOwner;
|
||||||
|
}
|
||||||
|
|
||||||
|
GridEVH::~GridEVH()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void GridEVH::BeforeFormShown(const LBoundGrid* origin, wxBoxSizer* clientSizer)
|
||||||
|
{
|
||||||
|
wxButton * btnClient = new wxButton(clientSizer->GetContainingWindow(), wxID_ANY, _("Click"));
|
||||||
|
clientSizer->Add(btnClient, 1, wxEXPAND);
|
||||||
|
btnClient->Bind(wxEVT_BUTTON, &GridEVH::OnClientButtonClicked, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GridEVH::OnClientButtonClicked(wxCommandEvent& evt)
|
||||||
|
{
|
||||||
|
wxTextCtrl * txtFormCtrl = static_cast<wxTextCtrl*> (owner->grid->GetFormEditor(_T("text2")));
|
||||||
|
owner->MsgBox(txtFormCtrl->GetValue());
|
||||||
|
}
|
||||||
142
L7Test/L7Test.h
Normal file
142
L7Test/L7Test.h
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
/*
|
||||||
|
* File: L7Test.h
|
||||||
|
* Author: Saleem EDAH-TALLY - nmset@netcourrier.com
|
||||||
|
* Copyright Saleem EDAH-TALLY - © 2014
|
||||||
|
*
|
||||||
|
* Created on 4 juin 2014, 20:42
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef L7TEST_H
|
||||||
|
#define L7TEST_H
|
||||||
|
|
||||||
|
#include <wx/wx.h>
|
||||||
|
#include <LConnection.h>
|
||||||
|
#include <LResultSet.h>
|
||||||
|
#include <LBoundTextCtrl.h>
|
||||||
|
#include <LBoundCheckBox.h>
|
||||||
|
#include <LBoundComboBox.h>
|
||||||
|
#include <LBoundDatePickerCtrl.h>
|
||||||
|
#include <LBoundSpinCtrl.h>
|
||||||
|
#include <LNavigator.h>
|
||||||
|
#include <LBoundGrid.h>
|
||||||
|
|
||||||
|
class L7Test;
|
||||||
|
class L7Frame;
|
||||||
|
|
||||||
|
class L7Test : public wxApp
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
L7Test();
|
||||||
|
virtual ~L7Test();
|
||||||
|
|
||||||
|
bool OnInit();
|
||||||
|
int OnExit();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
class L7Frame : public wxFrame
|
||||||
|
{
|
||||||
|
friend class ConnectionEVH;
|
||||||
|
friend class ResultSetTbl1EVH;
|
||||||
|
friend class ResultSetTbl2EVH;
|
||||||
|
friend class GridEVH;
|
||||||
|
public:
|
||||||
|
L7Frame(wxWindow * parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString);
|
||||||
|
virtual ~L7Frame();
|
||||||
|
private:
|
||||||
|
LConnection * m_conn;
|
||||||
|
wxTextCtrl * m_txtConnInfo;
|
||||||
|
LResultSet * m_rsTbl1;
|
||||||
|
LResultSet * rsTbl2;
|
||||||
|
wxRadioBox * rdBE;
|
||||||
|
wxTextCtrl * txtMessages;
|
||||||
|
LBoundTextCtrl * Pk1;
|
||||||
|
LBoundTextCtrl * Text1;
|
||||||
|
LBoundCheckBox * Check1d; // Dual state
|
||||||
|
LBoundCheckBox * Check1t; // Tri state
|
||||||
|
LBoundComboBox * Combo1t; // Translated
|
||||||
|
LBoundComboBox * Combo1x; // Text
|
||||||
|
LBoundDatePickerCtrl * Date1;
|
||||||
|
LBoundSpinCtrl * Spin1;
|
||||||
|
LNavigator * navTbl1;
|
||||||
|
LBoundGrid * grid;
|
||||||
|
bool colsCreated;
|
||||||
|
|
||||||
|
void AppendMsg(const wxString& msg);
|
||||||
|
void MsgBox(const wxString& msg);
|
||||||
|
void OnRadioConnClick(wxCommandEvent& evt);
|
||||||
|
void OnButtonConnectClick(wxCommandEvent& evt);
|
||||||
|
void OnButtonNewFrameClick(wxCommandEvent& evt);
|
||||||
|
void FillComboBox(LBoundComboBox * cmb, const wxString& sql);
|
||||||
|
void FilterGrid();
|
||||||
|
};
|
||||||
|
|
||||||
|
class ConnectionEVH : public LConnectionEvent {
|
||||||
|
public:
|
||||||
|
ConnectionEVH(L7Frame * newOwner);
|
||||||
|
virtual ~ConnectionEVH();
|
||||||
|
|
||||||
|
private:
|
||||||
|
L7Frame * owner;
|
||||||
|
void BeforeExecute(const LConnection * caller);
|
||||||
|
void AfterExecute(const LConnection * caller);
|
||||||
|
void Inform(const LConnection * caller,
|
||||||
|
const LInformation& msg) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ResultSetTbl1EVH : public LResultSetEvent {
|
||||||
|
public:
|
||||||
|
ResultSetTbl1EVH(L7Frame * newOwner);
|
||||||
|
virtual ~ResultSetTbl1EVH();
|
||||||
|
private:
|
||||||
|
L7Frame * owner;
|
||||||
|
void Inform(const LResultSet* caller, const LInformation& msg) const;
|
||||||
|
void AfterAction(LResultSet* caller, ACTIONS action);
|
||||||
|
void AfterChangeRow(LResultSet* caller);
|
||||||
|
void AfterDelete(LResultSet* caller, const wxAny& oldPK, const wxString& sql);
|
||||||
|
void AfterInsert(LResultSet* caller, const wxAny& newPK, const wxString& sql);
|
||||||
|
void AfterSave(LResultSet* caller);
|
||||||
|
void AfterUpdate(LResultSet* caller, const wxAny& curPK, const wxString& sql);
|
||||||
|
void BeforeChangeRow(LResultSet* caller);
|
||||||
|
void BeforeDelete(LResultSet* caller);
|
||||||
|
void BeforeInsert(LResultSet* caller);
|
||||||
|
void BeforeSave(LResultSet* caller);
|
||||||
|
void BeforeUpdate(LResultSet* caller);
|
||||||
|
};
|
||||||
|
|
||||||
|
class ResultSetTbl2EVH : public LResultSetEvent {
|
||||||
|
public:
|
||||||
|
ResultSetTbl2EVH(L7Frame * newOwner);
|
||||||
|
virtual ~ResultSetTbl2EVH();
|
||||||
|
private:
|
||||||
|
L7Frame * owner;
|
||||||
|
void Inform(const LResultSet* caller, const LInformation& msg) const;
|
||||||
|
void AfterAction(LResultSet* caller, ACTIONS action);
|
||||||
|
void AfterChangeRow(LResultSet* caller);
|
||||||
|
void AfterDelete(LResultSet* caller, const wxAny& oldPK, const wxString& sql);
|
||||||
|
void AfterInsert(LResultSet* caller, const wxAny& newPK, const wxString& sql);
|
||||||
|
void AfterSave(LResultSet* caller);
|
||||||
|
void AfterUpdate(LResultSet* caller, const wxAny& curPK, const wxString& sql);
|
||||||
|
void BeforeChangeRow(LResultSet* caller);
|
||||||
|
void BeforeDelete(LResultSet* caller);
|
||||||
|
void BeforeInsert(LResultSet* caller);
|
||||||
|
void BeforeSave(LResultSet* caller);
|
||||||
|
void BeforeUpdate(LResultSet* caller);
|
||||||
|
};
|
||||||
|
|
||||||
|
class GridEVH : public LBoundGridFormEvent {
|
||||||
|
public:
|
||||||
|
GridEVH(L7Frame * newOwner);
|
||||||
|
virtual ~GridEVH();
|
||||||
|
|
||||||
|
private:
|
||||||
|
L7Frame * owner;
|
||||||
|
|
||||||
|
void BeforeFormShown(const LBoundGrid* origin, wxBoxSizer* clientSizer);
|
||||||
|
void OnClientButtonClicked(wxCommandEvent& evt);
|
||||||
|
|
||||||
|
};
|
||||||
|
#endif /* L7TEST_H */
|
||||||
|
|
||||||
128
L7Test/Makefile
Normal file
128
L7Test/Makefile
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
#
|
||||||
|
# There exist several targets which are by default empty and which can be
|
||||||
|
# used for execution of your targets. These targets are usually executed
|
||||||
|
# before and after some main targets. They are:
|
||||||
|
#
|
||||||
|
# .build-pre: called before 'build' target
|
||||||
|
# .build-post: called after 'build' target
|
||||||
|
# .clean-pre: called before 'clean' target
|
||||||
|
# .clean-post: called after 'clean' target
|
||||||
|
# .clobber-pre: called before 'clobber' target
|
||||||
|
# .clobber-post: called after 'clobber' target
|
||||||
|
# .all-pre: called before 'all' target
|
||||||
|
# .all-post: called after 'all' target
|
||||||
|
# .help-pre: called before 'help' target
|
||||||
|
# .help-post: called after 'help' target
|
||||||
|
#
|
||||||
|
# Targets beginning with '.' are not intended to be called on their own.
|
||||||
|
#
|
||||||
|
# Main targets can be executed directly, and they are:
|
||||||
|
#
|
||||||
|
# build build a specific configuration
|
||||||
|
# clean remove built files from a configuration
|
||||||
|
# clobber remove all built files
|
||||||
|
# all build all configurations
|
||||||
|
# help print help mesage
|
||||||
|
#
|
||||||
|
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
|
||||||
|
# .help-impl are implemented in nbproject/makefile-impl.mk.
|
||||||
|
#
|
||||||
|
# Available make variables:
|
||||||
|
#
|
||||||
|
# CND_BASEDIR base directory for relative paths
|
||||||
|
# CND_DISTDIR default top distribution directory (build artifacts)
|
||||||
|
# CND_BUILDDIR default top build directory (object files, ...)
|
||||||
|
# CONF name of current configuration
|
||||||
|
# CND_PLATFORM_${CONF} platform name (current configuration)
|
||||||
|
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
|
||||||
|
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
|
||||||
|
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
|
||||||
|
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
|
||||||
|
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
|
||||||
|
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
|
||||||
|
#
|
||||||
|
# NOCDDL
|
||||||
|
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
MKDIR=mkdir
|
||||||
|
CP=cp
|
||||||
|
CCADMIN=CCadmin
|
||||||
|
|
||||||
|
|
||||||
|
# build
|
||||||
|
build: .build-post
|
||||||
|
|
||||||
|
.build-pre:
|
||||||
|
# Add your pre 'build' code here...
|
||||||
|
|
||||||
|
.build-post: .build-impl
|
||||||
|
# Add your post 'build' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# clean
|
||||||
|
clean: .clean-post
|
||||||
|
|
||||||
|
.clean-pre:
|
||||||
|
# Add your pre 'clean' code here...
|
||||||
|
|
||||||
|
.clean-post: .clean-impl
|
||||||
|
# Add your post 'clean' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# clobber
|
||||||
|
clobber: .clobber-post
|
||||||
|
|
||||||
|
.clobber-pre:
|
||||||
|
# Add your pre 'clobber' code here...
|
||||||
|
|
||||||
|
.clobber-post: .clobber-impl
|
||||||
|
# Add your post 'clobber' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# all
|
||||||
|
all: .all-post
|
||||||
|
|
||||||
|
.all-pre:
|
||||||
|
# Add your pre 'all' code here...
|
||||||
|
|
||||||
|
.all-post: .all-impl
|
||||||
|
# Add your post 'all' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# build tests
|
||||||
|
build-tests: .build-tests-post
|
||||||
|
|
||||||
|
.build-tests-pre:
|
||||||
|
# Add your pre 'build-tests' code here...
|
||||||
|
|
||||||
|
.build-tests-post: .build-tests-impl
|
||||||
|
# Add your post 'build-tests' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# run tests
|
||||||
|
test: .test-post
|
||||||
|
|
||||||
|
.test-pre: build-tests
|
||||||
|
# Add your pre 'test' code here...
|
||||||
|
|
||||||
|
.test-post: .test-impl
|
||||||
|
# Add your post 'test' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# help
|
||||||
|
help: .help-post
|
||||||
|
|
||||||
|
.help-pre:
|
||||||
|
# Add your pre 'help' code here...
|
||||||
|
|
||||||
|
.help-post: .help-impl
|
||||||
|
# Add your post 'help' code here...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# include project implementation makefile
|
||||||
|
include nbproject/Makefile-impl.mk
|
||||||
|
|
||||||
|
# include project make variables
|
||||||
|
include nbproject/Makefile-variables.mk
|
||||||
89
L7Test/nbproject/Makefile-Debug.mk
Normal file
89
L7Test/nbproject/Makefile-Debug.mk
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
#
|
||||||
|
# Generated Makefile - do not edit!
|
||||||
|
#
|
||||||
|
# Edit the Makefile in the project folder instead (../Makefile). Each target
|
||||||
|
# has a -pre and a -post target defined where you can add customized code.
|
||||||
|
#
|
||||||
|
# This makefile implements configuration specific macros and targets.
|
||||||
|
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
MKDIR=mkdir
|
||||||
|
CP=cp
|
||||||
|
GREP=grep
|
||||||
|
NM=nm
|
||||||
|
CCADMIN=CCadmin
|
||||||
|
RANLIB=ranlib
|
||||||
|
CC=gcc
|
||||||
|
CCC=g++
|
||||||
|
CXX=g++
|
||||||
|
FC=gfortran
|
||||||
|
AS=as
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
CND_PLATFORM=GNU-Linux
|
||||||
|
CND_DLIB_EXT=so
|
||||||
|
CND_CONF=Debug
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
|
||||||
|
# Include project Makefile
|
||||||
|
include Makefile
|
||||||
|
|
||||||
|
# Object Directory
|
||||||
|
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||||
|
|
||||||
|
# Object Files
|
||||||
|
OBJECTFILES= \
|
||||||
|
${OBJECTDIR}/L7Test.o
|
||||||
|
|
||||||
|
|
||||||
|
# C Compiler Flags
|
||||||
|
CFLAGS=
|
||||||
|
|
||||||
|
# CC Compiler Flags
|
||||||
|
CCFLAGS=
|
||||||
|
CXXFLAGS=
|
||||||
|
|
||||||
|
# Fortran Compiler Flags
|
||||||
|
FFLAGS=
|
||||||
|
|
||||||
|
# Assembler Flags
|
||||||
|
ASFLAGS=
|
||||||
|
|
||||||
|
# Link Libraries and Options
|
||||||
|
LDLIBSOPTIONS=-L/usr/local/wxWidgets/lib -lwx_baseu-3.1 -lwx_gtk2u_core-3.1 -lwx_gtk2u_adv-3.1 -lpq -lsqlite3 -Wl,-rpath,'../L7/dist/Debug/GNU-Linux' -L../L7/dist/Debug/GNU-Linux -lL7
|
||||||
|
|
||||||
|
# Build Targets
|
||||||
|
.build-conf: ${BUILD_SUBPROJECTS}
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||||
|
|
||||||
|
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test: ../L7/dist/Debug/GNU-Linux/libL7.so
|
||||||
|
|
||||||
|
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test: ${OBJECTFILES}
|
||||||
|
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||||
|
g++ -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test ${OBJECTFILES} ${LDLIBSOPTIONS}
|
||||||
|
|
||||||
|
${OBJECTDIR}/L7Test.o: L7Test.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -DUSE_LIBPQ -DUSE_LIBSQ -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -I/usr/local/wxWidgets/include/wx-3.1 -I/usr/local/wxWidgets/lib/wx/include/gtk2-unicode-3.1 -I../L7 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/L7Test.o L7Test.cpp
|
||||||
|
|
||||||
|
# Subprojects
|
||||||
|
.build-subprojects:
|
||||||
|
cd ../L7 && ${MAKE} -j8 -f Makefile CONF=Debug
|
||||||
|
|
||||||
|
# Clean Targets
|
||||||
|
.clean-conf: ${CLEAN_SUBPROJECTS}
|
||||||
|
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
|
||||||
|
${RM} -r ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libL7.so
|
||||||
|
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||||
|
|
||||||
|
# Subprojects
|
||||||
|
.clean-subprojects:
|
||||||
|
cd ../L7 && ${MAKE} -j8 -f Makefile CONF=Debug clean
|
||||||
|
|
||||||
|
# Enable dependency checking
|
||||||
|
.dep.inc: .depcheck-impl
|
||||||
|
|
||||||
|
include .dep.inc
|
||||||
89
L7Test/nbproject/Makefile-Release.mk
Normal file
89
L7Test/nbproject/Makefile-Release.mk
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
#
|
||||||
|
# Generated Makefile - do not edit!
|
||||||
|
#
|
||||||
|
# Edit the Makefile in the project folder instead (../Makefile). Each target
|
||||||
|
# has a -pre and a -post target defined where you can add customized code.
|
||||||
|
#
|
||||||
|
# This makefile implements configuration specific macros and targets.
|
||||||
|
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
MKDIR=mkdir
|
||||||
|
CP=cp
|
||||||
|
GREP=grep
|
||||||
|
NM=nm
|
||||||
|
CCADMIN=CCadmin
|
||||||
|
RANLIB=ranlib
|
||||||
|
CC=gcc
|
||||||
|
CCC=g++
|
||||||
|
CXX=g++
|
||||||
|
FC=gfortran
|
||||||
|
AS=as
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
CND_PLATFORM=GNU-Linux
|
||||||
|
CND_DLIB_EXT=so
|
||||||
|
CND_CONF=Release
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
|
||||||
|
# Include project Makefile
|
||||||
|
include Makefile
|
||||||
|
|
||||||
|
# Object Directory
|
||||||
|
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||||
|
|
||||||
|
# Object Files
|
||||||
|
OBJECTFILES= \
|
||||||
|
${OBJECTDIR}/L7Test.o
|
||||||
|
|
||||||
|
|
||||||
|
# C Compiler Flags
|
||||||
|
CFLAGS=
|
||||||
|
|
||||||
|
# CC Compiler Flags
|
||||||
|
CCFLAGS=
|
||||||
|
CXXFLAGS=
|
||||||
|
|
||||||
|
# Fortran Compiler Flags
|
||||||
|
FFLAGS=
|
||||||
|
|
||||||
|
# Assembler Flags
|
||||||
|
ASFLAGS=
|
||||||
|
|
||||||
|
# Link Libraries and Options
|
||||||
|
LDLIBSOPTIONS=-L/usr/local/wxWidgets-Release/lib -lwx_baseu-3.1 -lwx_gtk2u_core-3.1 -lwx_gtk2u_adv-3.1 -Wl,-rpath,'../L7/dist/Release/GNU-Linux' -L../L7/dist/Release/GNU-Linux -lL7 -lpq -lsqlite3
|
||||||
|
|
||||||
|
# Build Targets
|
||||||
|
.build-conf: ${BUILD_SUBPROJECTS}
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||||
|
|
||||||
|
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test: ../L7/dist/Release/GNU-Linux/libL7.so
|
||||||
|
|
||||||
|
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test: ${OBJECTFILES}
|
||||||
|
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||||
|
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test ${OBJECTFILES} ${LDLIBSOPTIONS} -s
|
||||||
|
|
||||||
|
${OBJECTDIR}/L7Test.o: L7Test.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -O2 -s -DUSE_LIBPQ -DUSE_LIBSQ -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -DwxDEBUG_LEVEL=0 -I/usr/local/wxWidgets-Release/include/wx-3.1 -I/usr/local/wxWidgets-Release/lib/wx/include/gtk2-unicode-3.1 -I../L7 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/L7Test.o L7Test.cpp
|
||||||
|
|
||||||
|
# Subprojects
|
||||||
|
.build-subprojects:
|
||||||
|
cd ../L7 && ${MAKE} -j4 -f Makefile CONF=Release
|
||||||
|
|
||||||
|
# Clean Targets
|
||||||
|
.clean-conf: ${CLEAN_SUBPROJECTS}
|
||||||
|
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
|
||||||
|
${RM} -r ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libL7.so
|
||||||
|
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||||
|
|
||||||
|
# Subprojects
|
||||||
|
.clean-subprojects:
|
||||||
|
cd ../L7 && ${MAKE} -j4 -f Makefile CONF=Release clean
|
||||||
|
|
||||||
|
# Enable dependency checking
|
||||||
|
.dep.inc: .depcheck-impl
|
||||||
|
|
||||||
|
include .dep.inc
|
||||||
133
L7Test/nbproject/Makefile-impl.mk
Normal file
133
L7Test/nbproject/Makefile-impl.mk
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
#
|
||||||
|
# Generated Makefile - do not edit!
|
||||||
|
#
|
||||||
|
# Edit the Makefile in the project folder instead (../Makefile). Each target
|
||||||
|
# has a pre- and a post- target defined where you can add customization code.
|
||||||
|
#
|
||||||
|
# This makefile implements macros and targets common to all configurations.
|
||||||
|
#
|
||||||
|
# NOCDDL
|
||||||
|
|
||||||
|
|
||||||
|
# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
|
||||||
|
# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
|
||||||
|
# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
|
||||||
|
# and .clean-reqprojects-conf unless SUB has the value 'no'
|
||||||
|
SUB_no=NO
|
||||||
|
SUBPROJECTS=${SUB_${SUB}}
|
||||||
|
BUILD_SUBPROJECTS_=.build-subprojects
|
||||||
|
BUILD_SUBPROJECTS_NO=
|
||||||
|
BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
|
||||||
|
CLEAN_SUBPROJECTS_=.clean-subprojects
|
||||||
|
CLEAN_SUBPROJECTS_NO=
|
||||||
|
CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
|
||||||
|
|
||||||
|
|
||||||
|
# Project Name
|
||||||
|
PROJECTNAME=L7Test
|
||||||
|
|
||||||
|
# Active Configuration
|
||||||
|
DEFAULTCONF=Debug
|
||||||
|
CONF=${DEFAULTCONF}
|
||||||
|
|
||||||
|
# All Configurations
|
||||||
|
ALLCONFS=Debug Release
|
||||||
|
|
||||||
|
|
||||||
|
# build
|
||||||
|
.build-impl: .build-pre .validate-impl .depcheck-impl
|
||||||
|
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf
|
||||||
|
|
||||||
|
|
||||||
|
# clean
|
||||||
|
.clean-impl: .clean-pre .validate-impl .depcheck-impl
|
||||||
|
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf
|
||||||
|
|
||||||
|
|
||||||
|
# clobber
|
||||||
|
.clobber-impl: .clobber-pre .depcheck-impl
|
||||||
|
@#echo "=> Running $@..."
|
||||||
|
for CONF in ${ALLCONFS}; \
|
||||||
|
do \
|
||||||
|
"${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \
|
||||||
|
done
|
||||||
|
|
||||||
|
# all
|
||||||
|
.all-impl: .all-pre .depcheck-impl
|
||||||
|
@#echo "=> Running $@..."
|
||||||
|
for CONF in ${ALLCONFS}; \
|
||||||
|
do \
|
||||||
|
"${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \
|
||||||
|
done
|
||||||
|
|
||||||
|
# build tests
|
||||||
|
.build-tests-impl: .build-impl .build-tests-pre
|
||||||
|
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf
|
||||||
|
|
||||||
|
# run tests
|
||||||
|
.test-impl: .build-tests-impl .test-pre
|
||||||
|
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf
|
||||||
|
|
||||||
|
# dependency checking support
|
||||||
|
.depcheck-impl:
|
||||||
|
@echo "# This code depends on make tool being used" >.dep.inc
|
||||||
|
@if [ -n "${MAKE_VERSION}" ]; then \
|
||||||
|
echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES} \$${TESTOBJECTFILES}))" >>.dep.inc; \
|
||||||
|
echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
|
||||||
|
echo "include \$${DEPFILES}" >>.dep.inc; \
|
||||||
|
echo "endif" >>.dep.inc; \
|
||||||
|
else \
|
||||||
|
echo ".KEEP_STATE:" >>.dep.inc; \
|
||||||
|
echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# configuration validation
|
||||||
|
.validate-impl:
|
||||||
|
@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
|
||||||
|
then \
|
||||||
|
echo ""; \
|
||||||
|
echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \
|
||||||
|
echo "See 'make help' for details."; \
|
||||||
|
echo "Current directory: " `pwd`; \
|
||||||
|
echo ""; \
|
||||||
|
fi
|
||||||
|
@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
|
||||||
|
then \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# help
|
||||||
|
.help-impl: .help-pre
|
||||||
|
@echo "This makefile supports the following configurations:"
|
||||||
|
@echo " ${ALLCONFS}"
|
||||||
|
@echo ""
|
||||||
|
@echo "and the following targets:"
|
||||||
|
@echo " build (default target)"
|
||||||
|
@echo " clean"
|
||||||
|
@echo " clobber"
|
||||||
|
@echo " all"
|
||||||
|
@echo " help"
|
||||||
|
@echo ""
|
||||||
|
@echo "Makefile Usage:"
|
||||||
|
@echo " make [CONF=<CONFIGURATION>] [SUB=no] build"
|
||||||
|
@echo " make [CONF=<CONFIGURATION>] [SUB=no] clean"
|
||||||
|
@echo " make [SUB=no] clobber"
|
||||||
|
@echo " make [SUB=no] all"
|
||||||
|
@echo " make help"
|
||||||
|
@echo ""
|
||||||
|
@echo "Target 'build' will build a specific configuration and, unless 'SUB=no',"
|
||||||
|
@echo " also build subprojects."
|
||||||
|
@echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no',"
|
||||||
|
@echo " also clean subprojects."
|
||||||
|
@echo "Target 'clobber' will remove all built files from all configurations and,"
|
||||||
|
@echo " unless 'SUB=no', also from subprojects."
|
||||||
|
@echo "Target 'all' will will build all configurations and, unless 'SUB=no',"
|
||||||
|
@echo " also build subprojects."
|
||||||
|
@echo "Target 'help' prints this message."
|
||||||
|
@echo ""
|
||||||
|
|
||||||
35
L7Test/nbproject/Makefile-variables.mk
Normal file
35
L7Test/nbproject/Makefile-variables.mk
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
#
|
||||||
|
# Generated - do not edit!
|
||||||
|
#
|
||||||
|
# NOCDDL
|
||||||
|
#
|
||||||
|
CND_BASEDIR=`pwd`
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
# Debug configuration
|
||||||
|
CND_PLATFORM_Debug=GNU-Linux
|
||||||
|
CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux
|
||||||
|
CND_ARTIFACT_NAME_Debug=l7test
|
||||||
|
CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux/l7test
|
||||||
|
CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux/package
|
||||||
|
CND_PACKAGE_NAME_Debug=l7test.tar
|
||||||
|
CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux/package/l7test.tar
|
||||||
|
# Release configuration
|
||||||
|
CND_PLATFORM_Release=GNU-Linux
|
||||||
|
CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux
|
||||||
|
CND_ARTIFACT_NAME_Release=l7test
|
||||||
|
CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux/l7test
|
||||||
|
CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux/package
|
||||||
|
CND_PACKAGE_NAME_Release=l7test.tar
|
||||||
|
CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux/package/l7test.tar
|
||||||
|
#
|
||||||
|
# include compiler specific variables
|
||||||
|
#
|
||||||
|
# dmake command
|
||||||
|
ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \
|
||||||
|
(mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)
|
||||||
|
#
|
||||||
|
# gmake command
|
||||||
|
.PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk))
|
||||||
|
#
|
||||||
|
include nbproject/private/Makefile-variables.mk
|
||||||
76
L7Test/nbproject/Package-Debug.bash
Normal file
76
L7Test/nbproject/Package-Debug.bash
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/bash -x
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generated - do not edit!
|
||||||
|
#
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
TOP=`pwd`
|
||||||
|
CND_PLATFORM=GNU-Linux
|
||||||
|
CND_CONF=Debug
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
CND_DLIB_EXT=so
|
||||||
|
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
|
||||||
|
TMPDIRNAME=tmp-packaging
|
||||||
|
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||||
|
OUTPUT_BASENAME=l7test
|
||||||
|
PACKAGE_TOP_DIR=l7test/
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
function checkReturnCode
|
||||||
|
{
|
||||||
|
rc=$?
|
||||||
|
if [ $rc != 0 ]
|
||||||
|
then
|
||||||
|
exit $rc
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function makeDirectory
|
||||||
|
# $1 directory path
|
||||||
|
# $2 permission (optional)
|
||||||
|
{
|
||||||
|
mkdir -p "$1"
|
||||||
|
checkReturnCode
|
||||||
|
if [ "$2" != "" ]
|
||||||
|
then
|
||||||
|
chmod $2 "$1"
|
||||||
|
checkReturnCode
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function copyFileToTmpDir
|
||||||
|
# $1 from-file path
|
||||||
|
# $2 to-file path
|
||||||
|
# $3 permission
|
||||||
|
{
|
||||||
|
cp "$1" "$2"
|
||||||
|
checkReturnCode
|
||||||
|
if [ "$3" != "" ]
|
||||||
|
then
|
||||||
|
chmod $3 "$2"
|
||||||
|
checkReturnCode
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
cd "${TOP}"
|
||||||
|
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
|
||||||
|
rm -rf ${NBTMPDIR}
|
||||||
|
mkdir -p ${NBTMPDIR}
|
||||||
|
|
||||||
|
# Copy files and create directories and links
|
||||||
|
cd "${TOP}"
|
||||||
|
makeDirectory "${NBTMPDIR}/l7test/bin"
|
||||||
|
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
|
||||||
|
|
||||||
|
|
||||||
|
# Generate tar file
|
||||||
|
cd "${TOP}"
|
||||||
|
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/l7test.tar
|
||||||
|
cd ${NBTMPDIR}
|
||||||
|
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/l7test.tar *
|
||||||
|
checkReturnCode
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
cd "${TOP}"
|
||||||
|
rm -rf ${NBTMPDIR}
|
||||||
76
L7Test/nbproject/Package-Release.bash
Normal file
76
L7Test/nbproject/Package-Release.bash
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/bash -x
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generated - do not edit!
|
||||||
|
#
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
TOP=`pwd`
|
||||||
|
CND_PLATFORM=GNU-Linux
|
||||||
|
CND_CONF=Release
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
CND_DLIB_EXT=so
|
||||||
|
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
|
||||||
|
TMPDIRNAME=tmp-packaging
|
||||||
|
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||||
|
OUTPUT_BASENAME=l7test
|
||||||
|
PACKAGE_TOP_DIR=l7test/
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
function checkReturnCode
|
||||||
|
{
|
||||||
|
rc=$?
|
||||||
|
if [ $rc != 0 ]
|
||||||
|
then
|
||||||
|
exit $rc
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function makeDirectory
|
||||||
|
# $1 directory path
|
||||||
|
# $2 permission (optional)
|
||||||
|
{
|
||||||
|
mkdir -p "$1"
|
||||||
|
checkReturnCode
|
||||||
|
if [ "$2" != "" ]
|
||||||
|
then
|
||||||
|
chmod $2 "$1"
|
||||||
|
checkReturnCode
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function copyFileToTmpDir
|
||||||
|
# $1 from-file path
|
||||||
|
# $2 to-file path
|
||||||
|
# $3 permission
|
||||||
|
{
|
||||||
|
cp "$1" "$2"
|
||||||
|
checkReturnCode
|
||||||
|
if [ "$3" != "" ]
|
||||||
|
then
|
||||||
|
chmod $3 "$2"
|
||||||
|
checkReturnCode
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
cd "${TOP}"
|
||||||
|
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
|
||||||
|
rm -rf ${NBTMPDIR}
|
||||||
|
mkdir -p ${NBTMPDIR}
|
||||||
|
|
||||||
|
# Copy files and create directories and links
|
||||||
|
cd "${TOP}"
|
||||||
|
makeDirectory "${NBTMPDIR}/l7test/bin"
|
||||||
|
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
|
||||||
|
|
||||||
|
|
||||||
|
# Generate tar file
|
||||||
|
cd "${TOP}"
|
||||||
|
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/l7test.tar
|
||||||
|
cd ${NBTMPDIR}
|
||||||
|
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/l7test.tar *
|
||||||
|
checkReturnCode
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
cd "${TOP}"
|
||||||
|
rm -rf ${NBTMPDIR}
|
||||||
149
L7Test/nbproject/configurations.xml
Normal file
149
L7Test/nbproject/configurations.xml
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configurationDescriptor version="100">
|
||||||
|
<logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT">
|
||||||
|
<logicalFolder name="HeaderFiles"
|
||||||
|
displayName="Header Files"
|
||||||
|
projectFiles="true">
|
||||||
|
<itemPath>L7Test.h</itemPath>
|
||||||
|
</logicalFolder>
|
||||||
|
<logicalFolder name="ResourceFiles"
|
||||||
|
displayName="Resource Files"
|
||||||
|
projectFiles="true">
|
||||||
|
</logicalFolder>
|
||||||
|
<logicalFolder name="SourceFiles"
|
||||||
|
displayName="Source Files"
|
||||||
|
projectFiles="true">
|
||||||
|
<itemPath>L7Test.cpp</itemPath>
|
||||||
|
</logicalFolder>
|
||||||
|
<logicalFolder name="TestFiles"
|
||||||
|
displayName="Test Files"
|
||||||
|
projectFiles="false"
|
||||||
|
kind="TEST_LOGICAL_FOLDER">
|
||||||
|
</logicalFolder>
|
||||||
|
<logicalFolder name="ExternalFiles"
|
||||||
|
displayName="Important Files"
|
||||||
|
projectFiles="false"
|
||||||
|
kind="IMPORTANT_FILES_FOLDER">
|
||||||
|
<itemPath>Makefile</itemPath>
|
||||||
|
</logicalFolder>
|
||||||
|
</logicalFolder>
|
||||||
|
<projectmakefile>Makefile</projectmakefile>
|
||||||
|
<confs>
|
||||||
|
<conf name="Debug" type="1">
|
||||||
|
<toolsSet>
|
||||||
|
<compilerSet>default</compilerSet>
|
||||||
|
<dependencyChecking>true</dependencyChecking>
|
||||||
|
<rebuildPropChanged>false</rebuildPropChanged>
|
||||||
|
</toolsSet>
|
||||||
|
<compileType>
|
||||||
|
<ccTool>
|
||||||
|
<incDir>
|
||||||
|
<pElem>/usr/local/wxWidgets/include/wx-3.1</pElem>
|
||||||
|
<pElem>/usr/local/wxWidgets/lib/wx/include/gtk2-unicode-3.1</pElem>
|
||||||
|
<pElem>../L7</pElem>
|
||||||
|
</incDir>
|
||||||
|
<preprocessorList>
|
||||||
|
<Elem>USE_LIBPQ</Elem>
|
||||||
|
<Elem>USE_LIBSQ</Elem>
|
||||||
|
<Elem>WXUSINGDLL</Elem>
|
||||||
|
<Elem>_FILE_OFFSET_BITS=64</Elem>
|
||||||
|
<Elem>__WXGTK__</Elem>
|
||||||
|
</preprocessorList>
|
||||||
|
</ccTool>
|
||||||
|
<linkerTool>
|
||||||
|
<linkerAddLib>
|
||||||
|
<pElem>/usr/local/wxWidgets/lib</pElem>
|
||||||
|
</linkerAddLib>
|
||||||
|
<commandlineTool>g++</commandlineTool>
|
||||||
|
<linkerLibItems>
|
||||||
|
<linkerLibLibItem>wx_baseu-3.1</linkerLibLibItem>
|
||||||
|
<linkerLibLibItem>wx_gtk2u_core-3.1</linkerLibLibItem>
|
||||||
|
<linkerLibLibItem>wx_gtk2u_adv-3.1</linkerLibLibItem>
|
||||||
|
<linkerLibLibItem>pq</linkerLibLibItem>
|
||||||
|
<linkerLibLibItem>sqlite3</linkerLibLibItem>
|
||||||
|
<linkerLibProjectItem>
|
||||||
|
<makeArtifact PL="../L7"
|
||||||
|
CT="2"
|
||||||
|
CN="Debug"
|
||||||
|
AC="true"
|
||||||
|
BL="true"
|
||||||
|
WD="../L7"
|
||||||
|
BC="${MAKE} -j8 -f Makefile CONF=Debug"
|
||||||
|
CC="${MAKE} -j8 -f Makefile CONF=Debug clean"
|
||||||
|
OP="${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libL7.${CND_DLIB_EXT}">
|
||||||
|
</makeArtifact>
|
||||||
|
</linkerLibProjectItem>
|
||||||
|
</linkerLibItems>
|
||||||
|
</linkerTool>
|
||||||
|
</compileType>
|
||||||
|
<item path="L7Test.cpp" ex="false" tool="1" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="L7Test.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
</conf>
|
||||||
|
<conf name="Release" type="1">
|
||||||
|
<toolsSet>
|
||||||
|
<compilerSet>default</compilerSet>
|
||||||
|
<dependencyChecking>true</dependencyChecking>
|
||||||
|
<rebuildPropChanged>false</rebuildPropChanged>
|
||||||
|
</toolsSet>
|
||||||
|
<compileType>
|
||||||
|
<cTool>
|
||||||
|
<developmentMode>5</developmentMode>
|
||||||
|
</cTool>
|
||||||
|
<ccTool>
|
||||||
|
<developmentMode>5</developmentMode>
|
||||||
|
<stripSymbols>true</stripSymbols>
|
||||||
|
<incDir>
|
||||||
|
<pElem>/usr/local/wxWidgets-Release/include/wx-3.1</pElem>
|
||||||
|
<pElem>/usr/local/wxWidgets-Release/lib/wx/include/gtk2-unicode-3.1</pElem>
|
||||||
|
<pElem>../L7</pElem>
|
||||||
|
</incDir>
|
||||||
|
<preprocessorList>
|
||||||
|
<Elem>USE_LIBPQ</Elem>
|
||||||
|
<Elem>USE_LIBSQ</Elem>
|
||||||
|
<Elem>WXUSINGDLL</Elem>
|
||||||
|
<Elem>_FILE_OFFSET_BITS=64</Elem>
|
||||||
|
<Elem>__WXGTK__</Elem>
|
||||||
|
<Elem>wxDEBUG_LEVEL=0</Elem>
|
||||||
|
</preprocessorList>
|
||||||
|
</ccTool>
|
||||||
|
<fortranCompilerTool>
|
||||||
|
<developmentMode>5</developmentMode>
|
||||||
|
</fortranCompilerTool>
|
||||||
|
<asmTool>
|
||||||
|
<developmentMode>5</developmentMode>
|
||||||
|
</asmTool>
|
||||||
|
<linkerTool>
|
||||||
|
<linkerAddLib>
|
||||||
|
<pElem>/usr/local/wxWidgets-Release/lib</pElem>
|
||||||
|
</linkerAddLib>
|
||||||
|
<stripSymbols>true</stripSymbols>
|
||||||
|
<linkerLibItems>
|
||||||
|
<linkerLibLibItem>wx_baseu-3.1</linkerLibLibItem>
|
||||||
|
<linkerLibLibItem>wx_gtk2u_core-3.1</linkerLibLibItem>
|
||||||
|
<linkerLibLibItem>wx_gtk2u_adv-3.1</linkerLibLibItem>
|
||||||
|
<linkerLibProjectItem>
|
||||||
|
<makeArtifact PL="../L7"
|
||||||
|
CT="2"
|
||||||
|
CN="Release"
|
||||||
|
AC="false"
|
||||||
|
BL="true"
|
||||||
|
WD="../L7"
|
||||||
|
BC="${MAKE} -j4 -f Makefile CONF=Release"
|
||||||
|
CC="${MAKE} -j4 -f Makefile CONF=Release clean"
|
||||||
|
OP="${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libL7.${CND_DLIB_EXT}">
|
||||||
|
</makeArtifact>
|
||||||
|
</linkerLibProjectItem>
|
||||||
|
<linkerLibLibItem>pq</linkerLibLibItem>
|
||||||
|
<linkerLibLibItem>sqlite3</linkerLibLibItem>
|
||||||
|
</linkerLibItems>
|
||||||
|
</linkerTool>
|
||||||
|
</compileType>
|
||||||
|
<item path="L7Test.cpp" ex="false" tool="1" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="L7Test.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
</conf>
|
||||||
|
</confs>
|
||||||
|
</configurationDescriptor>
|
||||||
7
L7Test/nbproject/private/Makefile-variables.mk
Normal file
7
L7Test/nbproject/private/Makefile-variables.mk
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#
|
||||||
|
# Generated - do not edit!
|
||||||
|
#
|
||||||
|
# NOCDDL
|
||||||
|
#
|
||||||
|
# Debug configuration
|
||||||
|
# Release configuration
|
||||||
75
L7Test/nbproject/private/c_standard_headers_indexer.c
Normal file
75
L7Test/nbproject/private/c_standard_headers_indexer.c
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/*
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
|
||||||
|
*
|
||||||
|
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||||
|
* Other names may be trademarks of their respective owners.
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the terms of either the GNU
|
||||||
|
* General Public License Version 2 only ("GPL") or the Common
|
||||||
|
* Development and Distribution License("CDDL") (collectively, the
|
||||||
|
* "License"). You may not use this file except in compliance with the
|
||||||
|
* License. You can obtain a copy of the License at
|
||||||
|
* http://www.netbeans.org/cddl-gplv2.html
|
||||||
|
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
||||||
|
* specific language governing permissions and limitations under the
|
||||||
|
* License. When distributing the software, include this License Header
|
||||||
|
* Notice in each file and include the License file at
|
||||||
|
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the GPL Version 2 section of the License file that
|
||||||
|
* accompanied this code. If applicable, add the following below the
|
||||||
|
* License Header, with the fields enclosed by brackets [] replaced by
|
||||||
|
* your own identifying information:
|
||||||
|
* "Portions Copyrighted [year] [name of copyright owner]"
|
||||||
|
*
|
||||||
|
* If you wish your version of this file to be governed by only the CDDL
|
||||||
|
* or only the GPL Version 2, indicate your decision by adding
|
||||||
|
* "[Contributor] elects to include this software in this distribution
|
||||||
|
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
||||||
|
* single choice of license, a recipient has the option to distribute
|
||||||
|
* your version of this file under either the CDDL, the GPL Version 2 or
|
||||||
|
* to extend the choice of license to its licensees as provided above.
|
||||||
|
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
||||||
|
* Version 2 license, then the option applies only if the new code is
|
||||||
|
* made subject to such option by the copyright holder.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
*/
|
||||||
|
|
||||||
|
// List of standard headers was taken in http://en.cppreference.com/w/c/header
|
||||||
|
|
||||||
|
#include <assert.h> // Conditionally compiled macro that compares its argument to zero
|
||||||
|
#include <ctype.h> // Functions to determine the type contained in character data
|
||||||
|
#include <errno.h> // Macros reporting error conditions
|
||||||
|
#include <float.h> // Limits of float types
|
||||||
|
#include <limits.h> // Sizes of basic types
|
||||||
|
#include <locale.h> // Localization utilities
|
||||||
|
#include <math.h> // Common mathematics functions
|
||||||
|
#include <setjmp.h> // Nonlocal jumps
|
||||||
|
#include <signal.h> // Signal handling
|
||||||
|
#include <stdarg.h> // Variable arguments
|
||||||
|
#include <stddef.h> // Common macro definitions
|
||||||
|
#include <stdio.h> // Input/output
|
||||||
|
#include <string.h> // String handling
|
||||||
|
#include <stdlib.h> // General utilities: memory management, program utilities, string conversions, random numbers
|
||||||
|
#include <time.h> // Time/date utilities
|
||||||
|
#include <iso646.h> // (since C95) Alternative operator spellings
|
||||||
|
#include <wchar.h> // (since C95) Extended multibyte and wide character utilities
|
||||||
|
#include <wctype.h> // (since C95) Wide character classification and mapping utilities
|
||||||
|
#ifdef _STDC_C99
|
||||||
|
#include <complex.h> // (since C99) Complex number arithmetic
|
||||||
|
#include <fenv.h> // (since C99) Floating-point environment
|
||||||
|
#include <inttypes.h> // (since C99) Format conversion of integer types
|
||||||
|
#include <stdbool.h> // (since C99) Boolean type
|
||||||
|
#include <stdint.h> // (since C99) Fixed-width integer types
|
||||||
|
#include <tgmath.h> // (since C99) Type-generic math (macros wrapping math.h and complex.h)
|
||||||
|
#endif
|
||||||
|
#ifdef _STDC_C11
|
||||||
|
#include <stdalign.h> // (since C11) alignas and alignof convenience macros
|
||||||
|
#include <stdatomic.h> // (since C11) Atomic types
|
||||||
|
#include <stdnoreturn.h> // (since C11) noreturn convenience macros
|
||||||
|
#include <threads.h> // (since C11) Thread library
|
||||||
|
#include <uchar.h> // (since C11) UTF-16 and UTF-32 character utilities
|
||||||
|
#endif
|
||||||
74
L7Test/nbproject/private/configurations.xml
Normal file
74
L7Test/nbproject/private/configurations.xml
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configurationDescriptor version="100">
|
||||||
|
<projectmakefile>Makefile</projectmakefile>
|
||||||
|
<confs>
|
||||||
|
<conf name="Debug" type="1">
|
||||||
|
<toolsSet>
|
||||||
|
<developmentServer>localhost</developmentServer>
|
||||||
|
<platform>2</platform>
|
||||||
|
</toolsSet>
|
||||||
|
<dbx_gdbdebugger version="1">
|
||||||
|
<gdb_pathmaps>
|
||||||
|
</gdb_pathmaps>
|
||||||
|
<gdb_interceptlist>
|
||||||
|
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
|
||||||
|
</gdb_interceptlist>
|
||||||
|
<gdb_options>
|
||||||
|
<DebugOptions>
|
||||||
|
</DebugOptions>
|
||||||
|
</gdb_options>
|
||||||
|
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
|
||||||
|
</dbx_gdbdebugger>
|
||||||
|
<nativedebugger version="1">
|
||||||
|
<engine>gdb</engine>
|
||||||
|
</nativedebugger>
|
||||||
|
<runprofile version="9">
|
||||||
|
<runcommandpicklist>
|
||||||
|
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
|
||||||
|
</runcommandpicklist>
|
||||||
|
<runcommand>"${OUTPUT_PATH}"</runcommand>
|
||||||
|
<rundir></rundir>
|
||||||
|
<buildfirst>true</buildfirst>
|
||||||
|
<terminal-type>0</terminal-type>
|
||||||
|
<remove-instrumentation>0</remove-instrumentation>
|
||||||
|
<environment>
|
||||||
|
<variable name="LD_LIBRARY_PATH" value="/usr/local/wxWidgets/lib"/>
|
||||||
|
</environment>
|
||||||
|
</runprofile>
|
||||||
|
</conf>
|
||||||
|
<conf name="Release" type="1">
|
||||||
|
<toolsSet>
|
||||||
|
<developmentServer>localhost</developmentServer>
|
||||||
|
<platform>2</platform>
|
||||||
|
</toolsSet>
|
||||||
|
<dbx_gdbdebugger version="1">
|
||||||
|
<gdb_pathmaps>
|
||||||
|
</gdb_pathmaps>
|
||||||
|
<gdb_interceptlist>
|
||||||
|
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
|
||||||
|
</gdb_interceptlist>
|
||||||
|
<gdb_options>
|
||||||
|
<DebugOptions>
|
||||||
|
</DebugOptions>
|
||||||
|
</gdb_options>
|
||||||
|
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
|
||||||
|
</dbx_gdbdebugger>
|
||||||
|
<nativedebugger version="1">
|
||||||
|
<engine>gdb</engine>
|
||||||
|
</nativedebugger>
|
||||||
|
<runprofile version="9">
|
||||||
|
<runcommandpicklist>
|
||||||
|
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
|
||||||
|
</runcommandpicklist>
|
||||||
|
<runcommand>"${OUTPUT_PATH}"</runcommand>
|
||||||
|
<rundir></rundir>
|
||||||
|
<buildfirst>true</buildfirst>
|
||||||
|
<terminal-type>0</terminal-type>
|
||||||
|
<remove-instrumentation>0</remove-instrumentation>
|
||||||
|
<environment>
|
||||||
|
<variable name="LD_LIBRARY_PATH" value="/usr/local/wxWidgets-Release/lib"/>
|
||||||
|
</environment>
|
||||||
|
</runprofile>
|
||||||
|
</conf>
|
||||||
|
</confs>
|
||||||
|
</configurationDescriptor>
|
||||||
135
L7Test/nbproject/private/cpp_standard_headers_indexer.cpp
Normal file
135
L7Test/nbproject/private/cpp_standard_headers_indexer.cpp
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
/*
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
|
||||||
|
*
|
||||||
|
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||||
|
* Other names may be trademarks of their respective owners.
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the terms of either the GNU
|
||||||
|
* General Public License Version 2 only ("GPL") or the Common
|
||||||
|
* Development and Distribution License("CDDL") (collectively, the
|
||||||
|
* "License"). You may not use this file except in compliance with the
|
||||||
|
* License. You can obtain a copy of the License at
|
||||||
|
* http://www.netbeans.org/cddl-gplv2.html
|
||||||
|
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
||||||
|
* specific language governing permissions and limitations under the
|
||||||
|
* License. When distributing the software, include this License Header
|
||||||
|
* Notice in each file and include the License file at
|
||||||
|
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the GPL Version 2 section of the License file that
|
||||||
|
* accompanied this code. If applicable, add the following below the
|
||||||
|
* License Header, with the fields enclosed by brackets [] replaced by
|
||||||
|
* your own identifying information:
|
||||||
|
* "Portions Copyrighted [year] [name of copyright owner]"
|
||||||
|
*
|
||||||
|
* If you wish your version of this file to be governed by only the CDDL
|
||||||
|
* or only the GPL Version 2, indicate your decision by adding
|
||||||
|
* "[Contributor] elects to include this software in this distribution
|
||||||
|
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
||||||
|
* single choice of license, a recipient has the option to distribute
|
||||||
|
* your version of this file under either the CDDL, the GPL Version 2 or
|
||||||
|
* to extend the choice of license to its licensees as provided above.
|
||||||
|
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
||||||
|
* Version 2 license, then the option applies only if the new code is
|
||||||
|
* made subject to such option by the copyright holder.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
*/
|
||||||
|
|
||||||
|
// List of standard headers was taken in http://en.cppreference.com/w/cpp/header
|
||||||
|
|
||||||
|
#include <cstdlib> // General purpose utilities: program control, dynamic memory allocation, random numbers, sort and search
|
||||||
|
#include <csignal> // Functions and macro constants for signal management
|
||||||
|
#include <csetjmp> // Macro (and function) that saves (and jumps) to an execution context
|
||||||
|
#include <cstdarg> // Handling of variable length argument lists
|
||||||
|
#include <typeinfo> // Runtime type information utilities
|
||||||
|
#include <bitset> // std::bitset class template
|
||||||
|
#include <functional> // Function objects, designed for use with the standard algorithms
|
||||||
|
#include <utility> // Various utility components
|
||||||
|
#include <ctime> // C-style time/date utilites
|
||||||
|
#include <cstddef> // typedefs for types such as size_t, NULL and others
|
||||||
|
#include <new> // Low-level memory management utilities
|
||||||
|
#include <memory> // Higher level memory management utilities
|
||||||
|
#include <climits> // limits of integral types
|
||||||
|
#include <cfloat> // limits of float types
|
||||||
|
#include <limits> // standardized way to query properties of arithmetic types
|
||||||
|
#include <exception> // Exception handling utilities
|
||||||
|
#include <stdexcept> // Standard exception objects
|
||||||
|
#include <cassert> // Conditionally compiled macro that compares its argument to zero
|
||||||
|
#include <cerrno> // Macro containing the last error number
|
||||||
|
#include <cctype> // functions to determine the type contained in character data
|
||||||
|
#include <cwctype> // functions for determining the type of wide character data
|
||||||
|
#include <cstring> // various narrow character string handling functions
|
||||||
|
#include <cwchar> // various wide and multibyte string handling functions
|
||||||
|
#include <string> // std::basic_string class template
|
||||||
|
#include <vector> // std::vector container
|
||||||
|
#include <deque> // std::deque container
|
||||||
|
#include <list> // std::list container
|
||||||
|
#include <set> // std::set and std::multiset associative containers
|
||||||
|
#include <map> // std::map and std::multimap associative containers
|
||||||
|
#include <stack> // std::stack container adaptor
|
||||||
|
#include <queue> // std::queue and std::priority_queue container adaptors
|
||||||
|
#include <algorithm> // Algorithms that operate on containers
|
||||||
|
#include <iterator> // Container iterators
|
||||||
|
#include <cmath> // Common mathematics functions
|
||||||
|
#include <complex> // Complex number type
|
||||||
|
#include <valarray> // Class for representing and manipulating arrays of values
|
||||||
|
#include <numeric> // Numeric operations on values in containers
|
||||||
|
#include <iosfwd> // forward declarations of all classes in the input/output library
|
||||||
|
#include <ios> // std::ios_base class, std::basic_ios class template and several typedefs
|
||||||
|
#include <istream> // std::basic_istream class template and several typedefs
|
||||||
|
#include <ostream> // std::basic_ostream, std::basic_iostream class templates and several typedefs
|
||||||
|
#include <iostream> // several standard stream objects
|
||||||
|
#include <fstream> // std::basic_fstream, std::basic_ifstream, std::basic_ofstream class templates and several typedefs
|
||||||
|
#include <sstream> // std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream class templates and several typedefs
|
||||||
|
#include <strstream> // std::strstream, std::istrstream, std::ostrstream(deprecated)
|
||||||
|
#include <iomanip> // Helper functions to control the format or input and output
|
||||||
|
#include <streambuf> // std::basic_streambuf class template
|
||||||
|
#include <cstdio> // C-style input-output functions
|
||||||
|
#include <locale> // Localization utilities
|
||||||
|
#include <clocale> // C localization utilities
|
||||||
|
#include <ciso646> // empty header. The macros that appear in iso646.h in C are keywords in C++
|
||||||
|
#if __cplusplus >= 201103L
|
||||||
|
#include <typeindex> // (since C++11) std::type_index
|
||||||
|
#include <type_traits> // (since C++11) Compile-time type information
|
||||||
|
#include <chrono> // (since C++11) C++ time utilites
|
||||||
|
#include <initializer_list> // (since C++11) std::initializer_list class template
|
||||||
|
#include <tuple> // (since C++11) std::tuple class template
|
||||||
|
#include <scoped_allocator> // (since C++11) Nested allocator class
|
||||||
|
#include <cstdint> // (since C++11) fixed-size types and limits of other types
|
||||||
|
#include <cinttypes> // (since C++11) formatting macros , intmax_t and uintmax_t math and conversions
|
||||||
|
#include <system_error> // (since C++11) defines std::error_code, a platform-dependent error code
|
||||||
|
#include <cuchar> // (since C++11) C-style Unicode character conversion functions
|
||||||
|
#include <array> // (since C++11) std::array container
|
||||||
|
#include <forward_list> // (since C++11) std::forward_list container
|
||||||
|
#include <unordered_set> // (since C++11) std::unordered_set and std::unordered_multiset unordered associative containers
|
||||||
|
#include <unordered_map> // (since C++11) std::unordered_map and std::unordered_multimap unordered associative containers
|
||||||
|
#include <random> // (since C++11) Random number generators and distributions
|
||||||
|
#include <ratio> // (since C++11) Compile-time rational arithmetic
|
||||||
|
#include <cfenv> // (since C++11) Floating-point environment access functions
|
||||||
|
#include <codecvt> // (since C++11) Unicode conversion facilities
|
||||||
|
#include <regex> // (since C++11) Classes, algorithms and iterators to support regular expression processing
|
||||||
|
#include <atomic> // (since C++11) Atomic operations library
|
||||||
|
#include <ccomplex> // (since C++11)(deprecated in C++17) simply includes the header <complex>
|
||||||
|
#include <ctgmath> // (since C++11)(deprecated in C++17) simply includes the headers <ccomplex> (until C++17)<complex> (since C++17) and <cmath>: the overloads equivalent to the contents of the C header tgmath.h are already provided by those headers
|
||||||
|
#include <cstdalign> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
|
||||||
|
#include <cstdbool> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
|
||||||
|
#include <thread> // (since C++11) std::thread class and supporting functions
|
||||||
|
#include <mutex> // (since C++11) mutual exclusion primitives
|
||||||
|
#include <future> // (since C++11) primitives for asynchronous computations
|
||||||
|
#include <condition_variable> // (since C++11) thread waiting conditions
|
||||||
|
#endif
|
||||||
|
#if __cplusplus >= 201300L
|
||||||
|
#include <shared_mutex> // (since C++14) shared mutual exclusion primitives
|
||||||
|
#endif
|
||||||
|
#if __cplusplus >= 201500L
|
||||||
|
#include <any> // (since C++17) std::any class template
|
||||||
|
#include <optional> // (since C++17) std::optional class template
|
||||||
|
#include <variant> // (since C++17) std::variant class template
|
||||||
|
#include <memory_resource> // (since C++17) Polymorphic allocators and memory resources
|
||||||
|
#include <string_view> // (since C++17) std::basic_string_view class template
|
||||||
|
#include <execution> // (since C++17) Predefined execution policies for parallel versions of the algorithms
|
||||||
|
#include <filesystem> // (since C++17) std::path class and supporting functions
|
||||||
|
#endif
|
||||||
40
L7Test/nbproject/private/launcher.properties
Normal file
40
L7Test/nbproject/private/launcher.properties
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# Launchers File syntax:
|
||||||
|
#
|
||||||
|
# [Must-have property line]
|
||||||
|
# launcher1.runCommand=<Run Command>
|
||||||
|
# [Optional extra properties]
|
||||||
|
# launcher1.displayName=<Display Name, runCommand by default>
|
||||||
|
# launcher1.buildCommand=<Build Command, Build Command specified in project properties by default>
|
||||||
|
# launcher1.runDir=<Run Directory, ${PROJECT_DIR} by default>
|
||||||
|
# launcher1.symbolFiles=<Symbol Files loaded by debugger, ${OUTPUT_PATH} by default>
|
||||||
|
# launcher1.env.<Environment variable KEY>=<Environment variable VALUE>
|
||||||
|
# (If this value is quoted with ` it is handled as a native command which execution result will become the value)
|
||||||
|
# [Common launcher properties]
|
||||||
|
# common.runDir=<Run Directory>
|
||||||
|
# (This value is overwritten by a launcher specific runDir value if the latter exists)
|
||||||
|
# common.env.<Environment variable KEY>=<Environment variable VALUE>
|
||||||
|
# (Environment variables from common launcher are merged with launcher specific variables)
|
||||||
|
# common.symbolFiles=<Symbol Files loaded by debugger>
|
||||||
|
# (This value is overwritten by a launcher specific symbolFiles value if the latter exists)
|
||||||
|
#
|
||||||
|
# In runDir, symbolFiles and env fields you can use these macroses:
|
||||||
|
# ${PROJECT_DIR} - project directory absolute path
|
||||||
|
# ${OUTPUT_PATH} - linker output path (relative to project directory path)
|
||||||
|
# ${OUTPUT_BASENAME}- linker output filename
|
||||||
|
# ${TESTDIR} - test files directory (relative to project directory path)
|
||||||
|
# ${OBJECTDIR} - object files directory (relative to project directory path)
|
||||||
|
# ${CND_DISTDIR} - distribution directory (relative to project directory path)
|
||||||
|
# ${CND_BUILDDIR} - build directory (relative to project directory path)
|
||||||
|
# ${CND_PLATFORM} - platform name
|
||||||
|
# ${CND_CONF} - configuration name
|
||||||
|
# ${CND_DLIB_EXT} - dynamic library extension
|
||||||
|
#
|
||||||
|
# All the project launchers must be listed in the file!
|
||||||
|
#
|
||||||
|
# launcher1.runCommand=...
|
||||||
|
# launcher2.runCommand=...
|
||||||
|
# ...
|
||||||
|
# common.runDir=...
|
||||||
|
# common.env.KEY=VALUE
|
||||||
|
|
||||||
|
# launcher1.runCommand=<type your run command here>
|
||||||
14
L7Test/nbproject/private/private.xml
Normal file
14
L7Test/nbproject/private/private.xml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
||||||
|
<code-assistance-data xmlns="http://www.netbeans.org/ns/make-project-private/1">
|
||||||
|
<code-model-enabled>true</code-model-enabled>
|
||||||
|
</code-assistance-data>
|
||||||
|
<data xmlns="http://www.netbeans.org/ns/make-project-private/1">
|
||||||
|
<activeConfTypeElem>1</activeConfTypeElem>
|
||||||
|
<activeConfIndexElem>0</activeConfIndexElem>
|
||||||
|
</data>
|
||||||
|
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
||||||
|
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||||
|
<group/>
|
||||||
|
</open-files>
|
||||||
|
</project-private>
|
||||||
33
L7Test/nbproject/project.xml
Normal file
33
L7Test/nbproject/project.xml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://www.netbeans.org/ns/project/1">
|
||||||
|
<type>org.netbeans.modules.cnd.makeproject</type>
|
||||||
|
<configuration>
|
||||||
|
<data xmlns="http://www.netbeans.org/ns/make-project/1">
|
||||||
|
<name>L7Test</name>
|
||||||
|
<c-extensions/>
|
||||||
|
<cpp-extensions>cpp</cpp-extensions>
|
||||||
|
<header-extensions>h</header-extensions>
|
||||||
|
<sourceEncoding>UTF-8</sourceEncoding>
|
||||||
|
<make-dep-projects>
|
||||||
|
<make-dep-project>../L7</make-dep-project>
|
||||||
|
</make-dep-projects>
|
||||||
|
<sourceRootList/>
|
||||||
|
<confList>
|
||||||
|
<confElem>
|
||||||
|
<name>Debug</name>
|
||||||
|
<type>1</type>
|
||||||
|
</confElem>
|
||||||
|
<confElem>
|
||||||
|
<name>Release</name>
|
||||||
|
<type>1</type>
|
||||||
|
</confElem>
|
||||||
|
</confList>
|
||||||
|
<formatting>
|
||||||
|
<project-formatting-style>true</project-formatting-style>
|
||||||
|
<c-style>Apache|Apache</c-style>
|
||||||
|
<cpp-style>Apache|Apache</cpp-style>
|
||||||
|
<header-style>Apache|Apache</header-style>
|
||||||
|
</formatting>
|
||||||
|
</data>
|
||||||
|
</configuration>
|
||||||
|
</project>
|
||||||
338
L7Test/sql/postgresql.sql
Normal file
338
L7Test/sql/postgresql.sql
Normal file
@@ -0,0 +1,338 @@
|
|||||||
|
--
|
||||||
|
-- PostgreSQL database dump
|
||||||
|
--
|
||||||
|
|
||||||
|
SET statement_timeout = 0;
|
||||||
|
SET lock_timeout = 0;
|
||||||
|
SET client_encoding = 'UTF8';
|
||||||
|
SET standard_conforming_strings = on;
|
||||||
|
SET check_function_bodies = false;
|
||||||
|
SET client_min_messages = warning;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner:
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner:
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
|
||||||
|
|
||||||
|
|
||||||
|
SET search_path = public, pg_catalog;
|
||||||
|
|
||||||
|
SET default_tablespace = '';
|
||||||
|
|
||||||
|
SET default_with_oids = false;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: list1; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE list1 (
|
||||||
|
id_list1 integer NOT NULL,
|
||||||
|
item character varying(50) DEFAULT (NOT NULL::boolean)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE public.list1 OWNER TO postgres;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: list1_id_list1_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE SEQUENCE list1_id_list1_seq
|
||||||
|
START WITH 1
|
||||||
|
INCREMENT BY 1
|
||||||
|
NO MINVALUE
|
||||||
|
NO MAXVALUE
|
||||||
|
CACHE 1;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE public.list1_id_list1_seq OWNER TO postgres;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: list1_id_list1_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER SEQUENCE list1_id_list1_seq OWNED BY list1.id_list1;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl1; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE tbl1 (
|
||||||
|
pk1 integer NOT NULL,
|
||||||
|
text1 character varying(255) NOT NULL,
|
||||||
|
check1d integer DEFAULT 0,
|
||||||
|
check1t integer,
|
||||||
|
combo1t integer,
|
||||||
|
combo1x character varying(50),
|
||||||
|
date1 date,
|
||||||
|
spin1 integer DEFAULT 3,
|
||||||
|
rand1 integer DEFAULT round((random() * (10000000)::double precision)) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE public.tbl1 OWNER TO postgres;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl1_pk1_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE SEQUENCE tbl1_pk1_seq
|
||||||
|
START WITH 1
|
||||||
|
INCREMENT BY 1
|
||||||
|
NO MINVALUE
|
||||||
|
NO MAXVALUE
|
||||||
|
CACHE 1;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE public.tbl1_pk1_seq OWNER TO postgres;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl1_pk1_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER SEQUENCE tbl1_pk1_seq OWNED BY tbl1.pk1;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl2; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE tbl2 (
|
||||||
|
pk2 integer NOT NULL,
|
||||||
|
pk1 integer NOT NULL,
|
||||||
|
text2 character varying(255) NOT NULL,
|
||||||
|
check2d integer DEFAULT 0,
|
||||||
|
check2t integer,
|
||||||
|
combo2t integer,
|
||||||
|
combo2x character varying(50),
|
||||||
|
date2 date,
|
||||||
|
spin2 integer DEFAULT 5,
|
||||||
|
rand1 integer
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE public.tbl2 OWNER TO postgres;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl2_pk2_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE SEQUENCE tbl2_pk2_seq
|
||||||
|
START WITH 1
|
||||||
|
INCREMENT BY 1
|
||||||
|
NO MINVALUE
|
||||||
|
NO MAXVALUE
|
||||||
|
CACHE 1;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE public.tbl2_pk2_seq OWNER TO postgres;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl2_pk2_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER SEQUENCE tbl2_pk2_seq OWNED BY tbl2.pk2;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: id_list1; Type: DEFAULT; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY list1 ALTER COLUMN id_list1 SET DEFAULT nextval('list1_id_list1_seq'::regclass);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: pk1; Type: DEFAULT; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY tbl1 ALTER COLUMN pk1 SET DEFAULT nextval('tbl1_pk1_seq'::regclass);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: pk2; Type: DEFAULT; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY tbl2 ALTER COLUMN pk2 SET DEFAULT nextval('tbl2_pk2_seq'::regclass);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Data for Name: list1; Type: TABLE DATA; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
COPY list1 (id_list1, item) FROM stdin;
|
||||||
|
1 List1Item1
|
||||||
|
2 List1Item2
|
||||||
|
3 List1Item3
|
||||||
|
4 List1Item4
|
||||||
|
5 List1Item5
|
||||||
|
\.
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: list1_id_list1_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
SELECT pg_catalog.setval('list1_id_list1_seq', 5, true);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Data for Name: tbl1; Type: TABLE DATA; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
COPY tbl1 (pk1, text1, check1d, check1t, combo1t, combo1x, date1, rand1) FROM stdin;
|
||||||
|
\.
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl1_pk1_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
SELECT pg_catalog.setval('tbl1_pk1_seq', 0, true);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Data for Name: tbl2; Type: TABLE DATA; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
COPY tbl2 (pk2, pk1, text2, check2d, check2t, combo2t, combo2x, date2, rand1) FROM stdin;
|
||||||
|
\.
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl2_pk2_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
SELECT pg_catalog.setval('tbl2_pk2_seq', 0, true);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: list1_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY list1
|
||||||
|
ADD CONSTRAINT list1_pkey PRIMARY KEY (id_list1);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl1_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY tbl1
|
||||||
|
ADD CONSTRAINT tbl1_pkey PRIMARY KEY (pk1);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl2_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY tbl2
|
||||||
|
ADD CONSTRAINT tbl2_pkey PRIMARY KEY (pk2);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl1_combo1t_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY tbl1
|
||||||
|
ADD CONSTRAINT tbl1_combo1t_fkey FOREIGN KEY (combo1t) REFERENCES list1(id_list1);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl2_combo2t_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY tbl2
|
||||||
|
ADD CONSTRAINT tbl2_combo2t_fkey FOREIGN KEY (combo2t) REFERENCES list1(id_list1);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl2_pk1_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY tbl2
|
||||||
|
ADD CONSTRAINT tbl2_pk1_fkey FOREIGN KEY (pk1) REFERENCES tbl1(pk1);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: public; Type: ACL; Schema: -; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
REVOKE ALL ON SCHEMA public FROM PUBLIC;
|
||||||
|
REVOKE ALL ON SCHEMA public FROM postgres;
|
||||||
|
GRANT ALL ON SCHEMA public TO postgres;
|
||||||
|
GRANT ALL ON SCHEMA public TO PUBLIC;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: list1; Type: ACL; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
REVOKE ALL ON TABLE list1 FROM PUBLIC;
|
||||||
|
REVOKE ALL ON TABLE list1 FROM postgres;
|
||||||
|
GRANT ALL ON TABLE list1 TO postgres;
|
||||||
|
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE list1 TO l7;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: list1_id_list1_seq; Type: ACL; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
REVOKE ALL ON SEQUENCE list1_id_list1_seq FROM PUBLIC;
|
||||||
|
REVOKE ALL ON SEQUENCE list1_id_list1_seq FROM postgres;
|
||||||
|
GRANT ALL ON SEQUENCE list1_id_list1_seq TO postgres;
|
||||||
|
GRANT SELECT,UPDATE ON SEQUENCE list1_id_list1_seq TO l7;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl1; Type: ACL; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
REVOKE ALL ON TABLE tbl1 FROM PUBLIC;
|
||||||
|
REVOKE ALL ON TABLE tbl1 FROM postgres;
|
||||||
|
GRANT ALL ON TABLE tbl1 TO postgres;
|
||||||
|
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE tbl1 TO l7;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl1_pk1_seq; Type: ACL; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
REVOKE ALL ON SEQUENCE tbl1_pk1_seq FROM PUBLIC;
|
||||||
|
REVOKE ALL ON SEQUENCE tbl1_pk1_seq FROM postgres;
|
||||||
|
GRANT ALL ON SEQUENCE tbl1_pk1_seq TO postgres;
|
||||||
|
GRANT SELECT,UPDATE ON SEQUENCE tbl1_pk1_seq TO l7;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl2; Type: ACL; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
REVOKE ALL ON TABLE tbl2 FROM PUBLIC;
|
||||||
|
REVOKE ALL ON TABLE tbl2 FROM postgres;
|
||||||
|
GRANT ALL ON TABLE tbl2 TO postgres;
|
||||||
|
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE tbl2 TO l7;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: tbl2_pk2_seq; Type: ACL; Schema: public; Owner: postgres
|
||||||
|
--
|
||||||
|
|
||||||
|
REVOKE ALL ON SEQUENCE tbl2_pk2_seq FROM PUBLIC;
|
||||||
|
REVOKE ALL ON SEQUENCE tbl2_pk2_seq FROM postgres;
|
||||||
|
GRANT ALL ON SEQUENCE tbl2_pk2_seq TO postgres;
|
||||||
|
GRANT SELECT,UPDATE ON SEQUENCE tbl2_pk2_seq TO l7;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- PostgreSQL database dump complete
|
||||||
|
--
|
||||||
|
|
||||||
35
L7Test/sql/sqlite.sql
Normal file
35
L7Test/sql/sqlite.sql
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
CREATE TABLE "List1" (
|
||||||
|
"ID_List1" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||||
|
"Item" TEXT NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE tbl2 (
|
||||||
|
"PK2" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||||
|
"PK1" INTEGER NOT NULL,
|
||||||
|
"text2" TEXT NOT NULL,
|
||||||
|
"check2d" INTEGER,
|
||||||
|
"check2t" INTEGER,
|
||||||
|
"combo2t" INTEGER,
|
||||||
|
"combo2x" TEXT,
|
||||||
|
"date2" TEXT,
|
||||||
|
"spin2" INTEGER DEFAULT 5,
|
||||||
|
"rand1" INTEGER NOT NULL DEFAULT (abs(random())),
|
||||||
|
foreign key (combo2t) references list1(id_list1),
|
||||||
|
foreign key (pk1) references tbl1(pk1)
|
||||||
|
);
|
||||||
|
CREATE TABLE tbl1 (
|
||||||
|
"PK1" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||||
|
"text1" TEXT NOT NULL,
|
||||||
|
"check1d" INTEGER,
|
||||||
|
"check1t" INTEGER,
|
||||||
|
"combo1t" INTEGER,
|
||||||
|
"combo1x" TEXT,
|
||||||
|
"date1" TEXT,
|
||||||
|
"spin1" INTEGER DEFAULT 3,
|
||||||
|
"rand1" INTEGER NOT NULL DEFAULT (abs(random()))
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO List1 VALUES(1, 'List1Item1');
|
||||||
|
INSERT INTO List1 VALUES(2, 'List1Item2');
|
||||||
|
INSERT INTO List1 VALUES(3, 'List1Item3');
|
||||||
|
INSERT INTO List1 VALUES(4, 'List1Item4');
|
||||||
|
INSERT INTO List1 VALUES(5, 'List1Item5');
|
||||||
Reference in New Issue
Block a user