00001 /*MT* 00002 00003 MediaTomb - http://www.mediatomb.cc/ 00004 00005 cds_resource.h - this file is part of MediaTomb. 00006 00007 Copyright (C) 2005 Gena Batyan <bgeradz@mediatomb.cc>, 00008 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc> 00009 00010 Copyright (C) 2006-2010 Gena Batyan <bgeradz@mediatomb.cc>, 00011 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc>, 00012 Leonhard Wimmer <leo@mediatomb.cc> 00013 00014 MediaTomb is free software; you can redistribute it and/or modify 00015 it under the terms of the GNU General Public License version 2 00016 as published by the Free Software Foundation. 00017 00018 MediaTomb is distributed in the hope that it will be useful, 00019 but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 GNU General Public License for more details. 00022 00023 You should have received a copy of the GNU General Public License 00024 version 2 along with MediaTomb; if not, write to the Free Software 00025 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 00026 00027 $Id: cds_resource.h 2081 2010-03-23 20:18:00Z lww $ 00028 */ 00029 00031 00032 #ifndef __CDS_RESOURCE_H__ 00033 #define __CDS_RESOURCE_H__ 00034 00035 #include "common.h" 00036 #include "dictionary.h" 00037 00040 #define RESOURCE_OPTION_URL "url" 00041 00044 #define RESOURCE_OPTION_PROXY_URL "prx" 00045 00046 #define RESOURCE_OPTION_FOURCC "4cc" 00047 00048 class CdsResource : public zmm::Object 00049 { 00050 protected: 00051 int handlerType; 00052 zmm::Ref<Dictionary> attributes; 00053 zmm::Ref<Dictionary> parameters; 00054 zmm::Ref<Dictionary> options; 00055 00056 public: 00062 CdsResource(int handlerType); 00063 CdsResource(int handlerType, 00064 zmm::Ref<Dictionary> attributes, 00065 zmm::Ref<Dictionary> parameters, 00066 zmm::Ref<Dictionary> options); 00067 00074 void addAttribute(zmm::String name, zmm::String value); 00075 00079 void removeAttribute(zmm::String name); 00080 00082 void mergeAttributes(zmm::Ref<Dictionary> additional); 00083 00093 void addParameter(zmm::String name, zmm::String value); 00094 00099 void addOption(zmm::String name, zmm::String value); 00100 00101 // urlencode into string 00102 int getHandlerType(); 00103 zmm::Ref<Dictionary> getAttributes(); 00104 zmm::Ref<Dictionary> getParameters(); 00105 zmm::Ref<Dictionary> getOptions(); 00106 zmm::String getAttribute(zmm::String name); 00107 zmm::String getParameter(zmm::String name); 00108 zmm::String getOption(zmm::String name); 00109 00110 bool equals(zmm::Ref<CdsResource> other); 00111 zmm::Ref<CdsResource> clone(); 00112 00113 zmm::String encode(); 00114 static zmm::Ref<CdsResource> decode(zmm::String serial); 00115 00117 void optimize(); 00118 }; 00119 00120 #endif // __CDS_RESOURCE_H__
1.6.1