Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

SHEndpointSpec.h

Go to the documentation of this file.
00001 /* Copyright (C) 2000 KOM/Darmstadt University of Technology 00002 * 00003 * You are allowed to use all other parts of the code under the following terms: 00004 * 00005 * For non-commercial use, code may be used in unmodified form provided 00006 * that this copyright notice and this permission notice appear in 00007 * supporting documentation. 00008 * 00009 * This software is provided "as is" and without any express or implied 00010 * warranties, including, without limitation, the implied warranty of 00011 * fitness for a particular purpose. 00012 * 00013 * The code may be subjected to the GNU General Public License, Version 2, 00014 * and re-distributed under the terms of this license. 00015 * As a special exception, permission is granted to link this code 00016 * with the Qt library and distribute executables, as long as you 00017 * follow the requirements of the GNU GPL in regard to all of the 00018 * software in the executable aside from Qt. 00019 * 00020 * Commercial use other than under the terms of the GNU General Public 00021 * License is allowed only after express negotiation of conditions 00022 * with the authors. 00023 */ 00024 #ifndef MN_ENDPOINT_SPEC_H 00025 #define MN_ENDPOINT_SPEC_H 00026 00027 #include <sys/types.h> 00028 00029 namespace SH 00030 { 00031 class Base; 00032 class Endpoint; 00033 00047 class SHEndpointSpec 00048 { 00049 protected: 00050 struct Settings 00051 { 00052 unsigned _is_sink : 1; 00053 unsigned _is_source : 1; 00054 unsigned _support_interface_pull : 1; 00055 unsigned _support_interface_push : 1; 00056 unsigned _support_multiple_instances : 1; 00057 unsigned _support_arbitrary_instances : 1; 00058 unsigned _support_dynamic_connection : 1; 00059 unsigned _support_dynamic_disconnection : 1; 00060 size_t _max_supported_instances; 00061 00062 void initSettings( const Settings& orig ); 00063 }; 00064 private: 00065 Settings _settings; 00066 00067 public: 00073 void initSettings( const SHEndpointSpec::Settings& settings ); 00074 00079 virtual bool isSink() const; 00080 00085 virtual bool isSource() const; 00086 00091 virtual bool supportInterfacePull() const; 00092 00097 virtual bool supportInterfacePush() const; 00098 00105 virtual bool supportMultipleInstances() const; 00106 00111 virtual bool supportArbitraryInstances() const; 00112 00121 virtual size_t getMaxSupportedInstances() const; 00122 00129 virtual bool supportDynamicConnection() const; 00130 00135 virtual bool supportDynamicDisconnection() const; 00136 }; 00137 00138 }; // namespace SH 00139 00140 #endif /* MN_ENDPOINT_SPEC_H */ 00141

Generated on Sun Mar 6 13:35:50 2005 for Komssys by doxygen 1.3.8