[Rprotobuf-commits] r811 - papers/jss
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Wed Jan 22 02:48:23 CET 2014
Author: murray
Date: 2014-01-22 02:48:20 +0100 (Wed, 22 Jan 2014)
New Revision: 811
Modified:
papers/jss/article.Rnw
Log:
Reword the beginning of section 4 a bit, and move the
\verb|method(..)| lines into an enumerated list so that we don't
overflow into the margin.
Modified: papers/jss/article.Rnw
===================================================================
--- papers/jss/article.Rnw 2014-01-21 07:38:20 UTC (rev 810)
+++ papers/jss/article.Rnw 2014-01-22 01:48:20 UTC (rev 811)
@@ -704,15 +704,27 @@
The \CRANpkg{RProtoBuf} package uses the S4 system to store
information about descriptors and messages. Using the S4 system
-allows the \texttt{RProtoBuf} package to dispatch methods that are not
+allows the package to dispatch methods that are not
generic in the S3 sense, such as \texttt{new} and
\texttt{serialize}.
+Table~\ref{class-summary-table} lists the six
+primary Message and Descriptor classes in RProtoBuf. Each R object
+contains an external pointer to an object managed by the
+\texttt{protobuf} C++ library, and the R objects make calls into more
+than 100 C++ functions that provide the
+glue code between the R language classes and the underlying C++
+classes.
-Each R object stores an external pointer to an object managed by
-the \texttt{protobuf} C++ library which implements the core Protocol Buffer
-functionality. The \CRANpkg{Rcpp} package
+The \CRANpkg{Rcpp} package
\citep{eddelbuettel2011rcpp,eddelbuettel2013seamless} is used to
-facilitate the integration of the R and C++ code for these objects.
+facilitate this integration of the R and C++ code for these objects.
+Each method is wrapped individually which alllows us to add user
+friendly custom error handling, type coercion, and performance
+improvements at the cost of a more verbose implementation.
+The RProtoBuf package in many ways motivated
+the development of Rcpp Modules \citep{eddelbuettel2013exposing},
+which provide a more concise way of wrapping C++ functions and classes
+in a single entity.
% Message, Descriptor, FieldDescriptor, EnumDescriptor,
% FileDescriptor, EnumValueDescriptor
@@ -722,19 +734,15 @@
% grep RPB_ * | grep -v RPB_FUNCTION | grep METHOD|wc -l
% 33
-There are over 100 C++ functions that provide the glue code between
-the member functions of the 6 primary Message and Descriptor classes
-in the protobuf library. Wrapping each method individually allows us
-to add user friendly custom error handling, type coercion, and
-performance improvements at the cost of a more verbose
-implementation. The RProtoBuf implementation in many ways motivated
-the development of Rcpp Modules \citep{eddelbuettel2013exposing},
-which provide a more concise way of wrapping C++ functions and classes
-in a single entity.
+The \texttt{RProtoBuf} package supports two forms for calling
+functions with these S4 classes:
+\begin{itemize}
+\item The functional dispatch mechanism of the the form
+ \verb|method(object, arguments)| (common to R), and
+\item The traditional object oriented notation
+ \verb|object$method(arguments)|.
+\end{itemize}
-The \texttt{RProtoBuf} package combines a functional dispatch mechanism
-of the form \verb|method(object, arguments)| (common to R) and the more
-traditional object oriented notation \verb|object$method(arguments)|.
Additionally, \texttt{RProtoBuf} implements the \texttt{.DollarNames} S3 generic function
(defined in the \texttt{utils} package) for all classes to enable tab
completion. Completion possibilities include pseudo-method names for all
@@ -758,7 +766,7 @@
EnumValueDescriptor & 3 & \phantom{1}6 & no\\
\bottomrule
\end{tabular}
-\caption{\label{Message-methods-table}Overview of Class, Slot, Method and
+\caption{\label{class-summary-table}Overview of Class, Slot, Method and
Dispatch Relationships}
\end{table}
More information about the Rprotobuf-commits
mailing list