recordio.cc
上传用户: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. #include "recordio.hh"
  19. #include "binarchive.hh"
  20. #include "csvarchive.hh"
  21. #include "xmlarchive.hh"
  22. using namespace hadoop;
  23. hadoop::RecordReader::RecordReader(InStream& stream, RecFormat f)
  24. {
  25.   switch (f) {
  26.     case kBinary:
  27.       mpArchive = new IBinArchive(stream);
  28.       break;
  29.     case kCSV:
  30.       mpArchive = new ICsvArchive(stream);
  31.       break;
  32.     case kXML:
  33.       mpArchive = new IXmlArchive(stream);
  34.       break;
  35.   }
  36. }
  37. hadoop::RecordReader::~RecordReader()
  38. {
  39.   delete mpArchive;
  40. }
  41. void hadoop::RecordReader::read(Record& record)
  42. {
  43.   record.deserialize(*mpArchive, (const char*) NULL);
  44. }
  45. hadoop::RecordWriter::RecordWriter(OutStream& stream, RecFormat f)
  46. {
  47.   switch (f) {
  48.     case kBinary:
  49.       mpArchive = new OBinArchive(stream);
  50.       break;
  51.     case kCSV:
  52.       mpArchive = new OCsvArchive(stream);
  53.       break;
  54.     case kXML:
  55.       mpArchive = new OXmlArchive(stream);
  56.       break;
  57.   }
  58. }
  59. hadoop::RecordWriter::~RecordWriter()
  60. {
  61.   delete mpArchive;
  62. }
  63. void hadoop::RecordWriter::write(const Record& record)
  64. {
  65.   record.serialize(*mpArchive, (const char*) NULL);
  66. }