\section{dbsearchimpl}
\label{module_dbsearchimpl}
This module contains the following objects

\begin{itemize}
\item \ref{object_DBSearchImpl} DBSearchImpl

\item This module also contains some factory methods
\end{itemize}
\subsection{dbsearchimpl factory methods}
\subsubsection{new_pthread_DBSearchImpl}
\begin{description}
\item[External C] {\tt Wise2_new_pthread_DBSearchImpl (void)}
\item[Perl] {\tt &Wise2::new_pthread_DBSearchImpl ()}

\end{description}
Arguments
\begin{description}
\item[returns] [UNKN ] Undocumented return value [DBSearchImpl *]
\end{description}
Makes a new pthreaded DBSearchImpl


For use mainly for api's who don't want
to initalize the object from the command
line


\subsubsection{new_serial_DBSearchImpl}
\begin{description}
\item[External C] {\tt Wise2_new_serial_DBSearchImpl (void)}
\item[Perl] {\tt &Wise2::new_serial_DBSearchImpl ()}

\end{description}
Arguments
\begin{description}
\item[returns] [UNKN ] Undocumented return value [DBSearchImpl *]
\end{description}
Makes a new serial DBSearchImpl


For use mainly for api's who don't want
to initalize the object from the command
line




\subsection{Object DBSearchImpl}

\label{object_DBSearchImpl}

The DBSearchImpl object has the following fields. To see how to access them refer to \ref{accessing_fields}
\begin{description}
\item{type} Type [int : Scalar] No documentation

\item{trace_level} Type [int : Scalar]  how much debugging information to print

\item{trace_file} Type [FILE * : Scalar]  for writing out trace of db stuff

\item{suggest_thread_no} Type [int : Scalar]  default, -1, means the use a call to _SC_NPROC

\item{search_routine} Type [int : Scalar]  routine used for the calculation, exact/kbest

\end{description}


DBSearchImpl contains the information about
the database search implementation used in
a dynamite call. This is the only object which
needs to specify say threads vs serial code


The construction of this object is from its own
stripping of the command line. This way programs
which do database searching need not know anything
about the implementation that is being used by 
the dynamite compiler


From the API you should be looking to make it from
one of the handy constructors.


For the threads code, if you leave the suggest_thread_no
at (-1) - what it usually comes as for the constructors.
The system then figures out the number of processors available
on the machine and sets it to that.




Member functions of DBSearchImpl

\subsubsection{impl_string_DBSearchImpl}

\begin{description}
\item[External C] {\tt Wise2_impl_string_DBSearchImpl (dbsi)}
\item[Perl] {\tt &Wise2::DBSearchImpl::string (dbsi)}

\item[Perl-OOP call] {\tt $obj->string()}

\end{description}
Arguments
\begin{description}
\item[dbsi] [UNKN ] Undocumented argument [DBSearchImpl *]
\item[returns] [SOFT ] string of the search implementation [char *]
\end{description}
Gets a static text string out of the
search implementation 


