view R/rdyncall/man/typeinfo.Rd @ 61:c5a69c454963 default tip

- allow use of 'None' with 'Z' - bumped version to 1.4 (be in sync current dyncall version)
author Tassilo Philipp
date Mon, 03 Apr 2023 19:06:07 +0200
parents 0cfcc391201f
children
line wrap: on
line source

\name{typeinfo}
\alias{TypeInfo}
\alias{getTypeInfo}
\alias{type information}
\title{S3 class for run-time type information of foreign C data types}
\description{S3 class for run-time type information of foreign C data types.}
\usage{
TypeInfo(name, type = c("base","pointer","struct","union"), 
  size = NA, align = NA, basetype = NA, fields = NA, 
  signature = NA)
getTypeInfo(name, envir = parent.frame())
}
\arguments{
  \item{name}{character string specifying the type name.}
  \item{type}{character string specifying the type.}
  \item{size}{integer, size of type in bytes.}
  \item{align}{integer, alignment of type in bytes.}
  \item{basetype}{character string, base type of 'pointer' types.}
  \item{signature}{character string specifying the struct/union type \link{signature}.}
  \item{envir}{the environment to look for type object.}
  \item{fields}{data frame with type and offset information that specifies aggregate struct and union types.}
}
\details{
Type information objects are created at run-time to describe the concrete
layout of foreign C data types on the host machine. While \link{type signature}s
give an abstract information on e.g. the field types and names of 
aggregate structure types, these objects store concrete memory size, alignment and layout information
about C data types.
}
\value{
List object tagged as S3 class 'TypeInfo' with the following named entries
\item{type}{Type name.}
\item{size}{Size in bytes.}
\item{align}{Alignment in bytes.}
\item{fields}{Data frame for field information with the following columns:
  \tabular{ll}{
    \code{type} \tab type name\cr
    \code{offset} \tab byte offset (starts counted from 0)\cr
  }
}
}
\seealso{
\code{\link{parseStructInfos}} for details on the framework for handling foreign C data types.
}