⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swarm.defobj.generic.module.html

📁 set for Swarm2.1是圣菲研究院的开发人员对Swarm的特性及其使用描述的最为完备的指南性文档。从这里可以获得最细致的平台说明。
💻 HTML
字号:
<HTML><HEAD><TITLE>General</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.53"><LINKREL="HOME"TITLE="Documentation Set for Swarm 2.1.1"HREF="set.html"><LINKREL="UP"TITLE="Defobj Library"HREF="swarm.defobj.sgml.reference.html"><LINKREL="PREVIOUS"TITLE="Zone"HREF="swarm.defobj.zone.protocol.html"><LINKREL="NEXT"TITLE="Collections Library"HREF="swarm.collections.sgml.reference.html"></HEAD><BODYCLASS="REFENTRY"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLEWIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">Documentation Set for Swarm 2.1.1</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="swarm.defobj.zone.protocol.html">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">Reference I. Defobj Library</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="swarm.collections.sgml.reference.html">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><H1><ANAME="SWARM.DEFOBJ.GENERIC.MODULE">General</A></H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN5012"></A><H2>Name</H2>defobj&nbsp;--&nbsp; Standard objects for GNU Objective C extensions</DIV><DIVCLASS="REFSECT1"><ANAME="AEN5015"></A><H2>Description</H2><P> The defobj library supports the style of object-oriented programming that is used throughout Swarm.  It defines a specific style for using the Objective C language that includes its own standard conventions for creating objects and for storage allocation, error handling, and debugging support.</P></DIV><DIVCLASS="REFSECT1"><ANAME="AEN5018"></A><H2>Macros</H2><P></P><UL><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.MACRO.DSIZE"></A><P></P><P><CODE><BCLASS="FSFUNC">DSIZE</B>(<VARCLASS="PDPARAM">type</VAR>)</CODE></P><BR> Conservative approximation of the number of decimal digits for a object of a given type, not including terminator.  signchar + roundup (log (10)/log(2) = 3.3219).<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.MACRO.FREEBLOCK"></A><P></P><P><CODE><BCLASS="FSFUNC">FREEBLOCK</B>(<VARCLASS="PDPARAM">block</VAR>)</CODE></P><BR><P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.MACRO.M"></A><P></P><P><CODE><BCLASS="FSFUNC">M</B>(<VARCLASS="PDPARAM">messageName</VAR>)</CODE></P><BR> Abbreviation for @selector().<P></P></DIV></LI><LI><P>MAKE_CLASS_FUNCTION_NAME</P><P> Name to use for Lisp archiving class-creation function</P></LI><LI><P>MAKE_INSTANCE_FUNCTION_NAME</P><P> Name to use for Lisp archiving object-creation function</P></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.MACRO.OFREEBLOCK"></A><P></P><P><CODE><BCLASS="FSFUNC">OFREEBLOCK</B>(<VARCLASS="PDPARAM">obj</VAR>, <VARCLASS="PDPARAM">block</VAR>)</CODE></P><BR><P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.MACRO.OSTRDUP"></A><P></P><P><CODE><BCLASS="FSFUNC">OSTRDUP</B>(<VARCLASS="PDPARAM">obj</VAR>, <VARCLASS="PDPARAM">str</VAR>)</CODE></P><BR><P></P></DIV></LI><LI><P>PARSE_FUNCTION_NAME</P><P> Name to use for Lisp archive custom-parse function</P></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.MACRO.SFREEBLOCK"></A><P></P><P><CODE><BCLASS="FSFUNC">SFREEBLOCK</B>(<VARCLASS="PDPARAM">block</VAR>)</CODE></P><BR><P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.MACRO.SSTRDUP"></A><P></P><P><CODE><BCLASS="FSFUNC">SSTRDUP</B>(<VARCLASS="PDPARAM">str</VAR>)</CODE></P><BR><P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.MACRO.STRDUP"></A><P></P><P><CODE><BCLASS="FSFUNC">STRDUP</B>(<VARCLASS="PDPARAM">str</VAR>)</CODE></P><BR><P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.MACRO.ZFREEBLOCK"></A><P></P><P><CODE><BCLASS="FSFUNC">ZFREEBLOCK</B>(<VARCLASS="PDPARAM">aZone</VAR>, <VARCLASS="PDPARAM">block</VAR>)</CODE></P><BR><P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.MACRO.ZSTRDUP"></A><P></P><P><CODE><BCLASS="FSFUNC">ZSTRDUP</B>(<VARCLASS="PDPARAM">aZone</VAR>, <VARCLASS="PDPARAM">str</VAR>)</CODE></P><BR><P></P></DIV></LI><LI><P>globalZone</P><P> A zone for allocating global objects.</P></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.MACRO.INITMODULE"></A><P></P><P><CODE><BCLASS="FSFUNC">initModule</B>(<VARCLASS="PDPARAM">module</VAR>)</CODE></P><BR> module initialization macro<P></P></DIV></LI><LI><P>scratchZone</P><P> A zone for allocating temporary objects.</P></LI></UL></DIV><DIVCLASS="REFSECT1"><ANAME="AEN5143"></A><H2>Functions</H2><P></P><UL><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.OBJFORMATIDSTRING"></A><P></P><P><CODE>void <BCLASS="FSFUNC">_obj_formatIDString</B>(char *<VARCLASS="PDPARAM">buffer</VAR>, id <VARCLASS="PDPARAM">anObject</VAR>)</CODE></P><BR> Function to generate object id string in standard format (Up to 78 characters of the supplied buffer argument could be filled.)<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.OBJINITMODULE"></A><P></P><P><CODE>void <BCLASS="FSFUNC">_obj_initModule</B>(void *<VARCLASS="PDPARAM">module</VAR>)</CODE></P><BR> internal module initialization function<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.DEFOBJLOOKUPTYPE"></A><P></P><P><CODE>id <BCLASS="FSFUNC">defobj_lookup_type</B>(const char *<VARCLASS="PDPARAM">name</VAR>)</CODE></P><BR> Lookup a defobj type object by name.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.INITDEFOBJ"></A><P></P><P><CODE>void <BCLASS="FSFUNC">initDefobj</B>(int <VARCLASS="PDPARAM">argc</VAR>, const char **<VARCLASS="PDPARAM">argv</VAR>, const char *<VARCLASS="PDPARAM">appName</VAR>, const char *<VARCLASS="PDPARAM">version</VAR>, const char *<VARCLASS="PDPARAM">bugAddress</VAR>, Class <VARCLASS="PDPARAM">argumentsClass</VAR>, struct argp_option *<VARCLASS="PDPARAM">options</VAR>, int (*<VARCLASS="PDPARAM">optionFunc</VAR>)</CODE></P><BR> initialize defobj with application info, custom Arguments class, and optional (or NULL) extra options w/ processing function.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.NAMETOOBJECT"></A><P></P><P><CODE>id <BCLASS="FSFUNC">nameToObject</B>(const char *<VARCLASS="PDPARAM">name</VAR>)</CODE></P><BR> Get an object from textual pointer description.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.OBJCGETCLASS"></A><P></P><P><CODE>Class <BCLASS="FSFUNC">objc_get_class</B>(const char *<VARCLASS="PDPARAM">name</VAR>)</CODE></P><BR> Declaration to enable use of @class declaration for message receiver without compile error.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.XEXEC"></A><P></P><P><CODE>void <BCLASS="FSFUNC">xexec</B>(id <VARCLASS="PDPARAM">anObject</VAR>, const char *<VARCLASS="PDPARAM">name</VAR>)</CODE></P><BR> Debug function to perform message on an object.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.XFEXEC"></A><P></P><P><CODE>void <BCLASS="FSFUNC">xfexec</B>(id <VARCLASS="PDPARAM">anObject</VAR>, const char *<VARCLASS="PDPARAM">name</VAR>)</CODE></P><BR> Debug function to perform message on each member of a collection.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.XFPRINT"></A><P></P><P><CODE>void <BCLASS="FSFUNC">xfprint</B>(id <VARCLASS="PDPARAM">anObject</VAR>)</CODE></P><BR> Print description for each member of a collection on debug output stream.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.XFPRINTID"></A><P></P><P><CODE>void <BCLASS="FSFUNC">xfprintid</B>(id <VARCLASS="PDPARAM">anObject</VAR>)</CODE></P><BR> Print id for each member of a collection on debug output stream.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.XPRINT"></A><P></P><P><CODE>void <BCLASS="FSFUNC">xprint</B>(id <VARCLASS="PDPARAM">anObject</VAR>)</CODE></P><BR> Print description of object on debug output stream.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.XPRINTID"></A><P></P><P><CODE>void <BCLASS="FSFUNC">xprintid</B>(id <VARCLASS="PDPARAM">anObject</VAR>)</CODE></P><BR> Print only the id string for an object on debug output stream.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.XSETNAME"></A><P></P><P><CODE>void <BCLASS="FSFUNC">xsetname</B>(id <VARCLASS="PDPARAM">anObject</VAR>, const char *<VARCLASS="PDPARAM">name</VAR>)</CODE></P><BR> Set the display name.<P></P></DIV></LI><LI><DIVCLASS="FUNCSYNOPSIS"><ANAME="SWARM.DEFOBJ.GENERIC.FUNCTION.ZSTRDUP"></A><P></P><P><CODE>char *<BCLASS="FSFUNC">zstrdup</B>(id &lt;Zone&gt; <VARCLASS="PDPARAM">aZone</VAR>, const char *<VARCLASS="PDPARAM">str</VAR>)</CODE></P><BR><P></P></DIV></LI></UL></DIV><DIVCLASS="REFSECT1"><ANAME="AEN5296"></A><H2>Typedefs</H2><P></P><UL><LI><P>JOBJECT<PRE>void *</PRE></P></LI><LI><P>call_t<PRE>enum callTypes { ccall, objccall, javacall, javastaticcall}</PRE></P></LI><LI><P>fcall_type_t<PRE>enum {fcall_type_void = 0,              fcall_type_boolean,              fcall_type_uchar, fcall_type_schar,              fcall_type_ushort, fcall_type_sshort, fcall_type_uint,              fcall_type_sint, fcall_type_ulong, fcall_type_slong,              fcall_type_slonglong, fcall_type_ulonglong,              fcall_type_float, fcall_type_double,               fcall_type_long_double,              fcall_type_object, fcall_type_class,              fcall_type_string, fcall_type_selector,               fcall_type_jobject, fcall_type_jstring,              }</PRE></P></LI><LI><P>types_t<PRE>union {  id object;  SEL selector;  Class class;  const char *string;  BOOL boolean;  char schar;  unsigned char uchar;  short sshort;  unsigned short ushort;  int sint;  unsigned int uint;  long slong;  unsigned long ulong;  long long slonglong;  unsigned long long ulonglong;  float _float;  double _double;  double _long_double;}</PRE></P></LI></UL></DIV><DIVCLASS="REFSECT1"><ANAME="AEN5311"></A><H2>Globals</H2><P></P><DIVCLASS="VARIABLELIST"><DL><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.ARGUMENTS">id arguments </A></DT><DD><P> The singleton Arguments object.</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.HDF5ARCHIVER">id &lt;HDF5Archiver&gt; hdf5Archiver </A></DT><DD><P> The singleton HDF5 system Archiver object.</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.LISPARCHIVER">id &lt;LispArchiver&gt; lispArchiver </A></DT><DD><P> The singleton Lisp system Archiver object.</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.HDF5APPARCHIVER">id &lt;HDF5Archiver&gt; hdf5AppArchiver </A></DT><DD><P> The singleton HDF5 application Archiver object.</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.LISPAPPARCHIVER">id &lt;LispArchiver&gt; lispAppArchiver </A></DT><DD><P> The singleton Lisp application Archiver object.</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.TBYTEARRAY">id &lt;Symbol&gt; t_ByteArray </A></DT><DD><P> Predefined type descriptors for allocated blocks.</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.TLEAFOBJECT">id &lt;Symbol&gt; t_LeafObject </A></DT><DD><P> Predefined type descriptors for allocated blocks.</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.TPOPULATIONOBJECT">id &lt;Symbol&gt; t_PopulationObject </A></DT><DD><P> Predefined type descriptors for allocated blocks.</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.OBJGLOBALZONE">id _obj_globalZone </A></DT><DD><P> internal variable for globalZone macro</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.OBJSCRATCHZONE">id _obj_scratchZone </A></DT><DD><P> internal variable for scratchZone macro</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.OBJDEBUG">BOOL _obj_debug </A></DT><DD><P> if true then perform all debug error checking</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.OBJXERROR">FILE * _obj_xerror </A></DT><DD><P> output file for error messages</P></DD><DT><ANAME="SWARM.DEFOBJ.GENERIC.GLOBAL.OBJXDEBUG">FILE * _obj_xdebug </A></DT><DD><P> output file for debugging messages   </P></DD></DL></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLEWIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="swarm.defobj.zone.protocol.html">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="set.html">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="swarm.collections.sgml.reference.html">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">Zone</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="swarm.defobj.sgml.reference.html">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">Collections Library</TD></TR></TABLE></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -