wxMemoryStream doc updated
Added auto-destruction in wxThread::Delete and wxThread::Kill Fixed thread destruction in thread sample git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -15,17 +15,6 @@
|
||||
|
||||
\helpref{wxStreamBuffer}{wxstreamBuffer}
|
||||
|
||||
\wxheading{Remark}
|
||||
|
||||
You can create a similar stream by this way:
|
||||
|
||||
\begin{verbatim}
|
||||
wxStreamBuffer *sb = new wxStreamBuffer(wxStreamBuffer::read);
|
||||
wxInputStream *input = new wxInputStream(sb);
|
||||
|
||||
sb->SetBufferIO(data, data\_end);
|
||||
\end{verbatim}
|
||||
|
||||
% ----------
|
||||
% Members
|
||||
% ----------
|
||||
@@ -61,33 +50,6 @@ Destructor.
|
||||
|
||||
\helpref{wxStreamBuffer}{wxstreamBuffer}
|
||||
|
||||
\wxheading{Remark}
|
||||
|
||||
You can create a similar stream by this way:
|
||||
|
||||
\begin{verbatim}
|
||||
wxStreamBuffer *sb = new wxStreamBuffer(wxStreamBuffer::write);
|
||||
wxOutputStream *input = new wxOutputStream(sb);
|
||||
|
||||
// If there are data
|
||||
sb->SetBufferIO(data, data\_end);
|
||||
// Else
|
||||
sb->Fixed(FALSE);
|
||||
\end{verbatim}
|
||||
|
||||
This way is also useful to create read/write memory stream:
|
||||
|
||||
\begin{verbatim}
|
||||
wxStreamBuffer *sb = new wxStreamBuffer(wxStreamBuffer::read\_write);
|
||||
wxOutputStream *output = new wxOutputStream(sb);
|
||||
wxInputStream *input = new wxInputStream(sb);
|
||||
|
||||
// If there are data
|
||||
sb->SetBufferIO(data, data\_end);
|
||||
// Else
|
||||
sb->Fixed(FALSE);
|
||||
\end{verbatim}
|
||||
|
||||
% ----------
|
||||
% Members
|
||||
% ----------
|
||||
@@ -111,3 +73,15 @@ stream.
|
||||
|
||||
Destructor.
|
||||
|
||||
\membersection{wxMemoryOutputStream::CopyTo}
|
||||
|
||||
\constfunc{size\_t}{CopyTo}{\param{char *}{buffer}, \param{size\_t }{len}}
|
||||
|
||||
CopyTo allowed you to transfer data from the internal buffer of
|
||||
wxMemoryOutputStream to an external buffer. \it{len} specifies the size of
|
||||
the buffer.
|
||||
|
||||
\wxheading{Returned value}
|
||||
|
||||
CopyTo returns the number of bytes copied to the buffer. Generally it is either
|
||||
len or the size of the stream buffer.
|
||||
|
@@ -46,7 +46,8 @@ typedef enum {
|
||||
GSOCK_INVADDR,
|
||||
GSOCK_INVSOCK,
|
||||
GSOCK_NOHOST,
|
||||
GSOCK_INVPORT
|
||||
GSOCK_INVPORT,
|
||||
GSOCK_TRYAGAIN
|
||||
} GSocketError;
|
||||
|
||||
typedef enum {
|
||||
|
@@ -404,7 +404,9 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event) )
|
||||
size_t count = m_threads.Count();
|
||||
for ( size_t i = 0; i < count; i++ )
|
||||
{
|
||||
m_threads[i]->Delete();
|
||||
// We must always use 0 because Delete() calls OnThreadExit() and
|
||||
// OnThreadExit() removed 0 from the array.
|
||||
m_threads[0]->Delete();
|
||||
}
|
||||
|
||||
Close(TRUE);
|
||||
|
@@ -562,6 +562,7 @@ bool wxEvtHandler::ProcessThreadEvent(wxEvent& event)
|
||||
wxPendingEvents->Append(this);
|
||||
wxPendingEventsLocker->Leave();
|
||||
|
||||
// TODO: Wake up idle handler for the other platforms.
|
||||
#ifdef __WXGTK__
|
||||
if (g_isIdle)
|
||||
wxapp_install_idle_handler();
|
||||
|
@@ -100,8 +100,12 @@ public:
|
||||
|
||||
wxMutex::wxMutex()
|
||||
{
|
||||
pthread_mutexattr_t attr_type;
|
||||
|
||||
pthread_mutexattr_settype( &attr_type, PTHREAD_MUTEX_FAST_NP );
|
||||
|
||||
p_internal = new wxMutexInternal;
|
||||
pthread_mutex_init( &(p_internal->p_mutex), (const pthread_mutexattr_t*) NULL );
|
||||
pthread_mutex_init( &(p_internal->p_mutex), (const pthread_mutexattr_t*) &attr_type );
|
||||
m_locked = 0;
|
||||
}
|
||||
|
||||
@@ -696,6 +700,8 @@ wxThread::ExitCode wxThread::Delete()
|
||||
// wait until the thread stops
|
||||
p_internal->Wait();
|
||||
}
|
||||
//GL: As we must auto-destroy, the destruction must happen here.
|
||||
delete this;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -717,6 +723,8 @@ wxThreadError wxThread::Kill()
|
||||
|
||||
return wxTHREAD_MISC_ERROR;
|
||||
}
|
||||
//GL: As we must auto-destroy, the destruction must happen here (2).
|
||||
delete this;
|
||||
|
||||
return wxTHREAD_NO_ERROR;
|
||||
}
|
||||
|
Reference in New Issue
Block a user