mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-09-02 14:23:05 -06:00
init
This commit is contained in:
commit
9c6f9f3405
1784 changed files with 440662 additions and 0 deletions
94
pgscript/utilities/pgsThread.cpp
Normal file
94
pgscript/utilities/pgsThread.cpp
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// pgScript - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#include "pgAdmin3.h"
|
||||
#include "pgscript/utilities/pgsThread.h"
|
||||
|
||||
#include "pgscript/pgsApplication.h"
|
||||
#include "pgscript/statements/pgsProgram.h"
|
||||
#include "pgscript/utilities/pgsContext.h"
|
||||
#include "pgscript/utilities/pgsDriver.h"
|
||||
|
||||
pgsThread::pgsThread(pgsVarMap &vars, wxSemaphore &mutex,
|
||||
pgConn *connection, const wxString &file, pgsOutputStream &out,
|
||||
pgsApplication &app, wxMBConv *conv) :
|
||||
wxThread(wxTHREAD_DETACHED), m_vars(vars), m_mutex(mutex),
|
||||
m_connection(connection), m_data(file), m_out(out),
|
||||
m_app(app), m_conv(conv), m_last_error_line(-1)
|
||||
{
|
||||
wxLogScript(wxT("Starting thread"));
|
||||
m_mutex.Wait();
|
||||
}
|
||||
|
||||
pgsThread::pgsThread(pgsVarMap &vars, wxSemaphore &mutex,
|
||||
pgConn *connection, const wxString &string, pgsOutputStream &out,
|
||||
pgsApplication &app) :
|
||||
wxThread(wxTHREAD_DETACHED), m_vars(vars), m_mutex(mutex),
|
||||
m_connection(connection), m_data(string), m_out(out),
|
||||
m_app(app), m_conv(0), m_last_error_line(-1)
|
||||
{
|
||||
wxLogScript(wxT("Starting thread"));
|
||||
m_mutex.Wait();
|
||||
}
|
||||
|
||||
pgsThread::~pgsThread()
|
||||
{
|
||||
wxLogScript(wxT("Finishing thread"));
|
||||
m_app.Complete();
|
||||
m_mutex.Post();
|
||||
wxLogScript(wxT("Thread finished"));
|
||||
}
|
||||
|
||||
void *pgsThread::Entry()
|
||||
{
|
||||
pgsProgram program(m_vars);
|
||||
pgsContext context(m_out);
|
||||
pgscript::pgsDriver driver(context, program, *this);
|
||||
|
||||
if (m_conv)
|
||||
{
|
||||
wxLogScript(wxT("Parsing file"));
|
||||
driver.parse_file(m_data, *m_conv);
|
||||
wxLogScript(wxT("File parsed"));
|
||||
}
|
||||
else
|
||||
{
|
||||
wxLogScript(wxT("Parsing string"));
|
||||
driver.parse_string(m_data);
|
||||
wxLogScript(wxT("String parsed"));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
pgConn *pgsThread::connection()
|
||||
{
|
||||
return m_connection;
|
||||
}
|
||||
|
||||
void pgsThread::LockOutput()
|
||||
{
|
||||
m_app.LockOutput();
|
||||
}
|
||||
|
||||
void pgsThread::UnlockOutput()
|
||||
{
|
||||
m_app.UnlockOutput();
|
||||
}
|
||||
|
||||
void pgsThread::last_error_line(int line)
|
||||
{
|
||||
m_last_error_line = line;
|
||||
}
|
||||
|
||||
int pgsThread::last_error_line() const
|
||||
{
|
||||
return m_last_error_line;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue