MCPcopy Create free account
hub / github.com/BZFlag-Dev/bzflag / readFromFile

Method readFromFile

src/game/ServerItem.cpp:89–140  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87}
88
89bool ServerItem::readFromFile(std::istream& in) {
90 char buffer[ServerListCache::max_string + 1];
91
92 //read description
93 memset(buffer, 0, sizeof(buffer));
94 in.read(buffer, sizeof(buffer));
95 if ((size_t)in.gcount() < sizeof(buffer)) { return false; } // failed to read entire string
96 description = buffer;
97
98 //read name
99 memset(buffer, 0, sizeof(buffer));
100 in.read(buffer, sizeof(buffer));
101 if ((size_t)in.gcount() < sizeof(buffer)) { return false; } // failed to read entire string
102 name = buffer;
103
104 bool pingWorked = ping.readFromFile(in);
105 if (!pingWorked) { return false; } // pingpacket failed to read
106
107 // read in favorite flag
108 uint8_t fav;
109 in.read(buffer, 1);
110 nboUnpackUInt8(buffer, fav);
111 favorite = (fav != 0);
112
113 // read in recent flag
114 uint8_t rec;
115 in.read(buffer, 1);
116 nboUnpackUInt8(buffer, rec);
117 recent = (rec != 0);
118
119 // read in recent time
120 in.read(&buffer[0], 4);
121 if (in.gcount() < 4) { return false; }
122 int32_t rTime;
123 nboUnpackInt32(&buffer[0], rTime);
124 recentTime = (time_t) rTime;
125
126 // recent server from more than 10 days ago, unmark as recent
127 if ((recent) && ((getNow() - recentTime) >= 60 * 60 * 24 * 10)) {
128 recent = false;
129 recentTime = 0;
130 }
131
132 // read in time
133 in.read(&buffer[0], 4);
134 if (in.gcount() < 4) { return false; }
135 int32_t theTime;
136 nboUnpackInt32(&buffer[0], theTime);
137 updateTime = (time_t) theTime;
138 cached = true;
139 return true;
140}
141
142// set the last updated time to now
143void ServerItem::resetAge() {

Callers 1

loadCacheMethod · 0.45

Calls 3

nboUnpackUInt8Function · 0.85
nboUnpackInt32Function · 0.85
readMethod · 0.45

Tested by

no test coverage detected