📄 clipslibwrap_old.cpp
字号:
{
INITCHK(false)
CLEARMBUF
if(pFact == NULL) {
if(factPtr == NULL) {
return false;
}
else {
GetFactPPForm(m_buf,MAX_FACT_LEN,factPtr);
Data = m_buf;
return true;
}
}
else {
GetFactPPForm(m_buf,MAX_FACT_LEN,pFact);
Data = 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 SetFactDuplication(Value);
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSGetFactDup(void)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS SetFactDuplication();
Returns : return value of GetFactDuplication. -1 on error
****************************************************************************/
bool CCLIPSWrap::CLIPSGetFactDup(void)
{
INITCHK(false)
return BOOLCHK(GetFactDuplication());
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSDribble(CString& 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(CString& FileName, bool Switch)
{
INITCHK(false)
if((Switch) &&
(FileName.IsEmpty())) {
return false;
}
if(Switch) {
SETMBUF((LPCSTR)FileName)
return BOOLCHK(DribbleOn(m_buf));
}
else {
return BOOLCHK(DribbleOff());
}
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSAssert(CString& 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(CString& String)
{
INITCHK(false)
if(String.IsEmpty()) {
return false;
}
SETMBUF((LPCSTR)String)
factPtr = (struct fact *)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 = (struct fact *)Assert(factPtr);
}
else {
return false;
}
}
else {
factPtr = (fact *)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) {
IncrementFactCount(factPtr);
}
else {
return false;
}
}
else {
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) {
DecrementFactCount(factPtr);
}
else {
return false;
}
}
else {
DecrementFactCount(Fact);
}
return true;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSGetFactListChanged(void)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS GetFactListChanged.
Returns : return value of GetFactListChanged()
****************************************************************************/
bool CCLIPSWrap::CLIPSGetFactListChanged(void)
{
INITCHK(false)
return BOOLCHK(GetFactListChanged());
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSSetFactListChanged(int Value)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS SetFactListChanged.
Returns : true on success, false on error
****************************************************************************/
bool CCLIPSWrap::CLIPSSetFactListChanged(bool Value)
{
INITCHK(false)
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 = (struct instance *) GetNextInstance(instancePtr);
break;
case I_SCOPE:
instancePtr = (struct instance *) GetNextInstanceInScope(instancePtr);
break;
case I_CLASS: {
if(Class == NULL) {
instancePtr = (struct instance *) GetNextInstanceInClass(instancePtr, classPtr);
}
else {
instancePtr = (struct instance *) 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 = (struct defclass *) GetInstanceClass(instancePtr);
}
else {
if(CLIPSValidInstance(Instance)) {
classPtr = (struct defclass *) GetInstanceClass(Instance);
}
else {
return false;
}
}
if(classPtr == NULL) {
return false;
}
return true;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSGetInstanceName(CString& Data,void* Instance)
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(CString& Data,void* Instance)
{
char far *temp;
INITCHK(false)
if((Instance == NULL) &&
(instancePtr == NULL)) {
return false;
}
if(Instance == NULL) {
temp = GetInstanceName(instancePtr);
}
else {
temp = GetInstanceName(Instance);
}
if(temp == NULL) {
return false;
}
Data = temp;
return true;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSGetInstanceData(CString& Data,void* Instance)
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(CString& Data,void* Instance)
{
INITCHK(false)
if((Instance == NULL) &&
(instancePtr == NULL)) {
return false;
}
CLEARMBUF
if(Instance == NULL) {
GetInstancePPForm(m_buf,255,instancePtr);
}
else {
GetInstancePPForm(m_buf,255,Instance);
}
Data = m_buf;
return true;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSCreateRawInstance(CString& Name, void *pClass)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS function CreateRawInstance():
Returns : true on success, false on error
****************************************************************************/
bool CCLIPSWrap::CLIPSCreateRawInstance(CString& Data, void *pClass)
{
INITCHK(false)
if(Data.IsEmpty()) {
return false;
}
SETMBUF((LPCSTR)Data)
if(pClass == NULL) {
if(classPtr == NULL) {
return false;
}
else {
instancePtr = (struct instance *) CreateRawInstance(classPtr,m_buf);
}
}
else {
instancePtr = (struct instance *) CreateRawInstance(pClass,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 = ValidInstanceAddress(instancePtr);
}
else {
retVal = ValidInstanceAddress(Instance);
}
if(retVal) {
return true;
}
return false;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSSaveInstances(CString& FileName, bool Visable)
Author : Mark Tomlinson
Desc. : Accessor function to CLIPS SaveInstances(), will save
either LOCAL Instances or VISIBLE based upon Visable
parameter. ClassList is set to NULL. Inherit flag is true.
Returns : number of instances saved, or -1 on error
****************************************************************************/
long int CCLIPSWrap::CLIPSSaveInstances(CString& FileName, bool Visable)
{
long int retval;
INITCHK(-1L)
if(FileName.IsEmpty()) {
return -1;
}
else {
SETMBUF((LPCSTR)FileName)
if(Visable) {
retval = SaveInstances(m_buf,VISIBLE_SAVE,NULL,true);
}
else {
retval = SaveInstances(m_buf,LOCAL_SAVE,NULL,true);
}
}
return retval;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSLoadInstances(CString& FileName)
Author : Mark Tomlinson
Desc. : Accessor function to CLIPS LoadInstances, will attempt to load
a set of Instances into CLIPS
Returns : number of instances loaded, or -1 on error
****************************************************************************/
long int CCLIPSWrap::CLIPSLoadInstances(CString& FileName)
{
long int retval,j,i;
OFSTRUCT of;
INITCHK(-1L)
if(FileName.IsEmpty()) {
return -1;
}
else {
SETMBUF((LPCSTR)FileName)
if(OpenFile(m_buf,&of,OF_EXIST) == HFILE_ERROR)
return BAD_LOAD_NAME;
j = strlen(m_buf);
//insure we convert backslash to forwardslash
for(i = 0;i < j;i++) {
if(m_buf[i] == '\\') {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -