Deleted Added
sdiff udiff text old ( 7039:bc0b6ea676b5 ) new ( 7055:4e24742201d7 )
full compact
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 20 unchanged lines hidden (view full) ---

29// NetDest specifies the network destination of a NetworkMessage
30// This is backward compatible with the Set class that was previously
31// used to specify network destinations.
32// NetDest supports both node networks and component networks
33
34#ifndef __MEM_RUBY_COMMON_NETDEST_HH__
35#define __MEM_RUBY_COMMON_NETDEST_HH__
36
37#include <iostream>
38
39#include "mem/gems_common/Vector.hh"
40#include "mem/protocol/MachineType.hh"
41#include "mem/ruby/common/Global.hh"
42#include "mem/ruby/common/Set.hh"
43#include "mem/ruby/system/MachineID.hh"
44#include "mem/ruby/system/NodeID.hh"
45
46class NetDest
47{
48 public:
49 // Constructors
50 // creates and empty set
51 NetDest();
52 explicit NetDest(int bit_size);

--- 42 unchanged lines hidden (view full) ---

95 MachineID smallestElement(MachineType machine) const;
96
97 void setSize();
98 int getSize() const { return m_bits.size(); }
99
100 // get element for a index
101 NodeID elementAt(MachineID index);
102
103 void print(std::ostream& out) const;
104
105 private:
106 // returns a value >= MachineType_base_level("this machine")
107 // and < MachineType_base_level("next highest machine")
108 int
109 vecIndex(MachineID m) const
110 {
111 int vec_index = MachineType_base_level(m.type);

--- 5 unchanged lines hidden (view full) ---

117 bitIndex(NodeID index) const
118 {
119 return index;
120 }
121
122 Vector <Set> m_bits; // a Vector of bit vectors - i.e. Sets
123};
124
125inline std::ostream&
126operator<<(std::ostream& out, const NetDest& obj)
127{
128 obj.print(out);
129 out << std::flush;
130 return out;
131}
132
133#endif // __MEM_RUBY_COMMON_NETDEST_HH__
134