Export netimgui files in MuJoCo Copybara configuration for use with the upcoming Web Viewer
PiperOrigin-RevId: 954769526 Change-Id: I4cdee083082f7d55c2babd5e664ec0283a2aaf63
This commit is contained in:
committed by
Copybara-Service
parent
c7b6e0b8dd
commit
ca5337161d
@@ -0,0 +1,75 @@
|
||||
// Copyright 2026 DeepMind Technologies Limited
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Connection-state query for the WASM WebSocket network backend.
|
||||
//
|
||||
// Stock NetImgui has no such query and does not need one: its Connect()
|
||||
// implementations block until the connection is established, so a non-null
|
||||
// SocketInfo is always usable and later failures surface as DataSend /
|
||||
// DataReceive errors inside the client thread. In the browser,
|
||||
// emscripten_websocket_new() returns a socket handle immediately while the
|
||||
// connection completes (or fails) asynchronously, and no client state
|
||||
// machine is watching it. Callers poll this state to hold back traffic
|
||||
// until the socket is actually open and to detect closure for reconnecting.
|
||||
|
||||
#ifndef THIRD_PARTY_NETIMGUI_GOOGLE_NETWORK_STATUS_H_
|
||||
#define THIRD_PARTY_NETIMGUI_GOOGLE_NETWORK_STATUS_H_
|
||||
|
||||
namespace NetImgui {
|
||||
namespace Internal {
|
||||
namespace Network {
|
||||
|
||||
struct SocketInfo;
|
||||
|
||||
enum class ReadyState {
|
||||
kDisconnected, // Null socket.
|
||||
kConnecting,
|
||||
kOpen,
|
||||
kClosing,
|
||||
kClosed,
|
||||
kError,
|
||||
};
|
||||
|
||||
// Implemented in NetImgui_NetworkWASM.cpp (Emscripten builds only).
|
||||
ReadyState GetReadyState(SocketInfo* client_socket);
|
||||
|
||||
// The WebSocket close code once the socket has closed, else 0. Lets callers
|
||||
// distinguish a deliberate server-side rejection (e.g. 4001 = driver slot
|
||||
// taken) from an ordinary drop. Implemented in NetImgui_NetworkWASM.cpp.
|
||||
int GetCloseCode(SocketInfo* client_socket);
|
||||
|
||||
// Human-readable state name, for status overlays and logs.
|
||||
inline const char* ReadyStateName(ReadyState state) {
|
||||
switch (state) {
|
||||
case ReadyState::kDisconnected:
|
||||
return "Disconnected";
|
||||
case ReadyState::kConnecting:
|
||||
return "Connecting";
|
||||
case ReadyState::kOpen:
|
||||
return "Open";
|
||||
case ReadyState::kClosing:
|
||||
return "Closing";
|
||||
case ReadyState::kClosed:
|
||||
return "Closed";
|
||||
case ReadyState::kError:
|
||||
return "Error";
|
||||
}
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
} // namespace Network
|
||||
} // namespace Internal
|
||||
} // namespace NetImgui
|
||||
|
||||
#endif // THIRD_PARTY_NETIMGUI_GOOGLE_NETWORK_STATUS_H_
|
||||
Reference in New Issue
Block a user