📄 clips_bc.cpp
字号:
if((FileName == NULL) ||
(FileName->length()==0)) {
retval = -2;
}
else {
FileName->copy(m_buf);
retval = (dl_LoadFacts)(m_buf);
}
switch(retval) {
case 0: {
return READ_FAIL;
}
case 1: {
return READ_OK;
}
case -2: {
return BAD_LOAD_NAME;
}
}
return READ_FAIL;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSNextFact(void)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS GetNextFact(); places returned fact
into factPtr
Returns : TRUE if it succeeded, and FALSE on failure - or if
no more facts exist.
****************************************************************************/
BOOL CCLIPSWrap::CLIPSNextFact(void)
{
INITCHK(FALSE)
factPtr=(dl_GetNextFact)(factPtr);
if(factPtr) {
return TRUE;
}
return FALSE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSFactString(String* Data)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS GetFactPPForm(); places factPtr Data
into string parameter.
Returns : TRUE if it succeeded, and FALSE on failure
****************************************************************************/
BOOL CCLIPSWrap::CLIPSFactString(String* Data)
{
INITCHK(FALSE)
if(Data == NULL) {
return FALSE;
}
CLEARMBUF
if(factPtr) { //place fact into string buffer
(dl_GetFactPPForm)(m_buf,MAX_FACT_LEN,factPtr);
Data->assign(m_buf);
return TRUE;
}
return FALSE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSSetFactDup(int Value)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS SetFactDuplication();
Returns : return value of SetFactDuplication, appears to be old
FactDuplication value. -1 if an error.
****************************************************************************/
int CCLIPSWrap::CLIPSSetFactDup(int Value)
{
INITCHK(-1)
return (dl_SetFactDuplication)(Value);
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSGetFactDup(void)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS SetFactDuplication();
Returns : return value of GetFactDuplication. -1 on error
****************************************************************************/
int CCLIPSWrap::CLIPSGetFactDup(void)
{
INITCHK(-1)
return (dl_GetFactDuplication)();
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSDribble(String* FileName, BOOL Switch)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS DribbleOn() and DribbleOff(); if Switch
is TRUE it executes DribbleOn if Switch is FALSE it
executes DribbleOff.
Returns : TRUE on success, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSDribble(String* FileName, BOOL Switch)
{
INITCHK(FALSE)
if((Switch) &&
((FileName == NULL) ||
(FileName->length()==0))) {
return FALSE;
}
if(Switch) {
CLEARMBUF
FileName->copy(m_buf);
return (dl_DribbleOn)(m_buf);
}
else {
return (dl_DribbleOff)();
}
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSAssert(String* String)
Author : Mark Tomlinson
Desc. : first form for CLIPSAssert();
Accessor for CLIPS AssertString function. pointer to the
asserted fact is stored in factPtr.
Returns : TRUE on success, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSAssert(String* String)
{
INITCHK(FALSE)
if((String == NULL) ||
(String->length()==0)) {
return FALSE;
}
CLEARMBUF
String->copy(m_buf);
factPtr = (dl_AssertString)(m_buf);
if(factPtr == NULL) {
return FALSE;
}
return TRUE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSAssert(void* Fact)
Author : Mark Tomlinson
Desc. : second form for CLIPSAssert(); (third form is implied)
Accessor for CLIPS Assert function. pointer to the
asserted fact is stored in factPtr. If the Fact parameter
is NULL then factPtr will be asserted unless it is NULL.
Returns : TRUE on success, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSAssert(void* Fact)
{
INITCHK(FALSE)
if(Fact == NULL) {
if(factPtr != NULL) {
factPtr = (dl_Assert)(factPtr);
}
else {
return FALSE;
}
}
else {
factPtr = (dl_Assert)(Fact);
}
if(factPtr == NULL) {
return FALSE;
}
return TRUE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSIncrementFactCtr(void* Fact)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS IncrementFactCount. if Fact parameter
is NULL then factPtr is assumed to be the fact for which
the count is to be incremented.
Returns : TRUE on success, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSIncrementFactCtr(void* Fact)
{
INITCHK(FALSE)
if(Fact == NULL) {
if(factPtr != NULL) {
(dl_IncrementFactCount)(factPtr);
}
else {
return FALSE;
}
}
else {
(dl_IncrementFactCount)(Fact);
}
return TRUE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSDecrementFactCtr(void* Fact)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS DecrementFactCount. if Fact parameter
is NULL then factPtr is assumed to be the fact for which
the count is to be decremented.
Returns : TRUE on success, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSDecrementFactCtr(void* Fact)
{
INITCHK(FALSE)
if(Fact == NULL) {
if(factPtr != NULL) {
(dl_DecrementFactCount)(factPtr);
}
else {
return FALSE;
}
}
else {
(dl_DecrementFactCount)(Fact);
}
return TRUE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSGetFactListChanged(void)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS GetFactListChanged.
Returns : return value of GetFactListChanged()
****************************************************************************/
int CCLIPSWrap::CLIPSGetFactListChanged(void)
{
INITCHK(FALSE)
return (dl_GetFactListChanged)();
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSSetFactListChanged(int Value)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS SetFactListChanged.
Returns : TRUE on success, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSSetFactListChanged(int Value)
{
INITCHK(FALSE)
(dl_SetFactListChanged)(Value);
return TRUE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSGetNextInstance(int Which, void* Class)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS functions:
GetNextInstance()
GetNextInstanceInScope()
GetNextInstanceInClass() <if Class is NULL classPtr is used>
determined by Which parameter. updates instancePtr.
Returns : TRUE on success, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSGetNextInstance(int Which, void* Class)
{
INITCHK(FALSE)
if((Which == I_CLASS) &&
(Class == NULL) &&
(classPtr == NULL)) {
return FALSE;
}
switch(Which) {
case I_PERIOD:
instancePtr = (dl_GetNextInstance)(instancePtr);
break;
case I_SCOPE:
instancePtr = (dl_GetNextInstanceInScope)(instancePtr);
break;
case I_CLASS: {
if(Class == NULL) {
instancePtr = (dl_GetNextInstanceInClass)(instancePtr, classPtr);
}
else {
instancePtr = (dl_GetNextInstanceInClass)(instancePtr, Class);
}
}
break;
}
if(instancePtr == NULL) {
return FALSE;
}
return TRUE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSGetInstanceClass(void* Instance)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS function GetInstanceClass():
updates classPtr. If Instance is NULL uses instancePtr.
Returns : TRUE on success, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSGetInstanceClass(void* Instance)
{
INITCHK(FALSE)
if((Instance == NULL) &&
(instancePtr == NULL)) {
return FALSE;
}
if(Instance == NULL) {
classPtr = (dl_GetInstanceClass)(instancePtr);
}
else {
classPtr = (dl_GetInstanceClass)(Instance);
}
if(classPtr == NULL) {
return FALSE;
}
return TRUE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSGetInstanceName(void* Instance,String* Data)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS function GetInstanceName():
If Instance is NULL uses instancePtr. Name is returned
in string class parameter Data.
Returns : TRUE on success, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSGetInstanceName(void* Instance, String* Data)
{
char far *temp;
INITCHK(FALSE)
if((Instance == NULL) &&
(instancePtr == NULL)) {
return FALSE;
}
if(Data == NULL) {
return FALSE;
}
if(Instance == NULL) {
temp = (dl_GetInstanceName)(instancePtr);
}
else {
temp = (dl_GetInstanceName)(Instance);
}
if(temp == NULL) {
return FALSE;
}
(*Data) = temp;
return TRUE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSGetInstanceData(void* Instance,String* Data)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS function GetInstancePPForm():
If Instance is NULL uses instancePtr. Data is returned
in string class parameter Data.
Returns : TRUE on success, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSGetInstanceData(void* Instance, String* Data)
{
INITCHK(FALSE)
if((Instance == NULL) &&
(instancePtr == NULL)) {
return FALSE;
}
if(Data == NULL) {
return FALSE;
}
CLEARMBUF
if(Instance == NULL) {
(dl_GetInstancePPForm)(m_buf,255,instancePtr);
}
else {
(dl_GetInstancePPForm)(m_buf,255,Instance);
}
Data->assign(m_buf);
return TRUE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSCreateRawInstance(String* Name)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS function CreateRawInstance():
uses classPtr which must already be set to desired class
Returns : TRUE on success, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSCreateRawInstance(String* Data)
{
INITCHK(FALSE)
if(classPtr == NULL) {
return FALSE;
}
if((Data == NULL) ||
(Data->length()==0)) {
return FALSE;
}
CLEARMBUF
Data->copy(m_buf);
instancePtr = (dl_CreateRawInstance)(classPtr,m_buf);
if(instancePtr == NULL) {
return FALSE;
}
return TRUE;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSValidInstance(void* Instance)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS function ValidInstanceAddress():
uses instancePtr if Instance parameter is NULL.
Returns : TRUE if valid, FALSE on error
****************************************************************************/
BOOL CCLIPSWrap::CLIPSValidInstance(void* Instance)
{
int retVal;
INITCHK(FALSE)
if((Instance == NULL) &&
(instancePtr == NULL)) {
return FALSE;
}
if(Instance == NULL) {
retVal = (dl_ValidInstanceAddress)(instancePtr);
}
else {
retVal = (dl_ValidInstanceAddress)(Instance);
}
if(retVal) {
return TRUE;
}
return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -