Changed all references to 'subnet' to 'user_def_proc' or UDP.
This commit is contained in:
parent
089e10e363
commit
f98dd37e49
134
cwFlow.cpp
134
cwFlow.cpp
@ -30,7 +30,7 @@ namespace cw
|
|||||||
} library_t;
|
} library_t;
|
||||||
|
|
||||||
library_t g_library[] = {
|
library_t g_library[] = {
|
||||||
{ "subnet", &subnet::members },
|
{ "user_def_proc", &user_def_proc::members },
|
||||||
{ "poly", &poly::members },
|
{ "poly", &poly::members },
|
||||||
{ "midi_in", &midi_in::members },
|
{ "midi_in", &midi_in::members },
|
||||||
{ "midi_out", &midi_out::members },
|
{ "midi_out", &midi_out::members },
|
||||||
@ -115,7 +115,7 @@ namespace cw
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc_t _parse_subnet_var_proxy_string( const char* proxyStr, var_desc_t* var_desc )
|
rc_t _parse_udp_var_proxy_string( const char* proxyStr, var_desc_t* var_desc )
|
||||||
{
|
{
|
||||||
rc_t rc = kOkRC;
|
rc_t rc = kOkRC;
|
||||||
|
|
||||||
@ -246,7 +246,7 @@ namespace cw
|
|||||||
// parse the proxy string into it's two parts: <proc>.<var>
|
// parse the proxy string into it's two parts: <proc>.<var>
|
||||||
if( proxy_string != nullptr )
|
if( proxy_string != nullptr )
|
||||||
{
|
{
|
||||||
if((rc = _parse_subnet_var_proxy_string( proxy_string, vd )) != kOkRC )
|
if((rc = _parse_udp_var_proxy_string( proxy_string, vd )) != kOkRC )
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -366,12 +366,12 @@ namespace cw
|
|||||||
|
|
||||||
if( vd->proxyProcLabel != nullptr || vd->proxyVarLabel != nullptr )
|
if( vd->proxyProcLabel != nullptr || vd->proxyVarLabel != nullptr )
|
||||||
{
|
{
|
||||||
cwLogWarning("The 'proxy' field in the variable description '%s' on class description '%s' will be ignored because the variable is not part of a subnet definition.",cwStringNullGuard(vd->label),cwStringNullGuard(cd->label));
|
cwLogWarning("The 'proxy' field in the variable description '%s' on class description '%s' will be ignored because the variable is not part of a UDP definition.",cwStringNullGuard(vd->label),cwStringNullGuard(cd->label));
|
||||||
}
|
}
|
||||||
|
|
||||||
if( cwIsFlag(vd->flags,kSubnetOutVarDescFl ) )
|
if( cwIsFlag(vd->flags,kUdpOutVarDescFl ) )
|
||||||
{
|
{
|
||||||
cwLogWarning("The 'out' flag in the variable description '%s' on class description '%s' will be ignored because the variable is not part of a subnet definition.",cwStringNullGuard(vd->label),cwStringNullGuard(cd->label));
|
cwLogWarning("The 'out' flag in the variable description '%s' on class description '%s' will be ignored because the variable is not part of a UDP definition.",cwStringNullGuard(vd->label),cwStringNullGuard(cd->label));
|
||||||
}
|
}
|
||||||
|
|
||||||
vd->link = cd->varDescL;
|
vd->link = cd->varDescL;
|
||||||
@ -385,7 +385,7 @@ namespace cw
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc_t _find_subnet_proc_class_desc( flow_t* p, const object_t* subnetProcD, const char* procInstLabel, const class_desc_t*& class_desc_ref )
|
rc_t _find_udp_proc_class_desc( flow_t* p, const object_t* udpProcD, const char* procInstLabel, const class_desc_t*& class_desc_ref )
|
||||||
{
|
{
|
||||||
rc_t rc = kOkRC;
|
rc_t rc = kOkRC;
|
||||||
const object_t* procInstD = nullptr;
|
const object_t* procInstD = nullptr;
|
||||||
@ -394,10 +394,10 @@ namespace cw
|
|||||||
|
|
||||||
class_desc_ref = nullptr;
|
class_desc_ref = nullptr;
|
||||||
|
|
||||||
// find the proc inst dict in the subnet
|
// find the proc inst dict in the UDP
|
||||||
if((procInstD = subnetProcD->find_child(procInstLabel)) == nullptr )
|
if((procInstD = udpProcD->find_child(procInstLabel)) == nullptr )
|
||||||
{
|
{
|
||||||
rc = cwLogError(kSyntaxErrorRC,"The proc instance '%s' from the proxy var list could not be foud in the subnet.",cwStringNullGuard(procInstLabel));
|
rc = cwLogError(kSyntaxErrorRC,"The proc instance '%s' from the proxy var list could not be foud in the UDP.",cwStringNullGuard(procInstLabel));
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -421,7 +421,7 @@ namespace cw
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
rc_t _create_subnet_var_desc( flow_t* p, class_desc_t* subnetClassDesc, const object_t* subnetProcD, const object_t* varDescPair, var_desc_t*& vd_ref )
|
rc_t _create_udp_var_desc( flow_t* p, class_desc_t* udpClassDesc, const object_t* udpProcD, const object_t* varDescPair, var_desc_t*& vd_ref )
|
||||||
{
|
{
|
||||||
rc_t rc = kOkRC;
|
rc_t rc = kOkRC;
|
||||||
const class_desc_t* proxy_class_desc = nullptr;
|
const class_desc_t* proxy_class_desc = nullptr;
|
||||||
@ -431,25 +431,25 @@ namespace cw
|
|||||||
vd_ref = nullptr;
|
vd_ref = nullptr;
|
||||||
|
|
||||||
// parse the variable descripiton and create a var_desc_t record
|
// parse the variable descripiton and create a var_desc_t record
|
||||||
if((rc = _parse_class_var_cfg(p, subnetClassDesc, varDescPair, var_desc )) != kOkRC )
|
if((rc = _parse_class_var_cfg(p, udpClassDesc, varDescPair, var_desc )) != kOkRC )
|
||||||
{
|
{
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( var_desc->type != 0 )
|
if( var_desc->type != 0 )
|
||||||
{
|
{
|
||||||
cwLogWarning("The 'type' field int the variable description '%s' on the class description '%s' will be ignored because the variable is proxied.",cwStringNullGuard(subnetClassDesc->label),cwStringNullGuard(var_desc->label));
|
cwLogWarning("The 'type' field int the variable description '%s' on the class description '%s' will be ignored because the variable is proxied.",cwStringNullGuard(udpClassDesc->label),cwStringNullGuard(var_desc->label));
|
||||||
}
|
}
|
||||||
|
|
||||||
// verify that a proxy-proc-label and proxy-var-label were specified in the variable descripiton
|
// verify that a proxy-proc-label and proxy-var-label were specified in the variable descripiton
|
||||||
if( var_desc->proxyProcLabel == nullptr || var_desc->proxyVarLabel == nullptr )
|
if( var_desc->proxyProcLabel == nullptr || var_desc->proxyVarLabel == nullptr )
|
||||||
{
|
{
|
||||||
rc = cwLogError(kSyntaxErrorRC,"The subnet variable description '%s' in the subnet '%s' must have a valid 'proxy' field.",cwStringNullGuard(var_desc->label),cwStringNullGuard(subnetClassDesc->label));
|
rc = cwLogError(kSyntaxErrorRC,"The UDP variable description '%s' in the UDP '%s' must have a valid 'proxy' field.",cwStringNullGuard(var_desc->label),cwStringNullGuard(udpClassDesc->label));
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
// locate the class desc associated with proxy proc
|
// locate the class desc associated with proxy proc
|
||||||
if((rc = _find_subnet_proc_class_desc( p, subnetProcD, var_desc->proxyProcLabel, proxy_class_desc )) != kOkRC )
|
if((rc = _find_udp_proc_class_desc( p, udpProcD, var_desc->proxyProcLabel, proxy_class_desc )) != kOkRC )
|
||||||
{
|
{
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
@ -457,17 +457,17 @@ namespace cw
|
|||||||
// locate the var desc associated with the proxy proc var
|
// locate the var desc associated with the proxy proc var
|
||||||
if((proxy_var_desc = var_desc_find( proxy_class_desc, var_desc->proxyVarLabel)) == nullptr )
|
if((proxy_var_desc = var_desc_find( proxy_class_desc, var_desc->proxyVarLabel)) == nullptr )
|
||||||
{
|
{
|
||||||
rc = cwLogError(kEleNotFoundRC,"The subnet proxied variable desc '%s.%s' could not be found in subnet '%s'.",cwStringNullGuard(var_desc->proxyProcLabel),cwStringNullGuard(var_desc->proxyVarLabel),cwStringNullGuard(subnetClassDesc->label));
|
rc = cwLogError(kEleNotFoundRC,"The UDP proxied variable desc '%s.%s' could not be found in UDP '%s'.",cwStringNullGuard(var_desc->proxyProcLabel),cwStringNullGuard(var_desc->proxyVarLabel),cwStringNullGuard(udpClassDesc->label));
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the subnet var_desc type from the proxied var_desc
|
// get the UDP var_desc type from the proxied var_desc
|
||||||
var_desc->type = proxy_var_desc->type;
|
var_desc->type = proxy_var_desc->type;
|
||||||
|
|
||||||
// augment the subnet var_desc flags from the proxied var_desc
|
// augment the udp var_desc flags from the proxied var_desc
|
||||||
var_desc->flags |= proxy_var_desc->flags;
|
var_desc->flags |= proxy_var_desc->flags;
|
||||||
|
|
||||||
// if no default value was given to the subnet var desc then get it from the proxied var desc
|
// if no default value was given to the UDP var desc then get it from the proxied var desc
|
||||||
if( var_desc->val_cfg == nullptr )
|
if( var_desc->val_cfg == nullptr )
|
||||||
var_desc->val_cfg = proxy_var_desc->val_cfg;
|
var_desc->val_cfg = proxy_var_desc->val_cfg;
|
||||||
|
|
||||||
@ -484,7 +484,7 @@ namespace cw
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc_t _parse_subnet_vars( flow_t* p, class_desc_t* class_desc, const object_t* subnetProcD, const object_t* varD )
|
rc_t _parse_udp_vars( flow_t* p, class_desc_t* class_desc, const object_t* udpProcD, const object_t* varD )
|
||||||
{
|
{
|
||||||
rc_t rc = kOkRC;
|
rc_t rc = kOkRC;
|
||||||
|
|
||||||
@ -498,13 +498,13 @@ namespace cw
|
|||||||
|
|
||||||
varN = varD->child_count();
|
varN = varD->child_count();
|
||||||
|
|
||||||
// Fill the class_Desc.varDescL list from the subnet 'vars' dictioanry
|
// Fill the class_Desc.varDescL list from the UDP 'vars' dictioanry
|
||||||
for(unsigned i=0; i<varN; ++i)
|
for(unsigned i=0; i<varN; ++i)
|
||||||
{
|
{
|
||||||
const object_t* child_pair = varD->child_ele(i);
|
const object_t* child_pair = varD->child_ele(i);
|
||||||
var_desc_t* var_desc = nullptr;
|
var_desc_t* var_desc = nullptr;
|
||||||
|
|
||||||
if((rc = _create_subnet_var_desc( p, class_desc, subnetProcD, child_pair, var_desc )) != kOkRC )
|
if((rc = _create_udp_var_desc( p, class_desc, udpProcD, child_pair, var_desc )) != kOkRC )
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
|
|
||||||
|
|
||||||
@ -519,104 +519,104 @@ namespace cw
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc_t _create_subnet_class_desc( flow_t* p, const object_t* class_obj, class_desc_t* class_desc )
|
rc_t _create_udp_class_desc( flow_t* p, const object_t* class_obj, class_desc_t* class_desc )
|
||||||
{
|
{
|
||||||
rc_t rc = kOkRC;
|
rc_t rc = kOkRC;
|
||||||
const object_t* varD = nullptr;
|
const object_t* varD = nullptr;
|
||||||
const object_t* subnetD = nullptr;
|
const object_t* udpD = nullptr;
|
||||||
const object_t* subnetProcD = nullptr;
|
const object_t* udpProcD = nullptr;
|
||||||
const object_t* subnetPresetD = nullptr;
|
const object_t* udpPresetD = nullptr;
|
||||||
const char* subnetProcDescLabel = nullptr;
|
const char* udpProcDescLabel = nullptr;
|
||||||
|
|
||||||
// Validate the subnet proc desc label and value
|
// Validate the UDP proc desc label and value
|
||||||
if( class_obj==nullptr || !class_obj->is_pair() || class_obj->pair_value()==nullptr || !class_obj->pair_value()->is_dict() || (subnetProcDescLabel = class_obj->pair_label()) == nullptr )
|
if( class_obj==nullptr || !class_obj->is_pair() || class_obj->pair_value()==nullptr || !class_obj->pair_value()->is_dict() || (udpProcDescLabel = class_obj->pair_label()) == nullptr )
|
||||||
{
|
{
|
||||||
rc = cwLogError(kInvalidArgRC,"An invalid subnet description '%s' was encountered.",cwStringNullGuard(subnetProcDescLabel));
|
rc = cwLogError(kInvalidArgRC,"An invalid UDP description '%s' was encountered.",cwStringNullGuard(udpProcDescLabel));
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
// verify that another subnet with the same name does not already exist
|
// verify that another UDP with the same name does not already exist
|
||||||
if( class_desc_find(p,subnetProcDescLabel) != nullptr )
|
if( class_desc_find(p,udpProcDescLabel) != nullptr )
|
||||||
{
|
{
|
||||||
rc = cwLogError(kInvalidStateRC,"A subnet named '%s' already exists.",subnetProcDescLabel);
|
rc = cwLogError(kInvalidStateRC,"A UDP named '%s' already exists.",udpProcDescLabel);
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
class_desc->cfg = class_obj->pair_value();
|
class_desc->cfg = class_obj->pair_value();
|
||||||
class_desc->label = class_obj->pair_label();
|
class_desc->label = class_obj->pair_label();
|
||||||
|
|
||||||
// get the 'subnet' members record
|
// get the 'UDP' members record
|
||||||
if((class_desc->members = _find_library_record("subnet")) == nullptr )
|
if((class_desc->members = _find_library_record("user_def_proc")) == nullptr )
|
||||||
{
|
{
|
||||||
rc = cwLogError(kSyntaxErrorRC,"The 'subnet' class member function record could not be found." );
|
rc = cwLogError(kSyntaxErrorRC,"The 'UDP' class member function record could not be found." );
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the variable description
|
// get the variable description
|
||||||
if((rc = class_desc->cfg->getv_opt("vars", varD,
|
if((rc = class_desc->cfg->getv_opt("vars", varD,
|
||||||
"network", subnetD)) != kOkRC )
|
"network", udpD)) != kOkRC )
|
||||||
{
|
{
|
||||||
rc = cwLogError(rc,"Parse failed while parsing subnet desc:'%s'", cwStringNullGuard(class_desc->label) );
|
rc = cwLogError(rc,"Parse failed while parsing UDP desc:'%s'", cwStringNullGuard(class_desc->label) );
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the subnet proc and preset dictionaries
|
// get the UDP proc and preset dictionaries
|
||||||
if((rc = subnetD->getv("procs", subnetProcD,
|
if((rc = udpD->getv("procs", udpProcD,
|
||||||
"presets", subnetPresetD)) != kOkRC )
|
"presets", udpPresetD)) != kOkRC )
|
||||||
{
|
{
|
||||||
rc = cwLogError(rc,"Parse failed on the 'network' element.");
|
rc = cwLogError(rc,"Parse failed on the 'network' element.");
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
// fill class_desc.varDescL from the subnet vars dictionary
|
// fill class_desc.varDescL from the UDP vars dictionary
|
||||||
if((rc = _parse_subnet_vars( p, class_desc, subnetProcD, varD )) != kOkRC )
|
if((rc = _parse_udp_vars( p, class_desc, udpProcD, varD )) != kOkRC )
|
||||||
{
|
{
|
||||||
rc = cwLogError(rc,"Subnet 'vars' processing failed.");
|
rc = cwLogError(rc,"UDP 'vars' processing failed.");
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
errLabel:
|
errLabel:
|
||||||
if(rc != kOkRC )
|
if(rc != kOkRC )
|
||||||
rc = cwLogError(rc,"'proc' class description creation failed for the subnet '%s'. ",cwStringNullGuard(subnetProcDescLabel));
|
rc = cwLogError(rc,"'proc' class description creation failed for the UDP '%s'. ",cwStringNullGuard(udpProcDescLabel));
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
rc_t _parse_subnet_cfg(flow_t* p, const object_t* subnetCfg)
|
rc_t _parse_udp_cfg(flow_t* p, const object_t* udpCfg)
|
||||||
{
|
{
|
||||||
rc_t rc = kOkRC;
|
rc_t rc = kOkRC;
|
||||||
|
|
||||||
if( !subnetCfg->is_dict() )
|
if( !udpCfg->is_dict() )
|
||||||
return cwLogError(kSyntaxErrorRC,"The subnet class description dictionary does not have dictionary syntax.");
|
return cwLogError(kSyntaxErrorRC,"The UDP class description dictionary does not have dictionary syntax.");
|
||||||
|
|
||||||
unsigned subnetDescN = subnetCfg->child_count();
|
unsigned udpDescN = udpCfg->child_count();
|
||||||
p->subnetDescA = mem::allocZ<class_desc_t>( subnetDescN );
|
p->udpDescA = mem::allocZ<class_desc_t>( udpDescN );
|
||||||
|
|
||||||
// for each subnet description
|
// for each UDP description
|
||||||
for(unsigned i=0; i<subnetDescN; ++i)
|
for(unsigned i=0; i<udpDescN; ++i)
|
||||||
{
|
{
|
||||||
const object_t* subnet_obj = subnetCfg->child_ele(i);
|
const object_t* udp_obj = udpCfg->child_ele(i);
|
||||||
|
|
||||||
if((rc = _create_subnet_class_desc(p, subnet_obj, p->subnetDescA + i )) != kOkRC )
|
if((rc = _create_udp_class_desc(p, udp_obj, p->udpDescA + i )) != kOkRC )
|
||||||
{
|
{
|
||||||
rc = cwLogError(rc,"Subnet class description create failed on the subnet at index:%i.",i);
|
rc = cwLogError(rc,"UDP class description create failed on the UDP at index:%i.",i);
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We have to update the size of the subnet class array
|
// We have to update the size of the UDP class array
|
||||||
// as we go because we may want be able to search p->subnetDescA[]
|
// as we go because we may want be able to search p->udpDescA[]
|
||||||
// aand to do that we must now the current length.
|
// aand to do that we must now the current length.
|
||||||
p->subnetDescN += 1;
|
p->udpDescN += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
assert( subnetDescN == p->subnetDescN );
|
assert( udpDescN == p->udpDescN );
|
||||||
errLabel:
|
errLabel:
|
||||||
|
|
||||||
if( rc != kOkRC )
|
if( rc != kOkRC )
|
||||||
{
|
{
|
||||||
rc = cwLogError(rc,"Subnet processing failed.");
|
rc = cwLogError(rc,"UDP processing failed.");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -646,9 +646,9 @@ namespace cw
|
|||||||
network_destroy(p->net);
|
network_destroy(p->net);
|
||||||
|
|
||||||
_release_class_desc_array(p->classDescA,p->classDescN);
|
_release_class_desc_array(p->classDescA,p->classDescN);
|
||||||
_release_class_desc_array(p->subnetDescA,p->subnetDescN);
|
_release_class_desc_array(p->udpDescA,p->udpDescN);
|
||||||
p->classDescN = 0;
|
p->classDescN = 0;
|
||||||
p->subnetDescN = 0;
|
p->udpDescN = 0;
|
||||||
|
|
||||||
mem::release(p);
|
mem::release(p);
|
||||||
|
|
||||||
@ -676,7 +676,7 @@ void cw::flow::print_external_device( const external_device_t* dev )
|
|||||||
cw::rc_t cw::flow::create( handle_t& hRef,
|
cw::rc_t cw::flow::create( handle_t& hRef,
|
||||||
const object_t* classCfg,
|
const object_t* classCfg,
|
||||||
const object_t* flowCfg,
|
const object_t* flowCfg,
|
||||||
const object_t* subnetCfg,
|
const object_t* udpCfg,
|
||||||
const char* proj_dir )
|
const char* proj_dir )
|
||||||
{
|
{
|
||||||
rc_t rc = kOkRC;
|
rc_t rc = kOkRC;
|
||||||
@ -696,11 +696,11 @@ cw::rc_t cw::flow::create( handle_t& hRef,
|
|||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse the subnet descriptions
|
// parse the UDP descriptions
|
||||||
if( subnetCfg != nullptr )
|
if( udpCfg != nullptr )
|
||||||
if((rc = _parse_subnet_cfg(p,subnetCfg)) != kOkRC )
|
if((rc = _parse_udp_cfg(p,udpCfg)) != kOkRC )
|
||||||
{
|
{
|
||||||
rc = cwLogError(kSyntaxErrorRC,"Error parsing the subnet list.");
|
rc = cwLogError(kSyntaxErrorRC,"Error parsing the UDP list.");
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
8
cwFlow.h
8
cwFlow.h
@ -16,10 +16,10 @@ namespace cw
|
|||||||
// query the network for configuration information which can
|
// query the network for configuration information which can
|
||||||
// be used to setup the extern_device_t array.
|
// be used to setup the extern_device_t array.
|
||||||
rc_t create(handle_t& hRef,
|
rc_t create(handle_t& hRef,
|
||||||
const object_t* classCfg,
|
const object_t* classCfg,
|
||||||
const object_t* networkCfg,
|
const object_t* networkCfg,
|
||||||
const object_t* subnetCfg = nullptr,
|
const object_t* udpCfg = nullptr,
|
||||||
const char* projDir = nullptr);
|
const char* projDir = nullptr);
|
||||||
|
|
||||||
// Instantiate the network and prepare for runtime.
|
// Instantiate the network and prepare for runtime.
|
||||||
rc_t initialize( handle_t handle,
|
rc_t initialize( handle_t handle,
|
||||||
|
@ -1179,7 +1179,7 @@ namespace cw
|
|||||||
|
|
||||||
var->flags |= kProxiedVarFl;
|
var->flags |= kProxiedVarFl;
|
||||||
|
|
||||||
if( cwIsFlag(wrap_var->varDesc->flags,kSubnetOutVarDescFl) )
|
if( cwIsFlag(wrap_var->varDesc->flags,kUdpOutVarDescFl) )
|
||||||
var->flags |= kProxiedOutVarFl;
|
var->flags |= kProxiedOutVarFl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,10 @@ namespace cw
|
|||||||
namespace flow
|
namespace flow
|
||||||
{
|
{
|
||||||
rc_t network_create( flow_t* p,
|
rc_t network_create( flow_t* p,
|
||||||
const object_t* networkCfg,
|
const object_t* subnetCfgA, // subnetCfgA[subNetCfgN] per subnet cfg record
|
||||||
network_t& net, // Network object to be filled with new proc instances
|
network_t& net, // Network object to be filled with new proc instances
|
||||||
variable_t* proxyVarL, //
|
variable_t* proxyVarL, //
|
||||||
unsigned polyCnt = 1 // Count of networks to create
|
unsigned polyCnt = 1 // Count of networks to create
|
||||||
);
|
);
|
||||||
|
|
||||||
rc_t network_destroy( network_t& net );
|
rc_t network_destroy( network_t& net );
|
||||||
|
@ -135,9 +135,9 @@ namespace cw
|
|||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// subnet
|
// user_def_proc
|
||||||
//
|
//
|
||||||
namespace subnet
|
namespace user_def_proc
|
||||||
{
|
{
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@ -152,7 +152,7 @@ namespace cw
|
|||||||
|
|
||||||
if((rc = proc->class_desc->cfg->getv("network",networkCfg)) != kOkRC )
|
if((rc = proc->class_desc->cfg->getv("network",networkCfg)) != kOkRC )
|
||||||
{
|
{
|
||||||
rc = cwLogError(rc,"The subnet 'network' cfg. was not found.");
|
rc = cwLogError(rc,"The UDP 'network' cfg. was not found.");
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ namespace cw
|
|||||||
{
|
{
|
||||||
namespace flow
|
namespace flow
|
||||||
{
|
{
|
||||||
namespace subnet { extern class_members_t members; }
|
namespace user_def_proc { extern class_members_t members; }
|
||||||
namespace poly { extern class_members_t members; }
|
namespace poly { extern class_members_t members; }
|
||||||
namespace midi_in { extern class_members_t members; }
|
namespace midi_in { extern class_members_t members; }
|
||||||
namespace midi_out { extern class_members_t members; }
|
namespace midi_out { extern class_members_t members; }
|
||||||
|
@ -29,7 +29,7 @@ namespace cw
|
|||||||
{ kNoSrcVarDescFl, "no_src" },
|
{ kNoSrcVarDescFl, "no_src" },
|
||||||
{ kInitVarDescFl, "init" },
|
{ kInitVarDescFl, "init" },
|
||||||
{ kMultVarDescFl, "mult" },
|
{ kMultVarDescFl, "mult" },
|
||||||
{ kSubnetOutVarDescFl, "out" },
|
{ kUdpOutVarDescFl, "out" },
|
||||||
{ kInvalidVarDescFl, "<invalid>" }
|
{ kInvalidVarDescFl, "<invalid>" }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1533,9 +1533,9 @@ cw::flow::class_desc_t* cw::flow::class_desc_find( flow_t* p, const char* label
|
|||||||
if( textIsEqual(p->classDescA[i].label,label))
|
if( textIsEqual(p->classDescA[i].label,label))
|
||||||
return p->classDescA + i;
|
return p->classDescA + i;
|
||||||
|
|
||||||
for(unsigned i=0; i<p->subnetDescN; ++i)
|
for(unsigned i=0; i<p->udpDescN; ++i)
|
||||||
if( textIsEqual(p->subnetDescA[i].label,label))
|
if( textIsEqual(p->udpDescA[i].label,label))
|
||||||
return p->subnetDescA + i;
|
return p->udpDescA + i;
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@ -1577,8 +1577,8 @@ void cw::flow::class_dict_print( flow_t* p )
|
|||||||
for(unsigned i=0; i<p->classDescN; ++i)
|
for(unsigned i=0; i<p->classDescN; ++i)
|
||||||
_class_desc_print(p->classDescA+i);
|
_class_desc_print(p->classDescA+i);
|
||||||
|
|
||||||
for(unsigned i=0; i<p->subnetDescN; ++i)
|
for(unsigned i=0; i<p->udpDescN; ++i)
|
||||||
_class_desc_print(p->subnetDescA+i);
|
_class_desc_print(p->udpDescA+i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ namespace cw
|
|||||||
kNoSrcVarDescFl = 0x04,
|
kNoSrcVarDescFl = 0x04,
|
||||||
kInitVarDescFl = 0x08,
|
kInitVarDescFl = 0x08,
|
||||||
kMultVarDescFl = 0x10,
|
kMultVarDescFl = 0x10,
|
||||||
kSubnetOutVarDescFl = 0x20
|
kUdpOutVarDescFl = 0x20
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct class_members_str
|
typedef struct class_members_str
|
||||||
@ -374,8 +374,8 @@ namespace cw
|
|||||||
class_desc_t* classDescA; //
|
class_desc_t* classDescA; //
|
||||||
unsigned classDescN; //
|
unsigned classDescN; //
|
||||||
|
|
||||||
class_desc_t* subnetDescA; //
|
class_desc_t* udpDescA; //
|
||||||
unsigned subnetDescN; //
|
unsigned udpDescN; //
|
||||||
|
|
||||||
external_device_t* deviceA; // deviceA[ deviceN ] external device description array
|
external_device_t* deviceA; // deviceA[ deviceN ] external device description array
|
||||||
unsigned deviceN; //
|
unsigned deviceN; //
|
||||||
|
@ -63,7 +63,7 @@ namespace cw
|
|||||||
{
|
{
|
||||||
const char* base_dir;
|
const char* base_dir;
|
||||||
object_t* proc_class_dict_cfg;
|
object_t* proc_class_dict_cfg;
|
||||||
object_t* subnet_dict_cfg;
|
object_t* udp_dict_cfg;
|
||||||
|
|
||||||
io::handle_t ioH;
|
io::handle_t ioH;
|
||||||
|
|
||||||
@ -137,8 +137,8 @@ namespace cw
|
|||||||
if( p->proc_class_dict_cfg != nullptr )
|
if( p->proc_class_dict_cfg != nullptr )
|
||||||
p->proc_class_dict_cfg->free();
|
p->proc_class_dict_cfg->free();
|
||||||
|
|
||||||
if( p->subnet_dict_cfg != nullptr )
|
if( p->udp_dict_cfg != nullptr )
|
||||||
p->subnet_dict_cfg->free();
|
p->udp_dict_cfg->free();
|
||||||
|
|
||||||
_program_unload(p);
|
_program_unload(p);
|
||||||
p->pgmN = 0;
|
p->pgmN = 0;
|
||||||
@ -165,14 +165,14 @@ namespace cw
|
|||||||
{
|
{
|
||||||
rc_t rc = kOkRC;
|
rc_t rc = kOkRC;
|
||||||
const char* proc_cfg_fname = nullptr;
|
const char* proc_cfg_fname = nullptr;
|
||||||
const char* subnet_cfg_fname = nullptr;
|
const char* udp_cfg_fname = nullptr;
|
||||||
const char* io_cfg_fname = nullptr;
|
const char* io_cfg_fname = nullptr;
|
||||||
const object_t* pgmL = nullptr;
|
const object_t* pgmL = nullptr;
|
||||||
|
|
||||||
// parse the cfg parameters
|
// parse the cfg parameters
|
||||||
if((rc = cfg->readv("base_dir", kReqFl, p->base_dir,
|
if((rc = cfg->readv("base_dir", kReqFl, p->base_dir,
|
||||||
"proc_dict", kReqFl, proc_cfg_fname,
|
"proc_dict", kReqFl, proc_cfg_fname,
|
||||||
"subnet_dict", kReqFl, subnet_cfg_fname,
|
"udp_dict", kReqFl, udp_cfg_fname,
|
||||||
"io_dict", kOptFl, io_cfg_fname,
|
"io_dict", kOptFl, io_cfg_fname,
|
||||||
"programs", kDictTId, pgmL)) != kOkRC )
|
"programs", kDictTId, pgmL)) != kOkRC )
|
||||||
{
|
{
|
||||||
@ -187,10 +187,10 @@ namespace cw
|
|||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse the subnet dict file
|
// parse the udp dict file
|
||||||
if((rc = objectFromFile(subnet_cfg_fname,p->subnet_dict_cfg)) != kOkRC )
|
if((rc = objectFromFile(udp_cfg_fname,p->udp_dict_cfg)) != kOkRC )
|
||||||
{
|
{
|
||||||
rc = cwLogError(rc,"The flow subnet dictionary could not be read from '%s'.",cwStringNullGuard(subnet_cfg_fname));
|
rc = cwLogError(rc,"The flow user-defined-proc dictionary could not be read from '%s'.",cwStringNullGuard(udp_cfg_fname));
|
||||||
goto errLabel;
|
goto errLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -627,7 +627,7 @@ cw::rc_t cw::io_flow_ctl::program_load( handle_t h, unsigned pgm_idx )
|
|||||||
if((rc = create( p->flowH,
|
if((rc = create( p->flowH,
|
||||||
p->proc_class_dict_cfg,
|
p->proc_class_dict_cfg,
|
||||||
p->pgmA[ pgm_idx ].cfg,
|
p->pgmA[ pgm_idx ].cfg,
|
||||||
p->subnet_dict_cfg,
|
p->udp_dict_cfg,
|
||||||
p->proj_dir )) != kOkRC )
|
p->proj_dir )) != kOkRC )
|
||||||
{
|
{
|
||||||
rc = cwLogError(rc,"Network configuration failed.");
|
rc = cwLogError(rc,"Network configuration failed.");
|
||||||
|
Loading…
Reference in New Issue
Block a user