00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020 #ifndef SHCHANNELNODE_HPP
00021 #define SHCHANNELNODE_HPP
00022
00023 #include "ShDllExport.hpp"
00024 #include "ShVariableNode.hpp"
00025 #include "ShMemory.hpp"
00026
00027 namespace SH {
00028
00029 class
00030 SH_DLLEXPORT ShChannelNode : public ShVariableNode {
00031 public:
00032 ShChannelNode(ShSemanticType specType, int elements, ShValueType valueType);
00033 ShChannelNode(ShSemanticType specType, int elements, ShValueType valueType,
00034 const ShMemoryPtr& memory, int count);
00035 virtual ~ShChannelNode();
00036
00037 void memory(const ShMemoryPtr& memory, int count);
00038 ShPointer<const ShMemory> memory() const;
00039 ShMemoryPtr memory();
00040
00041 int count() const;
00042
00043 private:
00044 ShMemoryPtr m_memory;
00045 int m_count;
00046
00047
00048 ShChannelNode(const ShChannelNode& other);
00049 ShChannelNode& operator=(const ShChannelNode& other);
00050 };
00051
00052 typedef ShPointer<ShChannelNode> ShChannelNodePtr;
00053 typedef ShPointer<const ShChannelNode> ShChannelNodeCPtr;
00054
00055 }
00056 #endif