diff --git a/upnp/statevalue_cmp.go b/upnp/statevalue_cmp.go deleted file mode 100644 index cc2c9c77..00000000 --- a/upnp/statevalue_cmp.go +++ /dev/null @@ -1,13 +0,0 @@ -package upnp - -func (sv StateValue) Cmp(a, b interface{}) (int, error) { - return sv.valueType.Cmp(a, b) -} - -func (sv StateValue) Equal(a, b interface{}) (int, error) { - return sv.valueType.Cmp(a, b) -} - -func (sv StateValue) InRange(val interface{}, interval *ValueRange) (bool, error) { - return sv.valueType.InRange(val, interval) -} diff --git a/upnp/statevalueinstance.go b/upnp/statevariable/statevalueinstance.go similarity index 67% rename from upnp/statevalueinstance.go rename to upnp/statevariable/statevalueinstance.go index 926767bd..deda4f1a 100644 --- a/upnp/statevalueinstance.go +++ b/upnp/statevariable/statevalueinstance.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "sync" @@ -7,8 +7,8 @@ import ( "github.com/beevik/etree" ) -type StateValueInstance struct { - model *StateValue +type StateVarInstance struct { + model *StateVariable value interface{} previousValue interface{} lastChange time.Time @@ -16,21 +16,21 @@ type StateValueInstance struct { mu sync.RWMutex } -func (instance *StateValueInstance) Cast(val interface{}) (interface{}, error) { +func (instance *StateVarInstance) Cast(val interface{}) (interface{}, error) { return instance.model.Cast(val) } -func (instance *StateValueInstance) Model() *StateValue { +func (instance *StateVarInstance) Model() *StateVariable { return instance.model } -func (instance *StateValueInstance) Value() interface{} { +func (instance *StateVarInstance) Value() interface{} { instance.mu.RLock() defer instance.mu.RUnlock() return instance.value } -func (instance *StateValueInstance) SetValue(val interface{}) error { +func (instance *StateVarInstance) SetValue(val interface{}) error { cval, err := instance.Cast(val) if err != nil { @@ -44,14 +44,14 @@ func (instance *StateValueInstance) SetValue(val interface{}) error { return nil } -func (instance *StateValueInstance) Incr() { +func (instance *StateVarInstance) Incr() { instance.mu.Lock() defer instance.mu.Unlock() } // ShouldTriggerEvent vérifie toutes les conditions -func (instance *StateValueInstance) ShouldTriggerEvent() bool { +func (instance *StateVarInstance) ShouldTriggerEvent() bool { for _, condition := range instance.model.eventConditions { if !condition(instance) { return false @@ -60,7 +60,7 @@ func (instance *StateValueInstance) ShouldTriggerEvent() bool { return true } -func (sv *StateValueInstance) GenerateEvent() *etree.Element { +func (sv *StateVarInstance) GenerateEvent() *etree.Element { // Construire le XML d'événement propSet := etree.NewElement("e:propertyset") diff --git a/upnp/statevalue.go b/upnp/statevariable/statevariable.go similarity index 80% rename from upnp/statevalue.go rename to upnp/statevariable/statevariable.go index ca8cb2f7..83b925ad 100644 --- a/upnp/statevalue.go +++ b/upnp/statevariable/statevariable.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "encoding/base64" @@ -17,11 +17,11 @@ import ( type EventType string -type StateConditionFunc func(instance *StateValueInstance) bool +type StateConditionFunc func(instance *StateVarInstance) bool type StringValueParser func(value string) (interface{}, error) type ValueSerializer func(value interface{}) (string, error) -type StateValue struct { +type StateVariable struct { name string // Name of the state value (e.g., "Volume", "Brightness") valueType StateVarType // Type of state value, see the upnp/statevaluetype package for more information on this. step interface{} // Step size for incremental state values (e.g., "10") @@ -40,25 +40,25 @@ type StateValue struct { // when this type is used in an UPnP State Variable. The returned value can be // either 8, 16, 24, 32, or 64, depending on whether t is Byte, Boolean, I2, Ui2, // I4, Ui4 respectively. If none of these types match, it will return -1. -func (sv StateValue) BitSize() int { +func (sv StateVariable) BitSize() int { return sv.valueType.BitSize() } // Name returns the state variable's name (e.g., "Volume", "Brightness"). -func (sv StateValue) Name() string { +func (sv StateVariable) Name() string { return sv.name } // Type returns the UPnP data type of the state variable. -func (state *StateValue) Type() StateVarType { +func (state *StateVariable) Type() StateVarType { return state.valueType } -func (state *StateValue) AddEventCondition(name string, condition StateConditionFunc) { +func (state *StateVariable) AddEventCondition(name string, condition StateConditionFunc) { state.eventConditions[name] = condition } -func (state *StateValue) DeleteEventConditions(name string) error { +func (state *StateVariable) DeleteEventConditions(name string) error { if _, ok := state.eventConditions[name]; !ok { return fmt.Errorf("%s: no such event condition (%s)", state.name, name) } @@ -67,11 +67,11 @@ func (state *StateValue) DeleteEventConditions(name string) error { } // ClearEventConditions réinitialise toutes les conditions -func (state *StateValue) ClearEventConditions() { +func (state *StateVariable) ClearEventConditions() { state.eventConditions = make(map[string]StateConditionFunc) } -func (sv *StateValue) SetMinDelta(minDelta interface{}) error { +func (sv *StateVariable) SetMinDelta(minDelta interface{}) error { if minDelta == nil { return fmt.Errorf("%s: nil is an invalid minimum delta value", sv.name) } @@ -98,7 +98,7 @@ func (sv *StateValue) SetMinDelta(minDelta interface{}) error { return nil } -func (state *StateValue) SetDefault(value interface{}) error { +func (state *StateVariable) SetDefault(value interface{}) error { var err error var valid bool @@ -111,11 +111,11 @@ func (state *StateValue) SetDefault(value interface{}) error { return fmt.Errorf("invalid default value for %v (%v) : %v", state.name, value, err) } -func (state *StateValue) HasDefault() bool { +func (state *StateVariable) HasDefault() bool { return state.defaultValue != nil } -func (state *StateValue) DefaultValue() interface{} { +func (state *StateVariable) DefaultValue() interface{} { if !state.HasDefault() { return state.valueType.DefaultValue() } @@ -125,13 +125,13 @@ func (state *StateValue) DefaultValue() interface{} { // HasRange indicates if a value range constraint is defined. // Returns true if min/max boundaries are set. -func (state *StateValue) HasRange() bool { +func (state *StateVariable) HasRange() bool { return state.valueRange != nil } // Maximum returns the upper bound of the value range. // Returns nil if no range is defined. -func (state *StateValue) Maximum() interface{} { +func (state *StateVariable) Maximum() interface{} { if state.valueRange == nil { return nil } @@ -140,7 +140,7 @@ func (state *StateValue) Maximum() interface{} { // Minimum returns the lower bound of the value range. // Returns nil if no range is defined. -func (state *StateValue) Minimum() interface{} { +func (state *StateVariable) Minimum() interface{} { if state.valueRange == nil { return nil } @@ -162,7 +162,7 @@ func (state *StateValue) Minimum() interface{} { // Example: // // err := volumeState.SetRange(0, 100) // 0-100 range for volume -func (state *StateValue) SetRange(min, max interface{}) error { +func (state *StateVariable) SetRange(min, max interface{}) error { if min == nil || max == nil { return fmt.Errorf("min and max must not be nil") } @@ -186,7 +186,7 @@ func (state *StateValue) SetRange(min, max interface{}) error { // Returns: // // error: If no range exists or value can't be cast -func (state *StateValue) UpdateMinimalValue(value interface{}) error { +func (state *StateVariable) UpdateMinimalValue(value interface{}) error { if state.valueRange == nil { return fmt.Errorf("no range set for value %v", state.name) } @@ -210,7 +210,7 @@ func (state *StateValue) UpdateMinimalValue(value interface{}) error { // Returns: // // error: If no range exists or value can't be cast -func (state *StateValue) UpdateMaximalValue(value interface{}) error { +func (state *StateVariable) UpdateMaximalValue(value interface{}) error { if state.valueRange == nil { return fmt.Errorf("no range set for value %v", state.name) } @@ -234,35 +234,35 @@ func (state *StateValue) UpdateMaximalValue(value interface{}) error { // Returns: // // bool: True if within range or no range defined -func (state *StateValue) IsValueInRange(value interface{}) (bool, error) { +func (state *StateVariable) IsValueInRange(value interface{}) (bool, error) { return state.valueType.InRange(value, state.valueRange) } // IsSendingEvents indicates if state changes trigger UPnP events. -func (state *StateValue) IsSendingEvents() bool { +func (state *StateVariable) IsSendingEvents() bool { return state.sendEvents } // SetSendingEvents enables event notifications for state changes. -func (state *StateValue) SetSendingEvents() { +func (state *StateVariable) SetSendingEvents() { state.sendEvents = true log.Debugf("🐞 Enabling event sending for %s", state.name) } // UnsetSendingEvents disables event notifications for state changes. -func (state *StateValue) UnsetSendingEvents() { +func (state *StateVariable) UnsetSendingEvents() { state.sendEvents = false log.Debugf("🐞 Disabling event sending for %s", state.name) } // HasAllowedValues indicates if an allowed value list is defined. -func (state *StateValue) HasAllowedValues() bool { +func (state *StateVariable) HasAllowedValues() bool { return len(state.allowedValues) > 0 } // AllowedValues returns the list of permitted values. // Returns an empty slice if no values are defined. -func (state *StateValue) AllowedValues() []interface{} { +func (state *StateVariable) AllowedValues() []interface{} { return state.allowedValues } @@ -280,7 +280,7 @@ func (state *StateValue) AllowedValues() []interface{} { // Example: // // err := state.AppendAllowedValue("PLAYING", "PAUSED", "STOPPED") -func (state *StateValue) AppendAllowedValue(value ...interface{}) error { +func (state *StateVariable) AppendAllowedValue(value ...interface{}) error { state.allowedValues = slices.Grow(state.allowedValues, len(value)) for _, v := range value { cv, err := state.valueType.Cast(v) @@ -304,7 +304,7 @@ func (state *StateValue) AppendAllowedValue(value ...interface{}) error { // Returns: // // bool: True if value is permitted or no list defined -func (state *StateValue) IsValueAllowed(value interface{}) (bool, error) { +func (state *StateVariable) IsValueAllowed(value interface{}) (bool, error) { if !state.HasAllowedValues() { return true, nil // No list = any value valid } @@ -331,7 +331,7 @@ func (state *StateValue) IsValueAllowed(value interface{}) (bool, error) { // Returns: // // bool: True if value passes all applicable constraints -func (state *StateValue) IsValidValue(value interface{}) (bool, error) { +func (state *StateVariable) IsValidValue(value interface{}) (bool, error) { cvalue, err := state.valueType.Cast(value) if err != nil { return false, err @@ -349,31 +349,31 @@ func (state *StateValue) IsValidValue(value interface{}) (bool, error) { return inrange && allowed, err } -func (state *StateValue) HasDescription() bool { +func (state *StateVariable) HasDescription() bool { return len(state.description) > 0 } -func (state *StateValue) Description() string { +func (state *StateVariable) Description() string { return state.description } -func (state *StateValue) SetDescription(desc string) { +func (state *StateVariable) SetDescription(desc string) { state.description = strings.TrimSpace(desc) } -func (state *StateValue) IsConstant() bool { +func (state *StateVariable) IsConstant() bool { return !state.modifiable } -func (state *StateValue) SetConstant() { +func (state *StateVariable) SetConstant() { state.modifiable = false } -func (state *StateValue) SetModifiable() { +func (state *StateVariable) SetModifiable() { state.modifiable = true } -func (state *StateValue) SetStep(step interface{}) error { +func (state *StateVariable) SetStep(step interface{}) error { // Validation que le step correspond au type de la variable if _, err := state.valueType.Cast(step); err != nil { return fmt.Errorf("invalid step type: %v", err) @@ -382,20 +382,43 @@ func (state *StateValue) SetStep(step interface{}) error { return nil } -func (state *StateValue) UnsetStep() { +func (state *StateVariable) UnsetStep() { state.step = nil } -func (state *StateValue) HasStep() bool { +func (state *StateVariable) HasStep() bool { return state.step != nil } -func (state *StateValue) Step() interface{} { +func (state *StateVariable) Step() interface{} { return state.step } -func (state *StateValue) NewInstance() *StateValueInstance { - return &StateValueInstance{ +func (state *StateVariable) SetAllowedValues(allowed ...interface{}) { + state.ClearAllowedValues() + state.AppendAllowedValues(allowed...) +} + +func (state *StateVariable) AppendAllowedValues(allowed ...interface{}) error { + state.allowedValues = slices.Grow(state.allowedValues, len(allowed)) + + var err error + for _, val := range allowed { + val, err = state.valueType.Cast(val) + if err != nil { + return err + } + state.allowedValues = append(state.allowedValues, val) + } + return nil +} + +func (state *StateVariable) ClearAllowedValues() { + state.allowedValues = make([]interface{}, 0) +} + +func (state *StateVariable) NewInstance() *StateVarInstance { + return &StateVarInstance{ model: state, value: state.DefaultValue(), lastChange: time.Now(), @@ -405,7 +428,7 @@ func (state *StateValue) NewInstance() *StateValueInstance { // ToXMLElement generates the complete XML representation of the state variable // Returns an etree.Element that can be serialized to XML -func (sv *StateValue) ToXMLElement() *etree.Element { +func (sv *StateVariable) ToXMLElement() *etree.Element { // Create root element elem := etree.NewElement("stateVariable") elem.CreateAttr("name", sv.name) @@ -468,7 +491,7 @@ func (sv *StateValue) ToXMLElement() *etree.Element { // valueToString converts a value to its UPnP-compatible string representation // Handles type-specific formatting for proper XML serialization -func (sv *StateValue) valueToString(val interface{}) string { +func (sv *StateVariable) valueToString(val interface{}) string { if val == nil { return "" // Safeguard against nil values } diff --git a/upnp/statevariable/statevariable_TransferStatus.go b/upnp/statevariable/statevariable_TransferStatus.go new file mode 100644 index 00000000..fe81190b --- /dev/null +++ b/upnp/statevariable/statevariable_TransferStatus.go @@ -0,0 +1,17 @@ +package stateVariables + +var TransferStatus = func() *StateVariable { + + ts := StateType_String.NewStateValue("TransferStatus") + + ts.SetAllowedValues( + "COMPLETED", + "ERROR", + "IN_PROGRESS", + "NONE", + ) + + ts.SetSendingEvents() + + return ts +}() diff --git a/upnp/statevariable/statevariable_Volume.go b/upnp/statevariable/statevariable_Volume.go new file mode 100644 index 00000000..bbe67ee9 --- /dev/null +++ b/upnp/statevariable/statevariable_Volume.go @@ -0,0 +1,13 @@ +package stateVariables + +var Volume = func() *StateVariable { + + vol := StateType_UI2.NewStateValue("Volume") + + vol.SetRange(0, 100) + vol.SetStep(1) + + vol.SetSendingEvents() + + return vol +}() diff --git a/upnp/statevalue_arithm.go b/upnp/statevariable/statevariable_arithm.go similarity index 83% rename from upnp/statevalue_arithm.go rename to upnp/statevariable/statevariable_arithm.go index 04aca211..d051327f 100644 --- a/upnp/statevalue_arithm.go +++ b/upnp/statevariable/statevariable_arithm.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables // Add performs addition operation on the given parameters 'a' and 'b'. It calls the // corresponding method from valueType which is assumed to be an interface that @@ -15,25 +15,25 @@ package upnp // } else { // // Use result // } -func (sv StateValue) Add(a, b interface{}) (interface{}, error) { +func (sv StateVariable) Add(a, b interface{}) (interface{}, error) { return sv.valueType.Add(a, b) } // Sub performs subtraction operation on the given parameters 'a' and 'b'. It follows // similar semantics as in the Add method, but for subtraction instead of addition. -func (sv StateValue) Sub(a, b interface{}) (interface{}, error) { +func (sv StateVariable) Sub(a, b interface{}) (interface{}, error) { return sv.valueType.Sub(a, b) } // Mul performs multiplication operation on the given parameters 'a' and 'b'. It follows // similar semantics as in the Add method, but for multiplication instead of addition. -func (sv StateValue) Mul(a, b interface{}) (interface{}, error) { +func (sv StateVariable) Mul(a, b interface{}) (interface{}, error) { return sv.valueType.Mul(a, b) } // Div performs division operation on the given parameters 'a' and 'b'. It follows similar // semantics as in the Add method, but for division instead of addition. Please note that // division by zero is undefined and will result in an error being returned from valueType.Div call. -func (sv StateValue) Div(a, b interface{}) (interface{}, error) { +func (sv StateVariable) Div(a, b interface{}) (interface{}, error) { return sv.valueType.Div(a, b) } diff --git a/upnp/statevalue_cast.go b/upnp/statevariable/statevariable_cast.go similarity index 93% rename from upnp/statevalue_cast.go rename to upnp/statevariable/statevariable_cast.go index e8be27b4..50a1ae43 100644 --- a/upnp/statevalue_cast.go +++ b/upnp/statevariable/statevariable_cast.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables // Cast transforms any given value into an interface suitable for use in a StateValue object, using // the underlying type's specific casting rules. It will return an error if the transformation fails or @@ -24,6 +24,6 @@ package upnp // log.Println(err) // return // } -func (sv *StateValue) Cast(val interface{}) (interface{}, error) { +func (sv *StateVariable) Cast(val interface{}) (interface{}, error) { return sv.valueType.Cast(val) } diff --git a/upnp/statevariable/statevariable_cmp.go b/upnp/statevariable/statevariable_cmp.go new file mode 100644 index 00000000..556c7816 --- /dev/null +++ b/upnp/statevariable/statevariable_cmp.go @@ -0,0 +1,13 @@ +package stateVariables + +func (sv StateVariable) Cmp(a, b interface{}) (int, error) { + return sv.valueType.Cmp(a, b) +} + +func (sv StateVariable) Equal(a, b interface{}) (int, error) { + return sv.valueType.Cmp(a, b) +} + +func (sv StateVariable) InRange(val interface{}, interval *ValueRange) (bool, error) { + return sv.valueType.InRange(val, interval) +} diff --git a/upnp/statevalue_typechecking.go b/upnp/statevariable/statevariable_typechecking.go similarity index 90% rename from upnp/statevalue_typechecking.go rename to upnp/statevariable/statevariable_typechecking.go index 4734feeb..626ab02d 100644 --- a/upnp/statevalue_typechecking.go +++ b/upnp/statevariable/statevariable_typechecking.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables // IsNumeric checks whether a given StateValue model represents a numeric value or // not. Numeric types are defined as those that can be used to store number-like @@ -9,7 +9,7 @@ package upnp // // Returns true if the given StateValue represents a numeric value; false // otherwise. -func (sv StateValue) IsNumeric() bool { +func (sv StateVariable) IsNumeric() bool { return sv.valueType.IsNumeric() } @@ -20,7 +20,7 @@ func (sv StateValue) IsNumeric() bool { // // Returns: bool: If the state variable type is any of the defined integer types // (UI1, UI2, UI4, I1, I2, I4, Int), it returns true. Otherwise, it returns false. -func (sv StateValue) IsInteger() bool { +func (sv StateVariable) IsInteger() bool { return sv.valueType.IsInteger() } @@ -28,20 +28,20 @@ func (sv StateValue) IsInteger() bool { // // The return value will be a boolean indicating whether the state value type is // a signed integer (true) or not (false). -func (sv StateValue) IsSignedInt() bool { +func (sv StateVariable) IsSignedInt() bool { return sv.valueType.IsSignedInt() } // IsUnsignedInt checks if the state value type represents an unsigned integer. // The method returns a boolean indicating whether the state value type is an // unsigned integer. -func (sv StateValue) IsUnsignedInt() bool { +func (sv StateVariable) IsUnsignedInt() bool { return sv.valueType.IsUnsignedInt() } // IsFloat returns true if the StateValue's value type represents a floating point // number; false otherwise. -func (sv StateValue) IsFloat() bool { +func (sv StateVariable) IsFloat() bool { return sv.valueType.IsFloat() } @@ -54,7 +54,7 @@ func (sv StateValue) IsFloat() bool { // Returns: // // (bool) : Indicates whether the StateValue is of boolean type or not. -func (sv StateValue) IsBool() bool { +func (sv StateVariable) IsBool() bool { return sv.valueType.IsBool() } @@ -82,7 +82,7 @@ func (sv StateValue) IsBool() bool { // // state := upnp.StateValue{valueType: upnp.TypeInt} // fmt.Println(state.IsString()) // Outputs: false -func (sv StateValue) IsString() bool { +func (sv StateVariable) IsString() bool { return sv.valueType.IsString() } @@ -109,7 +109,7 @@ func (sv StateValue) IsString() bool { // fmt.Println(state.IsTime()) // // Outputs: false -func (sv StateValue) IsTime() bool { +func (sv StateVariable) IsTime() bool { return sv.valueType.IsTime() } @@ -120,7 +120,7 @@ func (sv StateValue) IsTime() bool { // UUID; false otherwise. // // Returns: bool: Indicates whether the StateValue is of UUID type or not. -func (sv StateValue) IsUUID() bool { +func (sv StateVariable) IsUUID() bool { return sv.valueType.IsUUID() } @@ -129,7 +129,7 @@ func (sv StateValue) IsUUID() bool { // a Uniform Resource Identifier (URI) or not. // // Returns: bool: Indicates whether the StateValue is of URI type or not. -func (sv StateValue) IsURI() bool { +func (sv StateVariable) IsURI() bool { return sv.valueType.IsURI() } @@ -141,7 +141,7 @@ func (sv StateValue) IsURI() bool { // Returns: bool: If the underlying value type of the StateValue object is // either TypeBinBase64 or TypeBinHex, this method will return true; otherwise, // it returns false. -func (sv StateValue) IsBinary() bool { +func (sv StateVariable) IsBinary() bool { return sv.valueType.IsBinary() } @@ -153,6 +153,6 @@ func (sv StateValue) IsBinary() bool { // // // Returns: bool: A boolean value indicating whether the given StateValue is // comparable or not. True means it's comparable, False means it isn't. -func (sv StateValue) IsComparable() bool { +func (sv StateVariable) IsComparable() bool { return sv.valueType.IsComparable() } diff --git a/upnp/statevaluetype.go b/upnp/statevariable/statevartype.go similarity index 96% rename from upnp/statevaluetype.go rename to upnp/statevariable/statevartype.go index 8e5d7cff..c3e2947e 100644 --- a/upnp/statevaluetype.go +++ b/upnp/statevariable/statevartype.go @@ -1,7 +1,7 @@ -// Package upnp provides comprehensive handling of UPnP state variable types. +// package stateVariables provides comprehensive handling of UPnP state variable types. // It includes type identification, value casting, comparison, and range validation // for all standard UPnP state variable types. -package upnp +package stateVariables import ( "strings" @@ -143,8 +143,8 @@ func (t StateVarType) BitSize() int { // empty map for event conditions. If name is an empty string, it will cause panic in later // usage. Name is typically used to identify or represent a specific value or condition // associated with the variable type 't'. -func (t StateVarType) NewStateValue(name string) *StateValue { - return &StateValue{ +func (t StateVarType) NewStateValue(name string) *StateVariable { + return &StateVariable{ name: name, valueType: t, eventConditions: make(map[string]StateConditionFunc), diff --git a/upnp/statevaluetype_arithm.go b/upnp/statevariable/statevartype_arithm.go similarity index 99% rename from upnp/statevaluetype_arithm.go rename to upnp/statevariable/statevartype_arithm.go index 0bf2cf58..71126437 100644 --- a/upnp/statevaluetype_arithm.go +++ b/upnp/statevariable/statevartype_arithm.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables // Add performs addition operation on two interfaces if both are of numeric // type, otherwise it returns an error. If the types are not numeric, it checks diff --git a/upnp/statevaluetype_cast.go b/upnp/statevariable/statevartype_cast.go similarity index 99% rename from upnp/statevaluetype_cast.go rename to upnp/statevariable/statevartype_cast.go index 01480364..f8602600 100644 --- a/upnp/statevaluetype_cast.go +++ b/upnp/statevariable/statevartype_cast.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "fmt" diff --git a/upnp/statevaluetype_cmp.go b/upnp/statevariable/statevartype_cmp.go similarity index 99% rename from upnp/statevaluetype_cmp.go rename to upnp/statevariable/statevartype_cmp.go index 4418b583..29f4b580 100644 --- a/upnp/statevaluetype_cmp.go +++ b/upnp/statevariable/statevartype_cmp.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "bytes" diff --git a/upnp/statevaluetype_typechecking.go b/upnp/statevariable/statevartype_typechecking.go similarity index 99% rename from upnp/statevaluetype_typechecking.go rename to upnp/statevariable/statevartype_typechecking.go index d2a493ed..e869f137 100644 --- a/upnp/statevaluetype_typechecking.go +++ b/upnp/statevariable/statevartype_typechecking.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables // IsNumeric checks whether a given StateVarType represents a numeric type or // not. Numeric types are defined as those that can be used to store number-like diff --git a/upnp/utils_binary.go b/upnp/statevariable/utils_binary.go similarity index 98% rename from upnp/utils_binary.go rename to upnp/statevariable/utils_binary.go index 34a896e2..4f691f4c 100644 --- a/upnp/utils_binary.go +++ b/upnp/statevariable/utils_binary.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "encoding/base64" diff --git a/upnp/utils_bool.go b/upnp/statevariable/utils_bool.go similarity index 98% rename from upnp/utils_bool.go rename to upnp/statevariable/utils_bool.go index 13fbfed5..0d849d3a 100644 --- a/upnp/utils_bool.go +++ b/upnp/statevariable/utils_bool.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "errors" diff --git a/upnp/utils_float.go b/upnp/statevariable/utils_float.go similarity index 98% rename from upnp/utils_float.go rename to upnp/statevariable/utils_float.go index 4bac44eb..20d1aa05 100644 --- a/upnp/utils_float.go +++ b/upnp/statevariable/utils_float.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "fmt" diff --git a/upnp/utils_int.go b/upnp/statevariable/utils_int.go similarity index 98% rename from upnp/utils_int.go rename to upnp/statevariable/utils_int.go index 324ad669..bd06cb24 100644 --- a/upnp/utils_int.go +++ b/upnp/statevariable/utils_int.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "errors" @@ -127,7 +127,7 @@ func cmpInt(a, b int64) int { } } -// cmpUint compares two unsigned integers, a and b. +// cmpUint compares two unsigned integers, a and b. // It returns -1 if a < b. // It returns 1 if a > b. // It returns 0 if a == b. diff --git a/upnp/utils_numeric_operandes.go b/upnp/statevariable/utils_numeric_operandes.go similarity index 97% rename from upnp/utils_numeric_operandes.go rename to upnp/statevariable/utils_numeric_operandes.go index 933f503e..7d93e564 100644 --- a/upnp/utils_numeric_operandes.go +++ b/upnp/statevariable/utils_numeric_operandes.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import "fmt" diff --git a/upnp/utils_string.go b/upnp/statevariable/utils_string.go similarity index 96% rename from upnp/utils_string.go rename to upnp/statevariable/utils_string.go index 97ed172f..5f4f9e57 100644 --- a/upnp/utils_string.go +++ b/upnp/statevariable/utils_string.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "fmt" diff --git a/upnp/utils_time.go b/upnp/statevariable/utils_time.go similarity index 99% rename from upnp/utils_time.go rename to upnp/statevariable/utils_time.go index 26ed4367..a9f56297 100644 --- a/upnp/utils_time.go +++ b/upnp/statevariable/utils_time.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "fmt" diff --git a/upnp/utils_uint.go b/upnp/statevariable/utils_uint.go similarity index 99% rename from upnp/utils_uint.go rename to upnp/statevariable/utils_uint.go index b45095b6..2b962240 100644 --- a/upnp/utils_uint.go +++ b/upnp/statevariable/utils_uint.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "errors" diff --git a/upnp/utils_uri.go b/upnp/statevariable/utils_uri.go similarity index 94% rename from upnp/utils_uri.go rename to upnp/statevariable/utils_uri.go index 955a48f0..15bc2230 100644 --- a/upnp/utils_uri.go +++ b/upnp/statevariable/utils_uri.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "fmt" diff --git a/upnp/utils_uuid.go b/upnp/statevariable/utils_uuid.go similarity index 96% rename from upnp/utils_uuid.go rename to upnp/statevariable/utils_uuid.go index 1b1e0395..a63a323e 100644 --- a/upnp/utils_uuid.go +++ b/upnp/statevariable/utils_uuid.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import ( "fmt" diff --git a/upnp/valuerange.go b/upnp/statevariable/valuerange.go similarity index 98% rename from upnp/valuerange.go rename to upnp/statevariable/valuerange.go index 55a15f8b..2e85a6d9 100644 --- a/upnp/valuerange.go +++ b/upnp/statevariable/valuerange.go @@ -1,4 +1,4 @@ -package upnp +package stateVariables import "fmt"