Sack Library Documentation
|
Contains methods dealing with registering routines and values in memory. Provisions are available to save the configuration state, but the best that can be offered here would be a translation tool for text strings. The namespace is savable, but most of the content of the registration space are short term pointers. Namespace containing registry namespace.
old notes - very discongruant probably should delete them.
Process name registry
it's a tree of names.
there are paths, and entries
paths are represented as class_name
PCLASSROOT is also a suitable class name
PCLASSROOT is defined as a valid CTEXTSTR.
there is (apparently) a name that is not valid as a path name
that is TREE
guess.
POINTER in these two are equal to (void(*)(void)) but - that's rarely the most useful thing... so
name class is a tree of keys... /<...>
psi/control/## might contain procs Init Destroy Move
RegAlias( WIDE("psi/control/3"), WIDE("psi/control/button") ); psi/control/button and psi/control/3 might reference the same routines
psi/frame Init Destroy Move memlib Alloc Free
network/tcp
I guess name class trees are somewhat shallow at the moment not going beyond 1-3 layers
names may eventually be registered and reference out of body services, even out of box...
the values passed as returntype and parms/args need not be real genuine types, but do need to be consistant between the registrant and the requestor... this provides for full name dressing, return type and paramter type may both cause overridden functions to occur...
|
Name |
Description |
|
CheckClassRoot reads for a path of names, but does not create it if it does not exist. | |
|
Registers a structure as creatable in shared memory by name. So a single name of the structure can be used to retrieve a pointer to one created. | |
|
Registers a structure as creatable in shared memory by name. So a single name of the structure can be used to retrieve a pointer to one created. | |
|
Releases an interface. When interfaces are registered, they register with a OnGetInterface and an OnDropInterface callback so that it may do additional work to cleanup from giving you a copy of the interface. | |
|
Outputs through syslog a tree dump of all names registered. | |
|
Dumps through syslog all names registered from the specified root point. (instead of dumping the whole tree) | |
|
Returns a PCLASSROOT of a specified path. The path may be either a PCLASSROOT or a text string indicating the path. the Ex versions allow passing a base PCLASSROOT path and an additional subpath to get. GetClassRoot will always create the path if it did not exist before, and will always result with a root. | |
|
Returns a PCLASSROOT of a specified path. The path may be either a PCLASSROOT or a text string indicating the path. the Ex versions allow passing a base PCLASSROOT path and an additional subpath to get. GetClassRoot will always create the path if it did not exist before, and will always result with a root. | |
|
Returns a PCLASSROOT of a specified path. The path may be either a PCLASSROOT or a text string indicating the path. the Ex versions allow passing a base PCLASSROOT path and an additional subpath to get. GetClassRoot will always create the path if it did not exist before, and will always result with a root. | |
|
Returns a PCLASSROOT of a specified path. The path may be either a PCLASSROOT or a text string indicating the path. the Ex versions allow passing a base PCLASSROOT path and an additional subpath to get. GetClassRoot will always create the path if it did not exist before, and will always result with a root. | |
|
When using GetFirstRegisteredName and GetNextRegisteredName to browse through names, this function is able to get the current PCLASSROOT of the current node, usually you end up with just the content of that registered name. result with the current node ( useful for pulling registered subvalues like description, or file and line ) | |
|
Get[First/Next]RegisteredName( WIDE("classname"), &data ); these operations are not threadsafe and multiple thread accesses will cause mis-stepping These functions as passed the address of a POINTER. this POINTER is for the use of the browse routines and should is meaningless to he calling application. | |
|
Get[First/Next]RegisteredName( WIDE("classname"), &data ); these operations are not threadsafe and multiple thread accesses will cause mis-stepping These functions as passed the address of a POINTER. this POINTER is for the use of the browse routines and should is meaningless to he calling application. | |
|
Get[First/Next]RegisteredName( WIDE("classname"), &data ); these operations are not threadsafe and multiple thread accesses will cause mis-stepping These functions as passed the address of a POINTER. this POINTER is for the use of the browse routines and should is meaningless to he calling application. | |
|
Returns the pointer to a registered interface. This is typically a structure that contains pointer to functions. Takes a text string to an interface. Interfaces are registered at a known location in the registry tree. | |
|
Steps to the next registered name being browsed. Is passed only the pointer to data. See GetFirstRegisteredName for usage. | |
|
| |
|
| |
|
| |
|
Gets a function that has been registered. | |
|
Gets a function that has been registered. | |
|
Gets a function that has been registered. | |
|
Gets a function that has been registered. | |
|
Gets a function that has been registered. | |
|
Gets a function that has been registered. | |
|
This is like GetRegisteredValue, but takes the address of the type to return into instead of having to cast the final result. if bIntValue, result should be passed as an (&int) | |
|
| |
|
| |
|
| |
|
| |
|
This is function sack::app::registry::LoadTree. | |
|
while doing a scan for registered procedures, allow applications to check for branches PROCREG_PROC( int, NameHasBranches )( POINTER *data ); | |
|
while doing a scan for registered procedures, allow applications to ignore aliases... | |
|
root, return, public, args, address | |
|
attempts to use dynamic linking functions to resolve passed global name if that fails, then a type is registered for this global, and an instance created, so that that instance may be reloaded again, otherwise the data in the main application is used... actually we should deprecate the dynamic loading part, and just register the type. SimpleRegisterAndCreateGlobal Simply registers the type as a global variable type. Allows creation of the global space later. | |
|
Init routine is called, otherwise a 0 filled space is returned. Init routine is passed the pointer to the global and the size of the global block the global data block is zero initialized. | |
|
* | |
|
* | |
|
This is function sack::app::registry::RegisterDataType. | |
|
This is function sack::app::registry::RegisterDataTypeEx. | |
|
define RegisterFunctionExx( r,nc,p,rt,proc,ar ) RegisterFunctionExx( r,nc,p,rt,proc,ar,TARGETNAME,NULL DBG_SRC ) | |
|
define RegisterFunctionExx( r,nc,p,rt,proc,ar ) RegisterFunctionExx( r,nc,p,rt,proc,ar,TARGETNAME,NULL DBG_SRC ) | |
|
This is function sack::app::registry::RegisterInterface. | |
|
This is function sack::app::registry::RegisterIntValue. | |
|
This is function sack::app::registry::RegisterIntValueEx. | |
|
This is function sack::app::registry::RegisterIntValueEx. | |
|
RegisterProcedureExx( | |
|
This is function sack::app::registry::RegisterValue. | |
|
This is function sack::app::registry::RegisterValueEx. | |
|
This is function sack::app::registry::RegisterValueExx. | |
|
unregister a function, should be smart and do full return type and parameters..... but for now this only references name, this indicates that this has not been properly(fully) extended, and should be layered in such a way as to allow this function work in it's minimal form. | |
|
a tree dump will result with dictionary names that may translate automatically. This has been exported as a courtesy for StrDup.
| |
|
no space stripping, saves literal text | |
|
This is function sack::app::registry::SaveTree. | |
|
This is function sack::app::registry::SetInterfaceConfigFile. |
Name |
Description |
This is macro sack::app::registry::___DefineRegistryMethod. | |
This is macro sack::app::registry::___DefineRegistryMethod2. | |
This is macro sack::app::registry::___DefineRegistryMethod2P. | |
This is macro sack::app::registry::___DefineRegistryMethodP. | |
This is macro sack::app::registry::__DefineRegistryMethod. | |
This is macro sack::app::registry::__DefineRegistryMethod2. | |
This is macro sack::app::registry::__DefineRegistryMethod2P. | |
This is macro sack::app::registry::SimpleRegisterMethod. | |
This is macro sack::app::registry::_DefineRegistryMethod. | |
This is macro sack::app::registry::_DefineRegistryMethodP. | |
This is macro sack::app::registry::_DefineRegistrySubMethod. | |
This is macro sack::app::registry::DefineRegistryMethod. | |
This is macro sack::app::registry::DefineRegistryMethodP. | |
This is macro sack::app::registry::DefineRegistrySubMethod. | |
This is macro sack::app::registry::DMETHOD_PTR. | |
This is macro sack::app::registry::GET_PUBLIC_DATA. | |
This is macro sack::app::registry::GetRegisteredInterface. | |
This is macro sack::app::registry::GetRegisteredProcedure. | |
This is macro sack::app::registry::GetRegisteredProcedure2. | |
This is macro sack::app::registry::GetRegisteredProcedureExx. | |
This is macro sack::app::registry::GetRegisteredProcedureNonCPROC. | |
This is macro sack::app::registry::GetRegisteredStaticIntValue. | |
This is macro sack::app::registry::METHOD_ALIAS. | |
This is macro sack::app::registry::METHOD_PTR. | |
This is macro sack::app::registry::paste. | |
This is a macro used to paste two symbols together. | |
This is macro sack::app::registry::PDMETHOD_ALIAS. | |
this macro is used for ___DefineRegistryMethodP. Because this is used with complex names an extra define wrapper of priority_preload must be used to fully resolve paramters. | |
This is macro sack::app::registry::PUBLIC_DATA. | |
This is macro sack::app::registry::PUBLIC_DATA_EX. | |
This is macro sack::app::registry::ReadRegisteredProcedure. | |
This is macro sack::app::registry::RegisterFunction. | |
This is macro sack::app::registry::RegisterFunctionEx. | |
define RegisterFunctionExx( r,nc,p,rt,proc,ar ) RegisterFunctionExx( r,nc,p,rt,proc,ar,TARGETNAME,NULL DBG_SRC ) | |
RegisterProcedure( name_class // additional name , nice_name // nice name , return type not in quotes 'void' , function_name in quotes '"Function"' , args not in quotes '(int,char,float,UserType*)' | |
RegisterProcedureEx( root // root path , name_class // additional name , nice_name // nice name , return type not in quotes 'void' , function_name in quotes '"Function"' , args not in quotes '(int,char,float,UserType*)' | |
This is macro sack::app::registry::ReleaseRegisteredFunction. | |
attempts to use dynamic linking functions to resolve passed global name if that fails, then a type is registered for this global, and an instance created, so that that instance may be reloaded again, otherwise the data in the main application is used... actually we should deprecate the dynamic loading part, and just register the type. SimpleRegisterAndCreateGlobal Simply registers the type as a global variable type. Allows creation of the global space later. | |
Init routine is called, otherwise a 0 filled space is returned. Init routine is passed the pointer to the global and the size of the global block the global data block is zero initialized. | |
This is macro sack::app::registry::SimpleRegisterMethod. |
Name |
Description |
This is type sack::app::registry::OpenCloseNotification. | |
because of name mangling and stronger type casting it becomes difficult to pass a tree_def_tag * as a CTEXTSTR classname as valid as this is. | |
This is type sack::app::registry::PROCEDURE. |
Copyright (c) 2000+. All rights reserved.
|
What do you think about this topic? Send feedback!
|