13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*
23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright (C) 2014 The Android Open Source Project
33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *
43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Licensed under the Apache License, Version 2.0 (the "License");
53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * you may not use this file except in compliance with the License.
63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * You may obtain a copy of the License at
73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *
83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *      http://www.apache.org/licenses/LICENSE-2.0
93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *
103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Unless required by applicable law or agreed to in writing, software
113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * distributed under the License is distributed on an "AS IS" BASIS,
123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * See the License for the specific language governing permissions and
143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * limitations under the License.
153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */
163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef SYNCML_PlugIn_WBXMLLog_H
183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define SYNCML_PlugIn_WBXMLLog_H
193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef __cplusplus
213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#error "This is a C++ header file; it requires C++ to compile."
223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif
233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "SyncML_DM_Archive.H"
253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "SyncML_DM_WBXMLWriter.H"
263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "SyncML_DM_WBXMLReader.H"
273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "SyncML_Log.H"
283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmt.hpp"
293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmtRWPlugin.hpp"
313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyclass SyncML_PlugIn_WBXMLLog : public SyncML_Log
333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{
343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby  public:
363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    /* Class constructor */
383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    SyncML_PlugIn_WBXMLLog(const DmtRWPluginTree *pluginTree, CPCHAR rootPath);
393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    /* Class destructor */
413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    virtual ~SyncML_PlugIn_WBXMLLog();
423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    // Open log file and create one if the file doesn't exist
443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby     SYNCML_DM_RET_STATUS_T InitLog(CPCHAR logFileName);
453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    // Uninitialize log
463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    SYNCML_DM_RET_STATUS_T UnInitLog();
473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    /* Log one command */
483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    SYNCML_DM_RET_STATUS_T logCommand(SYNCML_DM_PLUGIN_COMMAND_T commandType,
493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                              CPCHAR pbURI,
503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                              SYNCML_DM_PLUGIN_COMMAND_ATTRIBUTE_T attribute,
513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                              const DmtNode* inNode);
523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    /* Playback log file */
543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby   SYNCML_DM_RET_STATUS_T playLog();
553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby   SYNCML_DM_RET_STATUS_T playLog(CPCHAR logFileName);
563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby  private:
593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby        /* Performs the actual recovery function calls */
613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    SYNCML_DM_RET_STATUS_T  playbackOneRecord(SYNCML_DM_PLUGIN_COMMAND_T commandType,
623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                             CPCHAR pbURI,
633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                             SYNCML_DM_PLUGIN_COMMAND_ATTRIBUTE_T attribute,
643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                             DMAddNodeProp* props);
653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    SYNCML_DM_RET_STATUS_T gotoLastRecord(SyncML_DM_WBXMLReader* reader,
673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                              UINT8 *lastByte,
683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                              INT32 *currentPos );
693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    SYNCML_DM_RET_STATUS_T writeLogHeader(SyncML_DM_WBXMLWriter* writer);
713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    SYNCML_DM_RET_STATUS_T writeURIInfo(SYNCML_DM_PLUGIN_COMMAND_T commandType,
723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                          CPCHAR pbURI,
733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                          SyncML_DM_WBXMLWriter* writer);
743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    SYNCML_DM_RET_STATUS_T writePluginNode(CPCHAR pbURI,
763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                              SyncML_DM_WBXMLWriter* writer,
773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby                                              const DmtNode* ptrNode);
783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    SYNCML_DM_RET_STATUS_T  updatePosition(SyncML_DM_WBXMLWriter* writer);
803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    DMString m_strRootPath;
823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    INT32 prevRecord;
833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    const DmtRWPluginTree *pluginTree;
843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    SyncML_DM_WBXMLWriter* writer;
853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby    SyncML_DM_WBXMLReader* reader;
863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby};
883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif /* SYNCML_PlugIn_WBXMLLog_H */
90