IMP logo
IMP Reference Guide  develop.63b38c487d,2024/12/26
The Integrative Modeling Platform
AvroDataFileData.h
1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 
19 #ifndef INCLUDE_ACRODATAFILEDATA_H_2861103865__H_
20 #define INCLUDE_ACRODATAFILEDATA_H_2861103865__H_
21 
22 #include "boost/any.hpp"
23 #include "Specific.hh"
24 #include "Encoder.hh"
25 #include "Decoder.hh"
26 
27 namespace IMP_npctransport {
28 struct wrapper {
29  std::string key;
30  std::vector<uint8_t> value;
31 };
32 }
33 namespace IMP_NPCTRANSPORT_AVRO_NAMESPACE {
34 template <>
35 struct codec_traits<IMP_npctransport::wrapper> {
36  template <class Encoder>
37  static void encode(Encoder& e, const IMP_npctransport::wrapper& v) {
38  IMP_NPCTRANSPORT_AVRO_NAMESPACE::encode(e, v.key);
39  IMP_NPCTRANSPORT_AVRO_NAMESPACE::encode(e, v.value);
40  }
41  template <class Decoder>
42  static void decode(Decoder& d, IMP_npctransport::wrapper& v) {
43  IMP_NPCTRANSPORT_AVRO_NAMESPACE::decode(d, v.key);
44  IMP_NPCTRANSPORT_AVRO_NAMESPACE::decode(d, v.value);
45  }
46 };
47 }
48 #endif