app/cmDspPgmJsonToDot.h/c : Initial partial implementation.
This commit is contained in:
parent
47db49bb43
commit
611eda87de
110
app/cmDspPgmJsonToDot.c
Normal file
110
app/cmDspPgmJsonToDot.c
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
|
||||||
|
typedef struct cmDotPort_str
|
||||||
|
{
|
||||||
|
cmChar_t* label;
|
||||||
|
struct cmDotPort_str* link;
|
||||||
|
} cmDotPort_t;
|
||||||
|
|
||||||
|
typedef struct cmDotProc_str
|
||||||
|
{
|
||||||
|
cmChar_t* class;
|
||||||
|
cmChar_t* inst;
|
||||||
|
|
||||||
|
cmDotPort_t* list;
|
||||||
|
struct cmDotProc_str* link;
|
||||||
|
} cmDotProc_t;
|
||||||
|
|
||||||
|
typedef struct cmDot_str
|
||||||
|
{
|
||||||
|
cmDotProc_t* list;
|
||||||
|
} cmDot_t;
|
||||||
|
|
||||||
|
|
||||||
|
void _cmDotNewProc( cmDot_t* p, const cmChar_t* class, const cmChar_t* inst )
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void _cmDotNewPort( cmDot_t* p, const cmChar_t* srcStr, const cmChar_t* srcPortStr, const cmChar_t* dstStr, const cmChar_t* dstPortStr )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
cmDotRC_t cmDspPgmJsonToDot( cmCtx_t* ctx, const cmChar_t* inFn, const cmChar_t* outFn )
|
||||||
|
{
|
||||||
|
cmDotRC_t rc = kOkDotRC;
|
||||||
|
cmJsonH_t jsH = cmJsonNullHandle;
|
||||||
|
cmErr_t err;
|
||||||
|
cmJsonNode_t* arr;
|
||||||
|
cmJsonNode_t* rp;
|
||||||
|
const char* errLbl = NULL;
|
||||||
|
|
||||||
|
cmErrSetup(&err,&ctx->rpt,"cmDspPgmJsonToDot");
|
||||||
|
|
||||||
|
if( cmJsonInitializeFromFile( &jsH, inFn, ctx ) != kOkJsRC )
|
||||||
|
return cmErrMsg(&err,kJsonFailDotRC,"The program description file '%s' could not be opened.",cmStringNullGuard(inFn));
|
||||||
|
|
||||||
|
if((arr = cmJsonFindValue(jsH, "inst_array", NULL, kArrayTId )) == NULL )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned n = cmJsonChildCount(arr);
|
||||||
|
|
||||||
|
for(i=0; i<n; ++i)
|
||||||
|
{
|
||||||
|
|
||||||
|
if((rp = cmJsonArrayElement(arr,i)) == NULL )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
cmChar_t* classStr = NULL;
|
||||||
|
cmChar_t* instStr = NULL;
|
||||||
|
if( cmJsonMemberValues(rp, &errLbl,
|
||||||
|
"class", kStringTId, &classStr,
|
||||||
|
"label", kStringTId, &instStr
|
||||||
|
NULL ) != kOkJsRC )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
_cmDotNewProc( p, classStr, instStr );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if((arr = cmJsonFindValue(jsH, "conn_array", NULL, kArrayTId)) == NULL )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned n = cmJsonChildCount(arr);
|
||||||
|
|
||||||
|
for(i=0; i<n; ++i)
|
||||||
|
{
|
||||||
|
if((rp = cmJsonArrayElement(arr,i)) == NULL )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
cmChar_t* srcStr = NULL;
|
||||||
|
cmChar_t* srcPortStr = NULL;
|
||||||
|
cmChar_t* dstStr = NULL;
|
||||||
|
cmChar_t* dstPortStr = NULL;
|
||||||
|
|
||||||
|
if( cmJsonMemberValues(rp, &errLbl,
|
||||||
|
"sid", kStringTId, &srcStr,
|
||||||
|
"svar", kStringTId, &srcPortStr,
|
||||||
|
"did", kStringTId, &dstStr,
|
||||||
|
"dvar", kStringTId, &dstPortStr,
|
||||||
|
NULL) != kOkJsRC )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
_cmDotNewPort( p, srcStr, srcPortStr, dstStr, dstPortStr );
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
errLabel:
|
||||||
|
cmJsonFinalize(&jsH);
|
||||||
|
|
||||||
|
return rc;
|
||||||
|
}
|
22
app/cmDspPgmJsonToDot.h
Normal file
22
app/cmDspPgmJsonToDot.h
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#ifndef cmDspPgmJsonToDot_h
|
||||||
|
#define cmDspPgmJsonToDot_h
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
kOkDotRC,
|
||||||
|
kJsonFailDotRC
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef unsigned cmDotRC_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user