Disclosure of Invention
Aiming at the defects in the prior art, the invention aims to provide a method and a system for configuration anti-flushing between configuration blocks.
In order to achieve the above purposes, the technical scheme adopted by the invention is as follows:
a method of configuration back-flushing between configuration blocks, the method comprising the steps of:
establishing a plurality of corresponding dependency table entries and dependent table entries for each configuration block in advance, wherein each dependency table entry comprises a plurality of dependency parameters for representing the relationship between the configuration block and the dependency state, and each dependent table entry comprises a plurality of dependent parameters for representing the relationship between the configuration block and the dependent state;
receiving the updated configuration information of the target configuration block, and updating the depended table entry of the target configuration block so as to update the depended configuration block;
updating the dependent table entry of the target configuration block according to the updated configuration information, thereby updating the dependent configuration block;
the method for updating the dependency table entry of the target configuration block comprises the following steps:
a1, judging whether the updated dependency configuration block needs to register the dependency parameter, if so, registering, marking the registered dependency relationship of the dependency parameter, and entering step A2, otherwise, ending the step and entering step A3;
a2, marking the depended parameters related to the target configuration block in the dependent configuration block, thereby indicating that the depended relationship of the depended parameters is registered;
a3, when the dependent relationship of the dependent parameter of the dependent configuration block is registered, marking the dependent table entry of the target configuration block, thereby indicating that the corresponding dependent relationship is established;
in the dependent table entry of the update target configuration block, the method includes the following steps:
b1, checking whether any field in concerned fields in the dependent parameters related to the target configuration block in the dependent configuration block needing to be updated is changed, if the field which is changed exists, entering the step B2, otherwise, ending the step, and entering the step B3;
b2, if all fields in the concerned fields are changed, marking the established dependent relationship in the dependent parameters related to the dependent configuration blocks needing to be updated in the target configuration block;
b3, identifying whether the dependent parameters related to the dependent configuration blocks needing to be updated in the target configuration blocks mark that the dependent relationships are registered, if so, invoking to perform anti-brushing on the dependent configuration blocks needing to be updated, otherwise, terminating the processing.
On the basis of the above technical solution, the dependent parameters include:
first Valid flag bit: whether the dependency relationship is registered or not is represented, and the dependency relationship is initialized to 0;
first State flag: whether the dependency relationship is established or not is represented, and the dependency relationship is initialized to 0;
pre position: the previous configuration block which represents the linked list depending on the same object is initialized to 0;
the Next bit: the next configuration block which represents the linked list depending on the same object is initialized to 0;
RelyById bit: initializing the ID of the dependent object to the ID of the RELY BY of the corresponding module, wherein the RelyById is the basis for searching the dependent configuration block on which the target configuration block depends;
the Check function: and judging whether the dependency relationship needs to be registered.
On the basis of the above technical solution, the depended parameters include:
trigger flag bit: each binary bit of the flag bit of the trigger corresponds to one field of the target configuration block;
second Valid flag: whether the depended relation is registered or not is represented, and the depended relation is initialized to 0;
second State flag: whether the depended relation is established or not is represented, and the depended relation is initialized to 0;
rely By First Id: when a plurality of objects have depended relation, the plurality of objects form a linked list, and the Rely By First Id represents a linked list head and is initialized to 0;
RefreshFunc: a back-flushing function pointer, which is used for being called when the trigger is triggered, and the processing flow of the target configuration block is reset once by using the changed configuration;
change flag bit: each binary bit corresponds to a field of the target configuration block, wherein a binary bit of 1 indicates that the field is changed, and a binary bit of 0 indicates that the field is not changed;
state flag bit: each bit corresponds to a field of the target configuration block, wherein a bit of 1 indicates that the field is valid and a bit of 0 indicates that the field is invalid.
On the basis of the above technical solution, the step a1 includes the following steps:
calling a check function of a dependency configuration block to be updated, judging whether the dependency parameter needs to be registered, if so, registering, and setting a first Valid flag position of the dependency parameter to be 1;
the step A2 comprises the following steps:
processing a second Valid flag bit in a depended parameter related to a target configuration block in the dependent configuration block, and setting the second Valid flag bit to be 1;
the step A3 comprises the following steps:
when the second State flag bit in the depended parameter of the dependency configuration block is 1, setting the first State flag bit in the dependency table entry of the target configuration block to 1, otherwise, setting the first State flag bit to 0.
On the basis of the above technical solution, the step B1 includes the following steps:
looking up trigger flag bits of dependent parameters related to the target configuration block in the dependent configuration block needing to be updated, if the change flag bit of any field in the concerned field is 1, entering step B2, otherwise, ending the step, and entering step B3;
the step B2 includes the following steps:
looking up trigger flag bits of dependent parameters related to the target configuration block in a dependent configuration block needing to be updated, if change flag bits of all fields in a concerned field are 1, setting a second State flag bit of the dependent parameters related to the dependent configuration block needing to be updated in the target configuration block to be 1, otherwise, setting the second State flag bit to be 0;
the step B3 includes the following steps:
and identifying a second Valid flag bit of a depended parameter related to a depended configuration block needing to be updated in the target configuration block, if the flag bit is 1, indicating that the depended parameter is registered, calling RefreshFunc to perform anti-brushing on the depended configuration block needing to be updated, and otherwise, terminating the processing.
The invention also provides a system for configuration reverse-brushing among configuration blocks, which comprises:
the configuration relation pre-storage module is used for establishing a plurality of dependency table entries and depended table entries corresponding to the dependency table entries for each configuration block in advance, each dependency table entry comprises a plurality of dependency parameters for representing the relation and the dependency state between the configuration block and the dependency configuration block, and each depended table entry comprises a plurality of depended parameters for representing the relation and the depended state between the configuration block and the depended configuration block;
a depended configuration updating module, configured to receive updated configuration information of the target configuration block, update a depended entry of the target configuration block, and thereby update the depended configuration block;
the dependent configuration updating module is used for updating the dependent table entry of the target configuration block according to the updated configuration information so as to update the dependent configuration block;
the specific steps of the operation of the dependency configuration update module include:
a1, judging whether the updated dependency configuration block needs to register the dependency parameter, if so, registering, marking the registered dependency relationship of the dependency parameter, and entering step A2, otherwise, ending the step and entering step A3;
a2, marking the depended parameters related to the target configuration block in the dependent configuration block, thereby indicating that the depended relationship of the depended parameters is registered;
a3, when the dependent relationship of the dependent parameter of the dependent configuration block is registered, marking the dependent table entry of the target configuration block, thereby indicating that the corresponding dependent relationship is established;
in the dependent table entry of the update target configuration block, the method includes the following steps:
b1, checking whether any field in concerned fields in the dependent parameters related to the target configuration block in the dependent configuration block needing to be updated is changed, if the field which is changed exists, entering the step B2, otherwise, ending the step, and entering the step B3;
b2, if all fields in the concerned fields are changed, marking the established dependent relationship in the dependent parameters related to the dependent configuration blocks needing to be updated in the target configuration block;
b3, identifying whether the dependent parameters related to the dependent configuration blocks needing to be updated in the target configuration blocks mark that the dependent relationships are registered, if so, invoking to perform anti-brushing on the dependent configuration blocks needing to be updated, otherwise, terminating the processing.
On the basis of the above technical solution, the dependent parameters include:
first Valid flag bit: whether the dependency relationship is registered or not is represented, and the dependency relationship is initialized to 0;
first State flag: whether the dependency relationship is established or not is represented, and the dependency relationship is initialized to 0;
pre position: the previous configuration block which represents the linked list depending on the same object is initialized to 0;
the Next bit: the next configuration block which represents the linked list depending on the same object is initialized to 0;
RelyById bit: initializing the ID of the dependent object to the ID of the RELY BY of the corresponding module, wherein the RelyById is the basis for searching the dependent configuration block on which the target configuration block depends;
the Check function: and judging whether the dependency relationship needs to be registered.
On the basis of the above technical solution, the depended parameters include:
trigger flag bit: each binary bit of the flag bit of the trigger corresponds to one field of the target configuration block;
second Valid flag: whether the depended relation is registered or not is represented, and the depended relation is initialized to 0;
second State flag: whether the depended relation is established or not is represented, and the depended relation is initialized to 0;
rely By First Id: when a plurality of objects have depended relation, the plurality of objects form a linked list, and the Rely By First Id represents a linked list head and is initialized to 0;
RefreshFunc: a back-flushing function pointer, which is used for being called when the trigger is triggered, and the processing flow of the target configuration block is reset once by using the changed configuration;
change flag bit: each binary bit corresponds to a field of the target configuration block, wherein a binary bit of 1 indicates that the field is changed, and a binary bit of 0 indicates that the field is not changed;
state flag bit: each bit corresponds to a field of the target configuration block, wherein a bit of 1 indicates that the field is valid and a bit of 0 indicates that the field is invalid.
On the basis of the above technical solution, in the specific step of the operation of the dependency configuration update module, the step a1 includes the following steps:
calling a check function of a dependency configuration block to be updated, judging whether the dependency parameter needs to be registered, if so, registering, and setting a first Valid flag position of the dependency parameter to be 1;
the step A2 comprises the following steps:
processing a second Valid flag bit in a depended parameter related to a target configuration block in the dependent configuration block, and setting the second Valid flag bit to be 1;
the step A3 comprises the following steps:
when the second State flag bit in the depended parameter of the dependency configuration block is 1, setting the first State flag bit in the dependency table entry of the target configuration block to 1, otherwise, setting the first State flag bit to 0.
On the basis of the above technical solution, the step B1 includes the following steps:
looking up trigger flag bits of dependent parameters related to the target configuration block in the dependent configuration block needing to be updated, if the change flag bit of any field in the concerned field is 1, entering step B2, otherwise, ending the step, and entering step B3;
the step B2 includes the following steps: looking up trigger flag bits of dependent parameters related to the target configuration block in a dependent configuration block needing to be updated, if change flag bits of all fields in a concerned field are 1, setting a second State flag bit of the dependent parameters related to the dependent configuration block needing to be updated in the target configuration block to be 1, otherwise, setting the second State flag bit to be 0;
the step B3 includes the following steps:
and identifying a second Valid flag bit of a depended parameter related to a depended configuration block needing to be updated in the target configuration block, if the flag bit is 1, indicating that the depended parameter is registered, calling RefreshFunc to perform anti-brushing on the depended configuration block needing to be updated, and otherwise, terminating the processing.
Compared with the prior art, the invention has the advantages that:
(1) the method and the device establish the dependency table item capable of representing the dependency relationship of the configuration blocks and the depended table item capable of representing the depended relationship of the configuration blocks in advance, obtain the updating configuration information of the target configuration blocks when the dependency relationship or the depended relationship needs to be updated, update the depended table item or the depended table item, and finally update the depended configuration blocks or the dependent configuration blocks of the target configuration blocks, so that the configuration anti-refreshing is completed among the configuration blocks.
(2) The Valid flag bit of the dependent parameter is used for indicating whether the dependency relationship is registered or not, and can indicate whether the dependency relationship is formed between two configuration blocks or not.
(3) The State flag bit of the dependent parameter is used for indicating whether the dependency relationship is satisfied or not, and can indicate whether the dependency relationship is formed between two configuration blocks and is effective or not.
Detailed Description
Embodiments of the present invention will be described in further detail below with reference to the accompanying drawings.
Example 1
Referring to fig. 1, embodiment 1 of the present invention provides a configuration reverse-brushing method between configuration blocks, including the following steps:
s1, establishing a plurality of corresponding dependency table entries and depended table entries for each configuration block in advance, wherein the dependency table entries comprise a plurality of dependency parameters for representing the relationship and the dependency state between the configuration blocks and the dependency configuration blocks, and the depended table entries comprise a plurality of depended parameters for representing the relationship and the depended state between the configuration blocks and the depended configuration blocks;
s2, receiving the updated configuration information of the target configuration block, and updating the depended table entry of the target configuration block, thereby updating the depended configuration block;
and S3, updating the dependent table entry of the target configuration block according to the updated configuration information, thereby updating the dependent configuration block.
The method comprises the steps of establishing a dependency relationship among configuration blocks in advance, specifically establishing a plurality of corresponding dependency table items and depended table items according to the dependency and depended relationship among the configuration blocks, wherein the dependency table items comprise a plurality of dependency parameters for representing the relationship and the dependency state between the configuration blocks and the dependency configuration blocks thereof, and the depended table items comprise a plurality of depended parameters for representing the relationship and the depended state between the configuration blocks and the depended configuration blocks thereof;
through the dependency parameters, information in the dependency relationship, such as which configuration block the dependent configuration block and the depended configuration block are specific to respectively, can be obtained, and the dependency state of the dependency relationship at the moment can be known;
by the depended parameters, information in the dependency relationship, such as which configuration block the dependent configuration block and the depended configuration block are specific to respectively, can be obtained, and the depended state of the depended relationship at the moment can be known;
when the depended relationship of the target configuration block changes, receiving updated configuration information of the target configuration block, and updating the depended table entry of the target configuration block so as to update the depended configuration block, wherein the target configuration block refers to a configuration block which needs to be updated in a dependent relationship or a depended relationship, namely a configuration block related to configuration back-flushing, and the updated configuration information at the moment contains an update parameter which can represent the depended relationship which needs to be updated;
when the dependency relationship of the target configuration block changes, receiving updated configuration information of the target configuration block, and updating the dependency table entry of the target configuration block, so as to update the dependency configuration block, wherein the target configuration block refers to a configuration block which needs to be updated in the dependency relationship or is updated by the dependency relationship, namely a configuration block related to configuration back-flushing, and the updated configuration information at this time contains an update parameter which can represent the dependency relationship which needs to be updated;
the method and the device establish the dependency table item capable of representing the dependency relationship of the configuration blocks and the depended table item capable of representing the depended relationship of the configuration blocks in advance, obtain the updating configuration information of the target configuration blocks when the dependency relationship or the depended relationship needs to be updated, update the depended table item or the depended table item, and finally update the depended configuration blocks or the dependent configuration blocks of the target configuration blocks, so that the configuration anti-refreshing is completed among the configuration blocks.
Example 2
The embodiment 2 of the invention provides a configuration reverse-brushing method among configuration blocks, which is based on the embodiment 1:
the dependent parameters include:
first Valid flag bit: whether the dependency relationship is registered or not is represented, and the dependency relationship is initialized to 0;
first State flag: whether the dependency relationship is satisfied or not is indicated, and the dependency relationship is initialized to 0;
pre position: representing the previous one of the linked lists depending on the same object, and initializing to 0;
the Next bit: the latter one of the linked lists depending on the same object is initialized to 0;
RelyById bit: initializing the ID of the dependent object to the ID of the RELY BY of the corresponding module;
the Check function: judging whether the dependency relationship needs to be registered;
wherein, Valid flag bit is used to indicate whether the dependency relationship has been registered, and is initialized to 0, that is, whether the dependency relationship is formed between two configuration blocks;
a State flag bit used to indicate whether the dependency is satisfied, i.e., whether the dependency is formed and validated between two configuration blocks;
the Pre bit is used for representing the former one of the linked lists which depends on the same object, namely other configuration blocks which depend on the same configuration block as the target configuration block, and the configuration block is arranged in the sequence before the target configuration block;
the Next bit: the latter one of the linked lists depending on the same object, i.e. the other configuration blocks depending on the same configuration block as the target configuration block, and the configuration block is the one arranged behind the target configuration block in the sequence;
the bit RelyById represents the ID of the dependent object and is initialized to the ID of the RELY BY of the corresponding module, namely the dependent configuration block on which the target configuration block depends can be found BY means of the RelyById;
and the Check function judges whether the dependency relationship needs to be registered, namely, the Check function is used as a prop for checking whether the dependency relationship is registered.
Among them, it should be noted that:
valid flag bit: 0 indicates that the relationship is unregistered; 1 indicates that the relationship is registered;
state flag bit: 0 indicates that the condition is not satisfied, and the concerned fields are not all issued or are not all valid; 1 indicates that the condition is satisfied, and the fields of the relationship are all present and all valid;
pre position: the pointer to the previous node of the linked list, 0, i.e., NULL, indicates absence.
The Next bit: the pointer to the next node in the linked list, 0, NULL, indicates absence.
In this embodiment, the depended parameters include: trigger flag bit: each binary bit of the flag bit of the trigger corresponds to one field of the target configuration block;
second Valid flag: whether the depended relation is registered or not is represented, and the depended relation is initialized to 0;
second State flag: whether the depended relation is satisfied or not is represented, and the depended relation is initialized to 0;
rely By First Id: when a plurality of objects register the relationship, the plurality of objects form a linked list, and the field represents a linked list head and is initialized to 0;
RefreshFunc: a back-flushing function pointer, which is used for being called when the trigger is triggered, and the processing flow of the target configuration block is reset once by using the changed configuration;
change flag bit: each binary bit corresponds to a field of the target configuration block, wherein a binary bit of 1 indicates that the field is changed, and a binary bit of 0 indicates that the field is not changed;
state flag bitmap: each bit corresponds to a field of the target configuration block, wherein a bit of 1 indicates that the field is valid and a bit of 0 indicates that the field is invalid.
It should be noted that the trigger flag bit is a flag bit of the trigger, each binary bit corresponds to a field of the configuration module, where a binary bit of 1 indicates that the dependent or depended configuration block of the configuration block pays attention to the field, and a binary bit of 0 indicates that the dependent or depended configuration block of the configuration block does not pay attention to the field;
initializing according to the content concerned by the dependent configuration block in the dependency relationship, wherein the content is kept unchanged in the running process, and the content can indicate which contents of the configuration block are concerned by other configuration blocks.
Wherein, RefreshFunc is a back-flushing function pointer, when the trigger is triggered, it indicates that the field concerned by the module has changed, and at this time, the function pointer will be called, and the processing flow of the module will use the changed configuration to perform again;
the change bitmap is that each binary digit corresponds to a field of the module, wherein the binary digit with 1 represents that the field is changed, and the binary digit with 0 represents that the field is not changed;
the State bitmap corresponds to a field of the module for each binary bit, wherein a binary bit of 1 indicates that the field is valid, and a binary bit of 0 indicates that the field is invalid.
Example 3
Referring to fig. 2, an embodiment of the present invention provides a method for configuration inverse-flushing between configuration blocks, where on the basis of embodiment 2, the step of updating a dependency entry specifically includes:
a1, calling a check function of a dependency configuration block which needs to be updated, judging whether the dependency parameter needs to be registered, if so, registering, setting the first Valid flag position of the dependency parameter as 1, entering the step A2, otherwise, ending the step, and entering the step A3;
a2, processing a second Valid flag bit in a depended parameter related to a target configuration block in the dependent configuration block, and setting the flag bit to 1;
a3, when the second State flag bit in the depended parameter of the dependency configuration block is 1, setting the first State flag bit in the dependency table entry of the target configuration block to 1, otherwise, setting the first State flag bit to 0.
In step a1, the valid flag indicates whether registration is performed, so that after a determination is made that registration is required, registration is performed and the valid flag is set to 1; and whether the relationship is satisfied, i.e., whether the fields of interest are all present and valid, is indicated by a state flag bit.
In this step, a check function of a dependent configuration block which needs to be updated is called first, whether the dependent parameter needs to be registered is judged, when the dependent parameter needs to be registered, the registration is performed, the first Valid flag bit is an initial value 0, the first Valid flag bit of the dependent parameter is set to be 1 at the moment, the second Valid flag bit of a dependent parameter related to a target configuration block in the dependent configuration block is set to be 1, the dependent parameter is associated with the dependent parameter, and the dependent configuration block is associated with the target configuration block;
and when the registration is not needed, that is, the registration is completed at this time, that is, the first Valid flag bit of the dependent parameter is 1, when the second State flag bit in the dependent parameter of the dependent configuration block is 1, setting the State flag bit in the dependent table entry of the target configuration block to 1, otherwise, setting the State flag bit to 0.
Example 4
Referring to fig. 3, an embodiment of the present invention further provides a method for configuration inverse flushing between configuration blocks, where on the basis of embodiment 2, the step of updating the depended entry specifically includes:
b1, checking trigger flag bits of dependent parameters related to the target configuration block in the dependent configuration block needing to be updated, if the change flag bit of any field in the concerned field is 1, entering the step B2, otherwise, ending the step, and entering the step B3;
b2, checking trigger flag bits of dependent parameters related to the target configuration block in the dependent configuration block needing to be updated, if change flag bits of all fields in the concerned fields are all 1, setting a second State flag bit of the dependent parameters related to the dependent configuration block needing to be updated in the target configuration block to be 1, otherwise, setting the second State flag bit to be 0;
b3, if the second Valid flag bit of the depended parameter related to the depended configuration block needing to be updated in the target configuration block is 1, indicating that the depended parameter is registered, calling RefreshFunc to perform inverse brushing on the depended configuration block needing to be updated, otherwise, ending the processing.
Example 5
The embodiment of the invention provides a configuration reverse-brushing system among configuration blocks, which comprises:
the configuration relation pre-storage module is used for establishing a plurality of dependency table entries and depended table entries corresponding to the dependency table entries for each configuration block in advance, each dependency table entry comprises a plurality of dependency parameters for representing the relation and the dependency state between the configuration block and the dependency configuration block, and each depended table entry comprises a plurality of depended parameters for representing the relation and the depended state between the configuration block and the depended configuration block;
a depended configuration updating module, configured to receive updated configuration information of the target configuration block, update a depended entry of the target configuration block, and thereby update the depended configuration block;
and the dependent configuration updating module is used for updating the dependent table entry of the target configuration block according to the updated configuration information so as to update the dependent configuration block.
Example 6
The embodiment of the invention provides a configuration anti-refresh system among configuration blocks, and on the basis of the embodiment 5, the dependent parameters comprise:
first Valid flag bit: whether the dependency relationship is registered or not is represented, and the dependency relationship is initialized to 0;
first State flag: whether the dependency relationship is satisfied or not is indicated, and the dependency relationship is initialized to 0;
pre position: the previous parameter node representing the linked list depending on the same object is initialized to 0;
the Next bit: initializing the next parameter node depending on the linked list of the same object to be 0;
RelyById bit: initializing the ID of the dependent object to the ID of the RELY BY of the corresponding module;
the Check function: and judging whether the dependency relationship needs to be registered.
In this embodiment, the depended parameters include:
trigger flag bit: each binary bit of the flag bit of the trigger corresponds to one field of the target configuration block;
second Valid flag: whether the depended relation is registered or not is represented, and the depended relation is initialized to 0;
second State flag: whether the depended relation is satisfied or not is represented, and the depended relation is initialized to 0;
rely By First Id: when a plurality of objects register the relationship, the plurality of objects form a linked list, and the field represents a linked list head and is initialized to 0;
RefreshFunc: a back-flushing function pointer, which is used for being called when the trigger is triggered, and the processing flow of the target configuration block is reset once by using the changed configuration;
change flag bit: each binary bit corresponds to a field of the target configuration block, wherein a binary bit of 1 indicates that the field is changed, and a binary bit of 0 indicates that the field is not changed;
state flag bitmap: each bit corresponds to a field of the target configuration block, wherein a bit of 1 indicates that the field is valid and a bit of 0 indicates that the field is invalid.
Example 7
The embodiment of the invention provides a configuration anti-refresh system among configuration blocks, and on the basis of the embodiment 6, the specific steps of the operation of a dependent configuration update module comprise:
a1, calling a check function of a dependency configuration block which needs to be updated, judging whether the dependency parameter needs to be registered, if so, registering, setting the first Valid flag position of the dependency parameter as 1, entering the step A2, otherwise, ending the step, and entering the step A3;
a2, processing a second Valid flag bit in a depended parameter related to a target configuration block in the dependent configuration block, and setting the flag bit to 1;
a3, when the second State flag bit in the depended parameter of the dependency configuration block is 1, setting the first State flag bit in the dependency table entry of the target configuration block to 1, otherwise, setting the first State flag bit to 0.
Example 8
The embodiment of the invention provides a configuration anti-refresh system among configuration blocks, and on the basis of the embodiment 6, the specific steps of the operation of a dependent configuration update module comprise:
b1, checking trigger flag bits of dependent parameters related to the target configuration block in the dependent configuration block needing to be updated, if the change flag bit of any field in the concerned field is 1, entering the step B2, otherwise, ending the step, and entering the step B3;
b2, checking trigger flag bits of dependent parameters related to the target configuration block in the dependent configuration block needing to be updated, if change flag bits of all fields in the concerned fields are all 1, setting a second State flag bit of the dependent parameters related to the dependent configuration block needing to be updated in the target configuration block to be 1, otherwise, setting the second State flag bit to be 0;
b3, if the second Valid flag bit of the depended parameter related to the depended configuration block needing to be updated in the target configuration block is 1, indicating that the depended parameter is registered, calling RefreshFunc to perform inverse brushing on the depended configuration block needing to be updated, otherwise, ending the processing.
The present invention is not limited to the above-mentioned preferred embodiments, and any other products in various forms can be obtained by anyone with the teaching of the present invention, but any changes in the shape or structure thereof, which have the same or similar technical solutions as the present invention, are within the protection scope.