Files
CHORUS/vendor/github.com/polydawn/refmt/obj/unmarshalTransform.go
anthonyrawlins 9bdcbe0447 Integrate BACKBEAT SDK and resolve KACHING license validation
Major integrations and fixes:
- Added BACKBEAT SDK integration for P2P operation timing
- Implemented beat-aware status tracking for distributed operations
- Added Docker secrets support for secure license management
- Resolved KACHING license validation via HTTPS/TLS
- Updated docker-compose configuration for clean stack deployment
- Disabled rollback policies to prevent deployment failures
- Added license credential storage (CHORUS-DEV-MULTI-001)

Technical improvements:
- BACKBEAT P2P operation tracking with phase management
- Enhanced configuration system with file-based secrets
- Improved error handling for license validation
- Clean separation of KACHING and CHORUS deployment stacks

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 07:56:26 +10:00

39 lines
1.3 KiB
Go

package obj
import (
"reflect"
"github.com/polydawn/refmt/obj/atlas"
. "github.com/polydawn/refmt/tok"
)
type unmarshalMachineTransform struct {
trFunc atlas.UnmarshalTransformFunc
recv_rt reflect.Type
delegate UnmarshalMachine // machine for handling the recv type, stepped to completion before transform applied.
target_rv reflect.Value // given on Reset, retained until last step, and set into after using trFunc
recv_rv reflect.Value // if set, handle to slot where slice is stored; content must be placed into target at end.
}
func (mach *unmarshalMachineTransform) Reset(slab *unmarshalSlab, rv reflect.Value, _ reflect.Type) error {
mach.target_rv = rv
mach.recv_rv = reflect.New(mach.recv_rt).Elem() // REVIEW: this behavior with ptr vs not for in_rt. the star-star case is prob not what want.
return mach.delegate.Reset(slab, mach.recv_rv, mach.recv_rt)
}
func (mach *unmarshalMachineTransform) Step(driver *Unmarshaller, slab *unmarshalSlab, tok *Token) (done bool, err error) {
done, err = mach.delegate.Step(driver, slab, tok)
if err != nil {
return
}
if !done {
return
}
// on the last step, use transform, and finally set in real target.
tr_rv, err := mach.trFunc(mach.recv_rv)
// do attempt the set even if error. user may appreciate partial progress.
mach.target_rv.Set(tr_rv)
return true, err
}