00001 /***************************************************************************** 00002 * Author: Valient Gough <vgough@pobox.com> 00003 * 00004 ***************************************************************************** 00005 * Copyright (c) 2001, Valient Gough 00006 * 00007 * This library is free software; you can distribute it and/or modify it under 00008 * the terms of the GNU Lesser General Public License (LGPL), as published by 00009 * the Free Software Foundation; either version 2.1 of the License, or (at your 00010 * option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, but WITHOUT 00013 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 * FITNESS FOR A PARTICULAR PURPOSE. See the LGPL in the file COPYING for more 00015 * details. 00016 * 00017 */ 00018 00019 #ifndef _RemoteMapClient_incl 00020 #define _RemoteMapClient_incl 00021 00022 00023 #include <rel/VMap.h> 00024 00025 namespace rel 00026 { 00027 00028 00029 class RemoteMapClient : public VMap 00030 { 00031 public: 00032 // Act as client for remote map. The path given is the base path on the 00033 // remote end. 00034 RemoteMapClient(const SmartPtr<TypeStream> &transport); 00035 ~RemoteMapClient(); 00036 00037 // could override in order to improve efficiency.. 00038 //VMapPtr findDirectory(const string &name, int flags = VMap::NoFlags); 00039 //VMapPtr findDirectory(const TypeStream &path,int flags=VMap::NoFlags); 00040 00041 //VMapPtr createDirectory(const string &name); 00042 //ODSMapPtr createDirectory(const TypeStream &path); 00043 00044 OpaqueValue find(const string &name); 00045 OpaqueValue find(const TypeStream &path); 00046 //OpaqueValue find_search_TopDown(const TypeStream &path, 00047 // const string &name); 00048 00049 //ErrorCode insert(const string &name, const OpaqueValue &value); 00050 //ErrorCode insert(const TypeStream &path, const OpaqueValue &value); 00051 00052 //ErrorCode assign(const string &name, const OpaqueValue &value); 00053 //ErrorCode assign(const TypeStream &path, const OpaqueValue &value); 00054 //ErrorCode assign(const string &name, const OpaqueValue &value); 00055 00056 //ErrorCode erase(const string &name); 00057 //ErrorCode erase(const TypeStream &path); 00058 00059 //virtual ErrorCode clear(); 00060 00061 00062 enum CommandPrefixes 00063 { 00064 Command_Find_String = 'f', 00065 Command_Find_Path = 'F' 00066 }; 00067 00068 private: 00069 00070 SmartPtr<TypeStream> fTransport; 00071 }; 00072 00073 } // namespace rel 00074 00075 #endif 00076