24 #ifndef WXMAXIMA_MAXIMA_H
25 #define WXMAXIMA_MAXIMA_H
33 #include <wx/buffer.h>
35 #include <wx/sckstrm.h>
36 #include <wx/socket.h>
37 #include <wx/string.h>
56 explicit Maxima(wxSocketBase *socket);
59 wxSocketBase *Socket()
const {
return m_socket.get(); }
61 bool IsConnected()
const {
return m_socket->IsConnected(); }
63 void SetPipeToStdOut(
bool pipe) { m_pipeToStdout = pipe; }
73 bool Write(
const void *buffer,
size_t length);
88 void SocketEvent(wxSocketEvent &event);
90 void TimerEvent(wxTimerEvent &event);
92 std::unique_ptr<wxSocketBase> m_socket;
93 wxSocketInputStream m_socketInput{*m_socket};
96 wxString m_socketInputData;
97 wxMemoryBuffer m_socketOutputData;
100 bool m_pipeToStdout =
false;
102 wxTimer m_stringEndTimer{
this};
103 wxTimer m_readIdleTimer{
this};
125 wxEvent *Clone()
const override;
126 Cause GetCause()
const {
return m_cause; }
127 Maxima *GetSource()
const {
return m_source; }
128 const wxString &GetData()
const {
return m_data; }
129 wxString &GetData() {
return m_data; }
130 void SetData(
const wxString &data) { m_data = data; }