public class KnowledgeBase extends MadaraJNI
| Modifier and Type | Class and Description |
|---|---|
static class |
KnowledgeBase.CompiledExpression
Compiled, optimized KaRL logic.
|
class |
KnowledgeBase.KnowledgeBaseLockedException
KnowledgeBaseLockedException will be thrown if methods are called from inside a MadaraFunction
|
| Constructor and Description |
|---|
KnowledgeBase()
Creates a KnowledgeBase with default settings
|
KnowledgeBase(KnowledgeBase original)
Copy constructor
|
KnowledgeBase(java.lang.String host,
TransportSettings config)
Creates a KnowledgeBase
|
KnowledgeBase(java.lang.String host,
TransportType transport,
java.lang.String domain)
Creates a KnowledgeBase
|
| Modifier and Type | Method and Description |
|---|---|
void |
attachLogger(Logger logger)
Attaches a logger that will manage all output from the KnowledgeBase
|
void |
attachTransport(java.lang.String id,
TransportSettings settings)
Attaches a new transport to the Knowledge Base
|
void |
clear()
Clears the knowledge base.
|
void |
clearModifieds()
Clears all modified variables that were going to be sent with next call
to sendModifieds (also a part of eval, set, wait and similar functions)
|
void |
closeTransports()
Closes any transports attached to the Knowledge Base
|
KnowledgeBase.CompiledExpression |
compile(java.lang.String expression)
Compiles a KaRL expression into an expression tree.
|
java.lang.String |
debugModifieds()
Retrieves a stringified list of all modified variables that are ready
to send over transport on next send_modifieds call
|
void |
defineFunction(java.lang.String name,
MadaraFunction function)
Currently unsupported
Defines a function. |
void |
defineFunction(java.lang.String name,
java.lang.String expression)
Defines a MADARA KaRL function.
|
KnowledgeRecord |
evaluate(KnowledgeBase.CompiledExpression expression)
Evaluates an expression.
|
KnowledgeRecord |
evaluate(KnowledgeBase.CompiledExpression expression,
EvalSettings evalSettings)
Evaluates an expression.
|
KnowledgeRecord |
evaluate(java.lang.String expression)
Evaluates an expression.
|
KnowledgeRecord |
evaluate(java.lang.String expression,
EvalSettings evalSettings)
Evaluates an expression.
|
void |
evaluateNoReturn(KnowledgeBase.CompiledExpression expression)
Evaluates an expression.
|
void |
evaluateNoReturn(KnowledgeBase.CompiledExpression expression,
EvalSettings evalSettings)
Evaluates an expression.
|
void |
evaluateNoReturn(java.lang.String expression)
Evaluates an expression.
|
void |
evaluateNoReturn(java.lang.String expression,
EvalSettings evalSettings)
Evaluates an expression.
|
boolean |
exists(java.lang.String name)
Checks to see if record exists
|
protected void |
finalize()
Cleans up underlying C resources
|
void |
free()
Deletes the C++ instantiation.
|
static KnowledgeBase |
fromPointer(long cptr)
Creates a java object instance from a C/C++ pointer
|
static KnowledgeBase |
fromPointer(long cptr,
boolean shouldManage)
Creates a java object instance from a C/C++ pointer
|
KnowledgeRecord |
get(java.lang.String name)
Retrieves a knowledge value.
|
java.lang.String |
getID()
Get KnowledgeBase ID
|
Logger |
getLogger()
Returns the logger that manages all output from the KnowledgeBase
|
long |
loadContext(java.lang.String filename,
boolean useId,
EvalSettings settings)
Loads the knowledge base from a file
|
void |
print()
Prints all knowledge in knowledge base
|
void |
print(java.lang.String statement)
Prints a statement with variable expansion
|
long |
saveAsKarl(java.lang.String filename)
Saves the knowledge base to a file in a human-readable format
that can be read in with evaluate or wait statements.
|
long |
saveCheckpoint(java.lang.String filename,
boolean resetModifieds)
Saves a snapshot of changes to the context since the last saveContext,
saveCheckpoint, or sendModifieds.
|
long |
saveContext(java.lang.String filename)
Saves the knowledge base to a file
|
void |
sendModifieds()
Sends all modifications to global variables since last send modifieds,
eval, wait, or set statement.
|
void |
sendModifieds(EvalSettings settings)
Sends all modifications to global variables since last send modifieds,
eval, wait, or set statement.
|
void |
set(java.lang.String name,
double value)
Sets a knowledge value to a specified value.
|
void |
set(java.lang.String name,
double[] value)
Sets a knowledge value to a specified value.
|
void |
set(java.lang.String name,
double[] value,
EvalSettings settings)
Sets a knowledge value to a specified value.
|
void |
set(java.lang.String name,
double value,
EvalSettings settings)
Sets a knowledge value to a specified value.
|
void |
set(java.lang.String name,
long value)
Sets a knowledge value to a specified value.
|
void |
set(java.lang.String name,
long[] value)
Sets a knowledge variable to a specified long array.
|
void |
set(java.lang.String name,
long[] value,
EvalSettings settings)
Sets a knowledge value to a specified value.
|
void |
set(java.lang.String name,
long value,
EvalSettings settings)
Sets a knowledge value to a specified value.
|
void |
set(java.lang.String name,
java.lang.String value)
Sets a knowledge value to a specified value.
|
void |
set(java.lang.String name,
java.lang.String value,
EvalSettings settings)
Sets a knowledge value to a specified value.
|
void |
setFile(java.lang.String name,
byte[] value)
Sets a knowledge variable to a specified byte array.
|
void |
setFile(java.lang.String name,
byte[] value,
EvalSettings settings)
Sets a knowledge variable to a specified file byte array.
|
void |
setImage(java.lang.String name,
byte[] value)
Sets a knowledge variable to a specified byte array.
|
void |
setImage(java.lang.String name,
byte[] value,
EvalSettings settings)
Sets a knowledge variable to a specified image byte array.
|
static void |
setLogLevel(MadaraLog.MadaraLogLevel logLevel)
Sets the log level to dictate the detail of MADARA logging.
|
KnowledgeList |
toKnowledgeList(java.lang.String subject,
int start,
int end)
Fills a
KnowledgeList with
KnowledgeRecords that begin with
a common subject and have a finite range of integer values. |
KnowledgeMap |
toKnowledgeMap(java.lang.String expression)
Fills a
KnowledgeMap with
KnowledgeRecords that match an expression. |
KnowledgeMap |
toKnowledgeMap(java.lang.String prefix,
java.lang.String suffix)
Fills a
KnowledgeMap with
KnowledgeRecords that match a prefix and
suffix. |
java.lang.String |
toString()
Prints the knowledge base to a string for debugging purposes
|
java.lang.String |
toString(java.lang.String arrayDelimiter,
java.lang.String recordDelimiter,
java.lang.String keyvalDelimiter)
Prints the knowledge base to a string for debugging purposes
|
KnowledgeRecord |
wait(KnowledgeBase.CompiledExpression expression)
Waits for an expression to be non-zero.
|
KnowledgeRecord |
wait(KnowledgeBase.CompiledExpression expression,
WaitSettings settings)
Waits for an expression to be non-zero.
|
KnowledgeRecord |
wait(java.lang.String expression)
Waits for an expression to be non-zero.
|
KnowledgeRecord |
wait(java.lang.String expression,
WaitSettings settings)
Waits for an expression to be non-zero.
|
void |
waitNoReturn(KnowledgeBase.CompiledExpression expression)
Waits for an expression to be non-zero.
|
void |
waitNoReturn(KnowledgeBase.CompiledExpression expression,
WaitSettings settings)
Waits for an expression to be non-zero.
|
void |
waitNoReturn(java.lang.String expression)
Waits for an expression to be non-zero.
|
void |
waitNoReturn(java.lang.String expression,
WaitSettings settings)
Waits for an expression to be non-zero.
|
public KnowledgeBase()
public KnowledgeBase(java.lang.String host,
TransportType transport,
java.lang.String domain)
host - hostname/ip of this machinetransport - to use for knowledge disseminationdomain - knowledge domain we want to joinpublic KnowledgeBase(java.lang.String host,
TransportSettings config)
host - hostname/ip of this machineconfig - transport settings to use for disseminationpublic KnowledgeBase(KnowledgeBase original)
original - knowledge base to copy frompublic static KnowledgeBase fromPointer(long cptr)
cptr - C pointer to the objectpublic static KnowledgeBase fromPointer(long cptr, boolean shouldManage)
cptr - C pointer to the objectshouldManage - if true, manage the pointerpublic java.lang.String getID()
public KnowledgeRecord evaluate(java.lang.String expression)
() KnowledgeRecord.free ())
at some point. If it is to be ignored, consider using (String)expression - KaRL expression to evaluateKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void evaluateNoReturn(java.lang.String expression)
expression - KaRL expression to evaluateKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic KnowledgeRecord evaluate(java.lang.String expression, EvalSettings evalSettings)
() KnowledgeRecord.free ()) at some point. If
it is to be ignored, consider using (String,EvalSettings)expression - KaRL expression to evaluateevalSettings - Settings for evaluating and printingKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void evaluateNoReturn(java.lang.String expression,
EvalSettings evalSettings)
expression - KaRL expression to evaluateevalSettings - evalSettings Settings for evaluating and printingKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic KnowledgeRecord evaluate(KnowledgeBase.CompiledExpression expression)
() KnowledgeRecord.free ()) at some point. If
it is to be ignored, consider using (CompiledExpression)expression - KaRL expression to evaluate (result of (String))KnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void evaluateNoReturn(KnowledgeBase.CompiledExpression expression)
expression - KaRL expression to evaluate (result of (String))KnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic KnowledgeRecord evaluate(KnowledgeBase.CompiledExpression expression, EvalSettings evalSettings)
() KnowledgeRecord.free ()) at some point. If
it is to be ignored, consider using (CompiledExpression,EvalSettings)expression - KaRL expression to evaluate (result of (String))evalSettings - Settings for evaluating and printingKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void evaluateNoReturn(KnowledgeBase.CompiledExpression expression, EvalSettings evalSettings)
expression - KaRL expression to evaluate (result of (String))evalSettings - Settings for evaluating and printingKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic KnowledgeBase.CompiledExpression compile(java.lang.String expression)
expression - expression to compileCompiledExpression: compiled, optimized expression treeKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void defineFunction(java.lang.String name,
MadaraFunction function)
name - name of the functionfunction - Implementation of MadaraFunctionKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void attachLogger(Logger logger)
logger - a logger to use for managing information and debuggingpublic void attachTransport(java.lang.String id,
TransportSettings settings)
id - unique identifier for this agentsettings - settings for the new transportpublic Logger getLogger()
public java.lang.String debugModifieds()
public void closeTransports()
public void defineFunction(java.lang.String name,
java.lang.String expression)
name - name of the functionexpression - KaRL function bodyKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void clear()
KnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic boolean exists(java.lang.String name)
name - name of record to checkpublic KnowledgeRecord get(java.lang.String name)
name - knowledge nameKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void set(java.lang.String name,
long value)
name - knowledge namevalue - value to setKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void set(java.lang.String name,
double value)
name - knowledge namevalue - value to setKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void set(java.lang.String name,
java.lang.String value)
name - knowledge namevalue - value to setKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void set(java.lang.String name,
double[] value)
name - knowledge namevalue - value to setKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void set(java.lang.String name,
long[] value)
name - knowledge namevalue - value to setKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void setFile(java.lang.String name,
byte[] value)
name - knowledge namevalue - value to setKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void setImage(java.lang.String name,
byte[] value)
name - knowledge namevalue - value to setKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void set(java.lang.String name,
long value,
EvalSettings settings)
name - knowledge namevalue - value to setsettings - settings for evaluating the set commandKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void set(java.lang.String name,
double value,
EvalSettings settings)
name - knowledge namevalue - value to setsettings - settings for evaluating the set commandKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void set(java.lang.String name,
java.lang.String value,
EvalSettings settings)
name - knowledge namevalue - value to setsettings - settings for evaluating the set commandKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void set(java.lang.String name,
double[] value,
EvalSettings settings)
name - knowledge namevalue - value to setsettings - settings for evaluating the set commandKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void set(java.lang.String name,
long[] value,
EvalSettings settings)
name - knowledge namevalue - value to setsettings - settings for evaluating the set commandKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void setFile(java.lang.String name,
byte[] value,
EvalSettings settings)
name - knowledge namevalue - value to setsettings - settings for evaluating the set commandKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void setImage(java.lang.String name,
byte[] value,
EvalSettings settings)
name - knowledge namevalue - value to setsettings - settings for evaluating the set commandKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void sendModifieds()
public void clearModifieds()
public void sendModifieds(EvalSettings settings)
settings - settings to use for considering records to sendpublic void print(java.lang.String statement)
statement - The statement to printpublic void print()
public void free()
KnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionprotected void finalize()
throws java.lang.Throwable
finalize in class java.lang.Objectjava.lang.Throwable - necessary for override but unusedpublic KnowledgeRecord wait(java.lang.String expression)
() KnowledgeRecord.free ())
at some point. If it is to be ignored, consider using (String)expression - KaRL expression to evaluateKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic KnowledgeRecord wait(KnowledgeBase.CompiledExpression expression)
() KnowledgeRecord.free ())
at some point. If it is to be ignored, consider using (CompiledExpression)expression - KaRL expression to evaluate (result of (String))KnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic KnowledgeRecord wait(java.lang.String expression, WaitSettings settings)
() KnowledgeRecord.free ())
at some point. If it is to be ignored, consider using (String,WaitSettings)expression - KaRL expression to evaluatesettings - Settings for waitingKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic KnowledgeRecord wait(KnowledgeBase.CompiledExpression expression, WaitSettings settings)
() KnowledgeRecord.free ())
at some point. If it is to be ignored, consider using (CompiledExpression,WaitSettings)expression - KaRL expression to evaluate (result of (String))settings - Settings for waitingKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void waitNoReturn(java.lang.String expression)
expression - KaRL expression to evaluateKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void waitNoReturn(KnowledgeBase.CompiledExpression expression)
expression - KaRL expression to evaluate (result of (String))KnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void waitNoReturn(java.lang.String expression,
WaitSettings settings)
expression - KaRL expression to evaluatesettings - Settings for waitingKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic void waitNoReturn(KnowledgeBase.CompiledExpression expression, WaitSettings settings)
expression - KaRL expression to evaluate (result of (String))settings - Settings for waitingKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic KnowledgeList toKnowledgeList(java.lang.String subject, int start, int end)
KnowledgeList with
KnowledgeRecords that begin with
a common subject and have a finite range of integer values.
KnowledgeList
must be freed using KnowledgeList.free ()
before the object goes out of scope.subject - The common subject of the variable names. For instance,
if we are looking for a range of vars like "var0", "var1",
"var2", then the common subject would be "var".start - An inclusive start indexend - An inclusive end indexKnowledgeList containing the
requested KnowledgeRecordsKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic long saveContext(java.lang.String filename)
filename - the file to save the knowledge base topublic long saveAsKarl(java.lang.String filename)
filename - the file to save the knowledge base topublic long loadContext(java.lang.String filename,
boolean useId,
EvalSettings settings)
filename - the file to load the knowledge base fromuseId - if true, read the unique ID from the file. If false, do not
use the unique ID from the file.settings - the settings for updating values in the context from filepublic long saveCheckpoint(java.lang.String filename,
boolean resetModifieds)
filename - the file to save the knowledge base changes toresetModifieds - if true, clear the modification list (this is a
bad idea if you should be sending modifications over a transport
as well as saving them to a file.public KnowledgeMap toKnowledgeMap(java.lang.String expression)
KnowledgeMap with
KnowledgeRecords that match an expression.
KnowledgeMap
must be freed using KnowledgeMap.free ()
before the object goes out of scope.expression - An expression that matches the variable names that
are of interest. Wildcards may only be at the endKnowledgeMap containing the
requested KnowledgeRecordsKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic KnowledgeMap toKnowledgeMap(java.lang.String prefix, java.lang.String suffix)
KnowledgeMap with
KnowledgeRecords that match a prefix and
suffix.
KnowledgeMap
must be freed using KnowledgeMap.free ()
before the object goes out of scope.prefix - the prefix of the variables (e.g., in "{prefix}*{suffix}")suffix - the suffix of the variables (e.g., in "{prefix}*{suffix}")KnowledgeMap containing the
requested KnowledgeRecordsKnowledgeBase.KnowledgeBaseLockedException - If called from a MadaraFunctionpublic java.lang.String toString()
public java.lang.String toString(java.lang.String arrayDelimiter,
java.lang.String recordDelimiter,
java.lang.String keyvalDelimiter)
arrayDelimiter - delimiter to use between array elementsrecordDelimiter - delimiter to use in between recordskeyvalDelimiter - delimiter to use in between keys and valuespublic static void setLogLevel(MadaraLog.MadaraLogLevel logLevel)
logLevel - The log level to set