Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Unified Diff: experimental/hex/hex_instance.cc

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « experimental/hex/hex_instance.h ('k') | experimental/hex/hex_maniac.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: experimental/hex/hex_instance.cc
diff --git a/experimental/hex/hex_instance.cc b/experimental/hex/hex_instance.cc
deleted file mode 100644
index b3dff02f6df6fa5590a09e06f6f97a2438968dd2..0000000000000000000000000000000000000000
--- a/experimental/hex/hex_instance.cc
+++ /dev/null
@@ -1,195 +0,0 @@
-// Copyright (c) 2011 The Native Client SDK Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can
-// be found in the LICENSE file.
-
-/// @file
-/// This example demonstrates loading, running and scripting a very simple NaCl
-/// module. To load the NaCl module, the browser first looks for the
-/// CreateModule() factory method (at the end of this file). It calls
-/// CreateModule() once to load the module code from your .nexe. After the
-/// .nexe code is loaded, CreateModule() is not called again.
-///
-/// Once the .nexe code is loaded, the browser then calls the
-/// HexGameModule::CreateInstance()
-/// method on the object returned by CreateModule(). It calls CreateInstance()
-/// each time it encounters an <embed> tag that references your NaCl module.
-///
-
-#include "hex_instance.h"
-
-namespace {
-
-/// Use @a delims to identify all the elements in @ the_string, and add
-/// Invoke the function associated with @a method. The argument list passed
-/// via JavaScript is marshaled into a vector of pp::Vars. None of the
-/// functions in this example take arguments, so this vector is always empty.
-/// these elements to the end of @a the_data. Return how many elements
-/// were found.
-/// @param the_string [in] A string containing the data to be parsed.
-/// @param delims [in] A string containing the characters used as delimiters.
-/// @param the_data [out] A vector of strings to which the elements are added.
-/// @return The number of elements added to @ the_data.
-///
-/// Example uses:
-/// GetElementsFromString(arg0, std::string(" "), unitIds);
-/// GetElementsFromString(green_substring, std::string("[]"), greenUnitWords);
-int GetElementsFromString(std::string the_string, std::string delims,
- std::vector<std::string>& the_data) {
- size_t element_start = 0, element_end;
- unsigned int elements_found = 0;
- bool found_an_element = false;
- do {
- found_an_element = false;
- // find first non-delimeter
- element_start = the_string.find_first_not_of(delims, element_start);
- if (element_start != std::string::npos) {
- found_an_element = true;
- element_end = the_string.find_first_of(delims, element_start+1);
- std::string the_element = the_string.substr(element_start,
- element_end - element_start);
- the_data.push_back(the_element);
- ++elements_found;
- // Set element_start (where to look for non-delim) to element_end, which
- // is where we found the last delim. Don't add 1 to element_end, or else
- // we may start past the end of the string when last delim was last char
- // of the string.
- element_start = element_end;
- }
- } while (found_an_element);
- return elements_found;
-}
-} // namespace
-
-namespace hexgame {
-
-// AppMain runs the original game loop (corresponding to main)
-void* AppMain(void* param);
-
-
-// Return an event from the thread-safe queue, waiting for a new event
-// to occur if the queue is empty. Set |was_queue_cancelled| to indicate
-// whether the queue was cancelled. If it was cancelled, then the
-const UserMove HexGameInstance::GetEventFromQueue(bool *was_queue_cancelled) {
- UserMove user_move(-1, -1);
-
- QueueGetResult result = event_queue_.GetItem(&user_move, kWait);
- if (result == kQueueWasCancelled) {
- *was_queue_cancelled = true;
- }
- *was_queue_cancelled = false;
- return user_move;
-}
-
-void HexGameInstance::WaitForUserMove(uint32_t* user_col, uint32_t* user_row) {
- bool canceled;
- UserMove move = GetEventFromQueue(&canceled);
- *user_col = move.column_;
- *user_row = move.row_;
-}
-
-void HexGameInstance::GameOver() {
- if (!computer_wins_ && !user_wins_)
- return;
-
- std::string msg;
- if (computer_wins_) {
- msg = "COMPUTERWINS";
- } else {
- msg = "USERWINS";
- }
- printf("Calling PostMessage with [%s]\n", msg.c_str());
- PostMessage(pp::Var(msg));
-}
-
-// SendStatusToBrowser
-void HexGameInstance::SendStatusToBrowser() {
- fprintf(stderr, "Entered SendStatusToBrowser\n");
- if (!sent_game_loop_ready_ && game_loop_ready_) {
- fprintf(stderr, "Sending GameLoopReady!\n");
- PostMessage(pp::Var("GAME_LOOP_READY"));
- sent_game_loop_ready_ = true;
- return;
- }
- if (last_move_was_invalid_) {
- fprintf(stderr, "invalid move...\n");
- PostMessage(pp::Var("INVALIDMOVE"));
- return;
- }
- if (user_wins_) {
- fprintf(stderr, "game over...\n");
- GameOver();
- return;
- }
- fprintf(stderr, "computer move...\n");
- std::stringstream oss;
- oss << "COMPUTERMOVE: " << computer_column_ << "," << computer_row_;
- printf("Calling PostMessage with [%s]\n", oss.str().c_str());
- PostMessage(pp::Var(oss.str()));
- fprintf(stderr, "sent computer move...\n");
-
- // check for computer win here, because if the computer had a last
- // move that wasn't yet sent to the browser, we want to send that
- // move before declaring that the computer is the winner.
- if (computer_wins_) {
- fprintf(stderr, "game over...\n");
- GameOver();
- return;
- }
-}
-
-void HexGameInstance::SetComputerMove(uint32_t col, uint32_t row) {
- computer_column_ = col;
- computer_row_ = row;
-}
-
-void UpdateCallback(void* data, int32_t /*result*/) {
- fprintf(stderr, "UpdateCallback is calling Update\n");
- HexGameInstance* hex_instance = static_cast<HexGameInstance*>(data);
- hex_instance->SendStatusToBrowser();
- // fprintf(stderr, "EXITED UpdateCallback\n");
-}
-
-bool HexGameInstance::Init(uint32_t argc, const char* argn[],
- const char* argv[]) {
- pthread_create(&compute_pi_thread_, NULL, AppMain, this);
- return true;
-}
-
-// Called when the NEXE gets a message from Javascript
-void HexGameInstance::HandleMessage(const pp::Var& var_message) {
- if (!var_message.is_string()) {
- printf("RETURNING from HandleMessage -- var_message is NOT a STRING!\n");
- return;
- }
- std::string message = var_message.AsString();
- printf("HANDLE_MESSAGE received {%s}\n", message.c_str());
-
- std::vector<std::string> words;
- GetElementsFromString(message, std::string(": "), words);
-
- if (words[0] == "USERMOVE" && words.size() >= 3) {
- int col = atoi(words[1].c_str());
- int row = atoi(words[2].c_str());
- printf("USERMOVE column %d row %d\n", col, row);
-
- UserMove u(col, row);
- event_queue_.Push(u);
- return;
- }
-}
-
-} // namespace
-
-namespace pp {
-/// Factory function called by the browser when the module is first loaded.
-/// The browser keeps a singleton of this module. It calls the
-/// CreateInstance() method on the object you return to make instances. There
-/// is one instance per <embed> tag on the page. This is the main binding
-/// point for your NaCl module with the browser.
-/// @return new HexGameModule.
-/// @note The browser is responsible for deleting returned @a Module.
-Module* CreateModule() {
- return new hexgame::HexGameModule();
-}
-} // namespace pp
-
« no previous file with comments | « experimental/hex/hex_instance.h ('k') | experimental/hex/hex_maniac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698