diff --git a/pkg/structure/channelx/channelx.go b/pkg/structure/channelx/channelx.go index fb27ae9..63235f8 100644 --- a/pkg/structure/channelx/channelx.go +++ b/pkg/structure/channelx/channelx.go @@ -51,9 +51,16 @@ func (c *ChannelX) Push(value string) structure.UpdateLength { func (c *ChannelX) Pop() (string, structure.UpdateLength) { val := <-c.channel - return val.ToString(), structure.UpdateLength(val.GetSize()) + return val.ToString(), structure.UpdateLength(val.GetSize()) * -1 } func (c *ChannelX) Length() int { return len(c.channel) } + +func (c *ChannelX) CLean() structure.UpdateLength { + c.channel = make(chan *structure.Value, cap(c.channel)) + up := c.sizeByte + c.sizeByte = 0 + return structure.UpdateLength(up) * -1 +} diff --git a/pkg/structure/define.go b/pkg/structure/define.go index b726f97..09dcd98 100644 --- a/pkg/structure/define.go +++ b/pkg/structure/define.go @@ -73,4 +73,5 @@ type ChannelXInterface interface { Push(value string) UpdateLength Pop() (string, UpdateLength) Length() int + Clean() UpdateLength }