~dobey/go-unityscopes/fix-typo

« back to all changes in this revision

Viewing changes to metadata.go

  • Committer: Rodney Dawes
  • Author(s): James Henstridge
  • Date: 2016-10-03 20:26:39 UTC
  • mfrom: (73.1.11 v2)
  • Revision ID: rodney.dawes@canonical.com-20161003202639-6qnaojpfps0vk11q
Update code to work with Go 1.6's new cgo pointer handling rules.

Show diffs side-by-side

added added

removed removed

Lines of Context:
71
71
// form_factor
72
72
func NewSearchMetadata(cardinality int, locale, form_factor string) *SearchMetadata {
73
73
        return makeSearchMetadata(C.new_search_metadata(C.int(cardinality),
74
 
                unsafe.Pointer(&locale),
75
 
                unsafe.Pointer(&form_factor)))
 
74
                strData(locale),
 
75
                strData(form_factor)))
76
76
}
77
77
 
78
78
// Cardinality returns the desired number of results for the search request.
134
134
 
135
135
func (metadata *SearchMetadata) SetAggregatedKeywords(keywords []string) error {
136
136
        var errorString *C.char
137
 
        C.search_metadata_set_aggregated_keywords((*C._SearchMetadata)(metadata.m), unsafe.Pointer(&keywords[0]), C.int(len(keywords)), &errorString)
 
137
        C.search_metadata_set_aggregated_keywords((*C._SearchMetadata)(metadata.m), joinedStrData(keywords), &errorString)
138
138
        return checkError(errorString)
139
139
}
140
140
 
171
171
// NewActionMetadata creates a new ActionMetadata with the given locale and
172
172
// form_factor
173
173
func NewActionMetadata(locale, form_factor string) *ActionMetadata {
174
 
        return makeActionMetadata(C.new_action_metadata(unsafe.Pointer(&locale),
175
 
                unsafe.Pointer(&form_factor)))
 
174
        return makeActionMetadata(C.new_action_metadata(strData(locale),
 
175
                strData(form_factor)))
176
176
}
177
177
 
178
178
func makeActionMetadata(m *C._ActionMetadata) *ActionMetadata {
211
211
                return err
212
212
        }
213
213
        var errorString *C.char
214
 
        C.action_metadata_set_hint((*C._ActionMetadata)(metadata.m), unsafe.Pointer(&key), (*C.char)(unsafe.Pointer(&data[0])), C.int(len(data)), &errorString)
 
214
        C.action_metadata_set_hint((*C._ActionMetadata)(metadata.m), strData(key), (*C.char)(unsafe.Pointer(&data[0])), C.int(len(data)), &errorString)
215
215
        return checkError(errorString)
216
216
}
217
217
 
220
220
func (metadata *ActionMetadata) Hint(key string, value interface{}) error {
221
221
        var dataLength C.int
222
222
        var errorString *C.char
223
 
        scopeData := C.action_metadata_get_hint((*C._ActionMetadata)(metadata.m), unsafe.Pointer(&key), &dataLength, &errorString)
 
223
        scopeData := C.action_metadata_get_hint((*C._ActionMetadata)(metadata.m), strData(key), &dataLength, &errorString)
224
224
        if dataLength > 0 && errorString == nil {
225
225
                defer C.free(scopeData)
226
226
                return json.Unmarshal(C.GoBytes(scopeData, dataLength), value)