recordio.hh
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:2k
源码类别:

网格计算

开发平台:

Java

  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. #ifndef RECORDIO_HH_
  19. #define RECORDIO_HH_
  20. #include <stdio.h>
  21. #include <stdint.h>
  22. #include <iostream>
  23. #include <cstring>
  24. #include <string>
  25. #include <vector>
  26. #include <map>
  27. #include <bitset>
  28. namespace hadoop {
  29.   
  30. class InStream {
  31. public:
  32.   virtual ssize_t read(void *buf, size_t buflen) = 0;
  33.   virtual ~InStream() {}
  34. };
  35. class OutStream {
  36. public:
  37.   virtual ssize_t write(const void *buf, size_t len) = 0;
  38.   virtual ~OutStream() {}
  39. };
  40. class IArchive;
  41. class OArchive;
  42. class Record {
  43. public:
  44.   virtual void serialize(OArchive& archive, const char* tag) const = 0;
  45.   virtual void deserialize(IArchive& archive, const char* tag) = 0;
  46.   virtual const std::string& type() const = 0;
  47.   virtual const std::string& signature() const = 0;
  48.   virtual ~Record() {}
  49. };
  50. enum RecFormat { kBinary, kXML, kCSV };
  51. class RecordReader {
  52. private:
  53.   IArchive* mpArchive;
  54. public:
  55.   RecordReader(InStream& stream, RecFormat f);
  56.   virtual void read(hadoop::Record& record);
  57.   virtual ~RecordReader();
  58. };
  59. class RecordWriter {
  60. private:
  61.   OArchive* mpArchive;
  62. public:
  63.   RecordWriter(OutStream& stream, RecFormat f);
  64.   virtual void write(const hadoop::Record& record);
  65.   virtual ~RecordWriter();
  66. };
  67. }; // end namspace hadoop
  68. #include "archive.hh"
  69. #include "exception.hh"
  70. #endif /*RECORDIO_HH_*/