SML Namespace Reference

Class to store incoding information when running a script directly from the toolbar. More...

Namespaces

namespace  CARTOSCRIPT

Classes

union  ARG
 Built-in functions get passed an array of these as their second parameter. More...
class  AUTOCLASS
 A helper class to simplify installing real C++ classes into SML. More...
class  AUTOCLASS_DELETABLE_NOCOPY_T
 A Template class of SML::AUTOCLASS. More...
class  AUTOCLASS_DELETABLE_T
 A Template class of SML::AUTOCLASS. More...
class  AUTOCLASS_NEW_NOCOPY_T
 A Template class of SML::AUTOCLASS. More...
class  AUTOCLASS_NEW_T
 A Template class of SML::AUTOCLASS. More...
class  AUTOCLASS_NOALLOC_T
 A Template class of SML::AUTOCLASS. More...
class  CADOBJECT
struct  CALLBACKSTRUCT
 Structure passed to an SML callback. More...
class  CLASS
 Structure for defining a class in SML. More...
class  CLASSARRAY
 Class used by SML to hold an array of class structures. More...
struct  CLASSCALLBACKLIST
class  CLASSHASH
class  CLASSMEMBER
class  CONTEXT
 Main class used by SML functions. More...
class  CONTEXT_REFCOUNT
class  DEVPRIVATE
 This class provides a way to attach private data to an SML::CONTEXT on a per-context basis. More...
class  DOCCODES
 class SML::DOCCODES More...
class  DOCCODES_ANSI
 Pass to SML::GetFuncDoc() to get plain text with ANSI codes for bold, color, etc. More...
class  DOCCODES_HTML
 Pass to SML::GetFuncDoc() to get HTML text. More...
class  DOCCODES_MISTRING
 An intermediate class that SML::DOCCODES_ANSI and SML::DOCCODES_HTML are based on. More...
class  ENCODINGDATA
struct  FILEINFO
class  FLAG
 Parameter flag value definition. More...
class  FUNC
 Structure for defining an SML function. More...
class  FUNCDEF
 Structure for defining SML functions. More...
class  GUI_BOOK
class  GUI_GADGET
struct  GUI_GADGET_POINT
struct  GUI_GADGET_POLYLINE
struct  GUI_GADGET_RECTANGLE
struct  GUI_GADGET_REGION
struct  GUI_GADGET_SEGMENT
class  GUI_PAGE
class  GUI_PANE
class  GUI_PANE_BASE
class  GUI_PANE_ROOT
class  GUI_PANE_XML
class  HASH
class  NUMHASH
class  OBJECT
class  PARM
class  RASTEROBJECT
class  RESTRICTION
class  SHAPEOBJECT
class  STRING
 SML string constant representation. More...
class  STRINGHASH
class  SYMBOL
 Class for representing variables and functions in SML. More...
class  TINOBJECT
class  USERDATA
 A class which can be used to hang USERDATA off an SML::STRING or SML::SYMBOL. More...
class  VECTOROBJECT

Typedefs

typedef union SML::ARG ARG
typedef int(* FUNCINSTALLER )(CONTEXT *)
typedef enum::SMLFUNCSIG FUNCSIG
typedef PTRINT MACHINEINST
typedef enum::SMLSTYPE STYPE

Enumerations

enum  CONTEXTTYPE {
  CONTEXTTYPE_NONE = 0, CONTEXTTYPE_SML = 0x00000001, CONTEXTTYPE_SelectQuery = 0x00000002, CONTEXTTYPE_StyleQuery = 0x00000004,
  CONTEXTTYPE_GeoFormula = 0x00000008, CONTEXTTYPE_PinMap = 0x00000010, CONTEXTTYPE_DispLayer = 0x00000020, CONTEXTTYPE_ComputedField = 0x00000040,
  CONTEXTTYPE_DisplayControlScript = 0x00000080, CONTEXTTYPE_LayerControlScript = 0x00000100, CONTEXTTYPE_ToolScript = 0x00000200, CONTEXTTYPE_MacroScript = 0x00000400,
  CONTEXTTYPE_TNTsim = 0x00000800, CONTEXTTYPE_ANY = 0xFFFFFFFF
}
enum  USAGE {
  USAGE_Undefined = 0, USAGE_StandAlone, USAGE_ToolScript, USAGE_MacroScript,
  USAGE_DisplayControlScript, USAGE_Select, USAGE_GeoFormula, USAGE_StyleScript,
  USAGE_ComputedField, USAGE_StringExpression, USAGE_Callback, USAGE_ScriptLayer,
  USAGE_NumericExpression, USAGE_LAST
}

Functions

void BackgroundReadSMLDOCS ()
RVCSYSLIBEXPORT void CLASSReadOnly (CONTEXT *, CLASSMEMBER *, void *, ARG *)
void CLASSReadPassThrough (CONTEXT *, CLASSMEMBER *, void *vdata, ARG *ret)
RVCSYSLIBEXPORT void CLASSReadSimple (CONTEXT *, CLASSMEMBER *, void *, ARG *)
RVCSYSLIBEXPORT void CLASSReadULONGFlag (CONTEXT *, CLASSMEMBER *, void *, ARG *)
RVCSYSLIBEXPORT void CLASSWriteSimple (CONTEXT *, CLASSMEMBER *, void *, ARG *)
void CLASSWriteTableNum (CONTEXT *context, CLASSMEMBER *member, void *vdata, ARG *arg)
RVCSYSLIBEXPORT void CLASSWriteULONGFlag (CONTEXT *, CLASSMEMBER *, void *, ARG *)
RVCSYSLIBEXPORT int CreateContextFromDBHandle (RVC::DATABASEHANDLE *dbhandle, SML::CONTEXT *&context, UINT32 flags)
int FUNCSIG_GetNumParms (SMLFUNCSIG sig)
SMLFUNCSIG FUNCSIG_GetParmType (SMLFUNCSIG sig, int n)
SMLFUNCSIG FUNCSIG_GetRetType (SMLFUNCSIG sig)
bool GetClassDesc (CONTEXT *context, const MISTRING &ClassName, MISTRING &mistr)
int GetClassDoc (CONTEXT *context, const CLASS *Class, DOCCODES &codes, bool bInsert=false, USAGE usage=USAGE_Undefined)
int GetExampleDoc (XMLNODE *node, DOCCODES &codes)
int GetExampleDoc (const MISTRING &name, DOCCODES &codes)
bool GetFuncDesc (CONTEXT *context, const FUNC *smlfunc, MISTRING &mistr)
int GetFuncDoc (CONTEXT *context, USAGE Usage, const SYMBOL *sym, DOCCODES &codes, bool bShortForm=false)
int GetFuncExample (CONTEXT *context, const SYMBOL *sym, MISTRING &mistr)
bool GetKeywordDesc (const char *keyword, MISTRING &desc)
int GetKeywordDoc (const char *keyword, DOCCODES &codes)
const char *const * GetKeywordList ()
bool GetOperatorDesc (const char *op, MISTRING &desc)
int GetOperatorDoc (const char *op, DOCCODES &codes)
const char *const * GetOperatorList ()
XMLNODEGetSMLDOCS (bool bInBackground=false)
void InstallGadgetItems (SML::CONTEXT *context)
RVCSYSLIBEXPORT void PrintfSubMISTRING (MISTRING &output, int numargs, SML::ARG *args, UINT8 *type)
RVCSYSLIBEXPORT int SameObject (SML::SYMBOL *, SML::SYMBOL *)
int SearchDocs (CONTEXT *context, const MISTRING &SearchStr, DOCCODES &doc, MISTATUSCONTEXT &StatusContext)
ERRVALUE UpdateDocs (const FILEPATH &docspath, SML::CONTEXT *context)

Detailed Description

Class to store incoding information when running a script directly from the toolbar.


Typedef Documentation

typedef union SML::ARG SML::ARG

Built-in functions get passed an array of these as their second parameter.

This is also what our stack is made up of.

typedef int(* SML::FUNCINSTALLER)(CONTEXT *)
typedef enum ::SMLFUNCSIG SML::FUNCSIG
typedef enum ::SMLSTYPE SML::STYPE

Enumeration Type Documentation

Enumerator:
CONTEXTTYPE_NONE 
CONTEXTTYPE_SML 
CONTEXTTYPE_SelectQuery 
CONTEXTTYPE_StyleQuery 
CONTEXTTYPE_GeoFormula 
CONTEXTTYPE_PinMap 
CONTEXTTYPE_DispLayer 
CONTEXTTYPE_ComputedField 
CONTEXTTYPE_DisplayControlScript 
CONTEXTTYPE_LayerControlScript 
CONTEXTTYPE_ToolScript 
CONTEXTTYPE_MacroScript 
CONTEXTTYPE_TNTsim 
CONTEXTTYPE_ANY 
enum SML::USAGE
Enumerator:
USAGE_Undefined 
USAGE_StandAlone 
USAGE_ToolScript 
USAGE_MacroScript 
USAGE_DisplayControlScript 
USAGE_Select 
USAGE_GeoFormula 
USAGE_StyleScript 

Style By Script.

USAGE_ComputedField 

Database computed field (numeric).

USAGE_StringExpression 

Database string expression field.

USAGE_Callback 

A script fragment used as a callback.

USAGE_ScriptLayer 

A GRE SML script layer.

USAGE_NumericExpression 

Script returning an arbitrary number.

USAGE_LAST 

Highest defined usage value.


Function Documentation

void SML::BackgroundReadSMLDOCS (  ) 
RVCSYSLIBEXPORT void SML::CLASSReadOnly ( CONTEXT *  ,
CLASSMEMBER *  ,
void *  ,
ARG *   
)

! This function is meant to be used as the WriteFunc of an SML::CLASSMEMBER if you don't want anything to write to it.

This is only necessary for STYPE_Class members where the readfunc is returning a pointer. For example: If class FRED had a read-only member "name", to prevent

         fred.name = "george"

you only have to set the member's WriteFunc to NULL. But if fred also has a readonly member EyeColor, to prevent

         fred.EyeColor.Name = "red"

Setting the WriteFunc to NULL isn't enough. The above only reads EyeColor and leaves a pointer to it on the stack. The write in this case is on a class COLOR. But if you set EyeColor's WriteFunc to SML::CLASSReadOnly, the SML parser will prevent the above assignment.

void SML::CLASSReadPassThrough ( CONTEXT *  ,
CLASSMEMBER *  ,
void *  vdata,
ARG *  ret 
)

Function to use as SML::CLASSMEMBER.ReadFunc to simply return pointer to class/struct itself.

This allows a portion or member of a class/struct to be accessed as a member while still retaining the pointer to the class/struct itself.

RVCSYSLIBEXPORT void SML::CLASSReadSimple ( CONTEXT *  ,
CLASSMEMBER *  ,
void *  ,
ARG *   
)

! This function is meant to be used as the ReadFunc of an SML::CLASSMEMBER.

It assumes the following based on the member's type:

  • STYPE_Num: The subtype is one of the SML::CLASSMEMBER::TYPE enums for a numeric data type. The "offset" the offsetof() the member.
  • STYPE_String: If the "smlflags" is set, then the "subtype" is assumed to be one of the integer SML::CLASSMEMBER::TYPEs and the member at "offset" is an integer of the specified type. The flags array is scanned for a flag of the current value and if found, the name of the flag is returned to the SML script as a string. If the member's value is not found in the smlflags array, then the script is given the string "".

    If the "smlflags" is not set, then subtype must be either SML::CLASSMEMBER::TYPE_Unicode, SML::CLASSMEMBER::TYPE_String SML::CLASSMEMBER::TYPE_MISTRING. For TYPE_String and TYPE_Unicode, if the "size" member is set, it is assumed that the string is defined inline in the structure as an arry of that many BYTES (just sizeof()) If the size is not set, then it is assumed that the offset points to a (char*) or (MIUNICODE*). Note that SML::CLASSWriteSimple() will free the pointer before and assign a new copy of the string being written. The "size" member is ignored for TYPE_MISTRING

  • STYPE_Enum: Behaves like STYPE_String with the smlflags field filled in, but instead of getting the list of possible values from the smlflags member, it uses "ResourceName" member to look up a list of possible values.

  • STYPE_Class Returns a copy to the class data. SML must know how to free the class.

  • STYPE_ClassRef Returns a reference to the actual class data (not a copy) If "subtype" is 0, then "offset" is assumed to be an offset to a POINTER to the thing in question. If "subtype" is non-zero, then offset is assumed to be an offset to a structure within the structure.
RVCSYSLIBEXPORT void SML::CLASSReadULONGFlag ( CONTEXT *  ,
CLASSMEMBER *  ,
void *  ,
ARG *   
)

! This function is meant to be used as the ReadFunc of an SML::CLASSMEMBER.

which must be a UINT32 at the "offset" specified in the SML::CLASSMEMBER. This is used when a ULONG has multiple bit-field flags ORd together and you want the SML Class to appear to have boolean members for each flag. The SML::CLASSMEMBER's "subtype" wil be AND'd with the UINT32 for the member, and will return 1 (true) or 0 (false). To reverse the symantics, set the SML::CLASSMEMBER's size to 1.

This function is NOT compatible with C++ enums because you can't depend on them being the same as a UINT32

RVCSYSLIBEXPORT void SML::CLASSWriteSimple ( CONTEXT *  ,
CLASSMEMBER *  ,
void *  ,
ARG *   
)

! This function is meant to be used as the WriteFunc of an SML::CLASSMEMBER.

Uses the same assumptions as SML::CLASSReadSimple(), with the following exceptions:

STYPE_Class. If subtype is non-zero, the offset is assumed to point to a structure within a structure. In this case, the assignment will be done by memcpy(). To know how much to memcpy, there are two options. 1. you can set the "size" for the member to the sizeof(). 2. If the member is of another class defined within SML (ie, the "ClassName" is set), it will use that class's size If the subtype is 0, the offset is an offset to a POINTER which will simply be assigned to whatever pointer it's given.

void SML::CLASSWriteTableNum ( CONTEXT *  context,
CLASSMEMBER *  member,
void *  vdata,
ARG *  arg 
)

Function to use as WriteFunc of SML::CLASSMEMBER to update an INT16 table number field from an SML DBTABLEINFO class (represented by SML::FIELDDATA structure).

The SML::CLASSMEMBER definition have the following settings:

  • type - STYPE_Class
  • ReadFunc - NULL
  • WriteFunc - SML::CLASSWriteTableNum
  • ClassName - SML::CLASSNAME_DBTABLEINFO
  • offset - Offset of INT16 table number in associated struct/class
RVCSYSLIBEXPORT void SML::CLASSWriteULONGFlag ( CONTEXT *  ,
CLASSMEMBER *  ,
void *  ,
ARG *   
)

! This function is meant to be used as the WriteFunc of an SML::CLASSMEMBER.

It's just like SML::CLASSReadULONGFlag() but it writes.

RVCSYSLIBEXPORT int SML::CreateContextFromDBHandle ( RVC::DATABASEHANDLE *  dbhandle,
SML::CONTEXT *&  context,
UINT32  flags 
)
Parameters:
dbhandle Handle of open database
context (SML::CONTEXT*) returned
flags XXX Document flags
int SML::FUNCSIG_GetNumParms ( SMLFUNCSIG  sig  )  [inline]

Inline function to determine the # of parameters an SMLFUNCSIG represents.

SMLFUNCSIG SML::FUNCSIG_GetParmType ( SMLFUNCSIG  sig,
int  n 
) [inline]

Inline function to determine the parameter type a SMLFUNCSIG represents.

Parameters:
n Parameter number (starting at 0)
SMLFUNCSIG SML::FUNCSIG_GetRetType ( SMLFUNCSIG  sig  )  [inline]

Inline function to determine the return type a SMLFUNCSIG represents.

bool SML::GetClassDesc ( CONTEXT *  context,
const MISTRING ClassName,
MISTRING mistr 
)

Get the description for a class.

This function is not a method of SML::CONTEXT because it's not in rvcsys.dll

Parameters:
context Context to work from
mistr String to fill in with description
int SML::GetClassDoc ( CONTEXT *  context,
const CLASS *  Class,
DOCCODES &  codes,
bool  bInsert = false,
USAGE  usage = USAGE_Undefined 
)

Retrieve the documentation for an SML class.

By passing a class derived from SML::DOCCODES, you can generate documentation in plaintext, ANSI, or HTML

This function is not a method of SML::CONTEXT because it's not in rvcsys.dll

Parameters:
context Context to work from
Class Function to document
usage Usage of the current context (to determine class availability)
int SML::GetExampleDoc ( XMLNODE node,
DOCCODES &  codes 
)

Get the documentation for a given SML keyword.

int SML::GetExampleDoc ( const MISTRING name,
DOCCODES &  codes 
)

Get the documentation for a given SML keyword.

bool SML::GetFuncDesc ( CONTEXT *  context,
const FUNC *  smlfunc,
MISTRING mistr 
)

Get the description for a function.

This function is not a method of SML::CONTEXT because it's not in rvcsys.dll

Parameters:
context Context to work from
smlfunc Function to document
mistr String to fill in with description
int SML::GetFuncDoc ( CONTEXT *  context,
USAGE  Usage,
const SYMBOL *  sym,
DOCCODES &  codes,
bool  bShortForm = false 
)

Retrieve the documentation for an SML function.

By passing a class derived from SML::DOCCODES, you can generate documentation in plaintext, ANSI, or HTML

This function is not a method of SML::CONTEXT because it's not in rvcsys.dll

Parameters:
context Context to work from
sym Function to document
bShortForm Omit example if true
int SML::GetFuncExample ( CONTEXT *  context,
const SYMBOL *  sym,
MISTRING mistr 
)

Get the example code for a function.

This function is not a method of SML::CONTEXT because it's not in rvcsys.dll

Parameters:
context Context to work from
sym Function to document
mistr String to fill in with example
bool SML::GetKeywordDesc ( const char *  keyword,
MISTRING desc 
)

Get the documentation for a given SML keyword.

int SML::GetKeywordDoc ( const char *  keyword,
DOCCODES &  codes 
)

Get the documentation for a given SML keyword.

const char* const* SML::GetKeywordList (  ) 

Returns an array of keywords for which we have documentation.

The array is terminated by a NULL pointer

bool SML::GetOperatorDesc ( const char *  op,
MISTRING desc 
)

Get the documentation for a given SML operator.

int SML::GetOperatorDoc ( const char *  op,
DOCCODES &  codes 
)

Get the documentation for a given SML keyword.

const char* const* SML::GetOperatorList (  ) 

Returns an array of operators for which we have documentation.

The array is terminated by a NULL pointer

XMLNODE* SML::GetSMLDOCS ( bool  bInBackground = false  ) 
void SML::InstallGadgetItems ( SML::CONTEXT context  ) 
RVCSYSLIBEXPORT void SML::PrintfSubMISTRING ( MISTRING output,
int  numargs,
SML::ARG args,
UINT8 type 
)

Internal function for implementing SML's printf()-like functions.

Parameters:
output String to print into
numargs number of arguments
args The printf arguments (numargs of them)
type the SML::STYPEs of the args
RVCSYSLIBEXPORT int SML::SameObject ( SML::SYMBOL ,
SML::SYMBOL  
)

Returns true if two symbols refer to the same RVC object.

int SML::SearchDocs ( CONTEXT *  context,
const MISTRING SearchStr,
DOCCODES &  doc,
MISTATUSCONTEXT StatusContext 
)
ERRVALUE SML::UpdateDocs ( const FILEPATH docspath,
SML::CONTEXT context 
)

Generated on Sun Oct 7 21:39:04 2012 for TNTsdk 2012 by  doxygen 1.6.1