Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move SessionUtilities service to session_utilities.proto file #798

Merged
merged 3 commits into from
Nov 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ set(nidriver_service_srcs
# Proto file
#----------------------------------------------------------------------
get_filename_component(session_proto "source/protobuf/session.proto" ABSOLUTE)
get_filename_component(session_utilities_proto "source/protobuf/session_utilities.proto" ABSOLUTE)
get_filename_component(nidevice_proto "source/protobuf/nidevice.proto" ABSOLUTE)
get_filename_component(debugsessionproperties_restricted_proto "source/protobuf_restricted/debugsessionproperties_restricted.proto" ABSOLUTE)
get_filename_component(session_proto_path "${session_proto}" PATH)
Expand Down Expand Up @@ -262,6 +263,10 @@ set(session_proto_srcs "${proto_srcs_dir}/session.pb.cc")
set(session_proto_hdrs "${proto_srcs_dir}/session.pb.h")
set(session_grpc_srcs "${proto_srcs_dir}/session.grpc.pb.cc")
set(session_grpc_hdrs "${proto_srcs_dir}/session.grpc.pb.h")
set(session_utilities_proto_srcs "${proto_srcs_dir}/session_utilities.pb.cc")
set(session_utilities_proto_hdrs "${proto_srcs_dir}/session_utilities.pb.h")
set(session_utilities_grpc_srcs "${proto_srcs_dir}/session_utilities.grpc.pb.cc")
set(session_utilities_grpc_hdrs "${proto_srcs_dir}/session_utilities.grpc.pb.h")
set(nidevice_proto_srcs "${proto_srcs_dir}/nidevice.pb.cc")
set(nidevice_proto_hdrs "${proto_srcs_dir}/nidevice.pb.h")
set(debugsessionproperties_restricted_proto_srcs "${proto_srcs_dir}/debugsessionproperties_restricted.pb.cc")
Expand All @@ -280,6 +285,16 @@ GenerateGrpcSources(
"${session_grpc_hdrs}"
)

GenerateGrpcSources(
PROTO
${session_utilities_proto}
OUTPUT
"${session_utilities_proto_srcs}"
"${session_utilities_proto_hdrs}"
"${session_utilities_grpc_srcs}"
"${session_utilities_grpc_hdrs}"
)

GenerateGrpcSources(
PROTO
${nidevice_proto}
Expand Down Expand Up @@ -338,6 +353,8 @@ add_executable(ni_grpc_device_server
${nidevice_proto_srcs}
${session_proto_srcs}
${session_grpc_srcs}
${session_utilities_proto_srcs}
${session_utilities_grpc_srcs}
${debugsessionproperties_restricted_proto_srcs}
${debugsessionproperties_restricted_grpc_srcs}
${nidriver_service_srcs})
Expand Down Expand Up @@ -428,6 +445,8 @@ add_executable(IntegrationTestsRunner
${nidevice_proto_srcs}
${session_proto_srcs}
${session_grpc_srcs}
${session_utilities_proto_srcs}
${session_utilities_grpc_srcs}
${debugsessionproperties_restricted_proto_srcs}
${debugsessionproperties_restricted_grpc_srcs}
"${proto_srcs_dir}/nifake.pb.cc"
Expand Down Expand Up @@ -491,6 +510,8 @@ add_executable(UnitTestsRunner
${nidevice_proto_srcs}
${session_proto_srcs}
${session_grpc_srcs}
${session_utilities_proto_srcs}
${session_utilities_grpc_srcs}
${debugsessionproperties_restricted_proto_srcs}
${debugsessionproperties_restricted_grpc_srcs}
"${proto_srcs_dir}/nifake.pb.cc"
Expand Down Expand Up @@ -589,6 +610,8 @@ set(system_test_runner_sources
${nidevice_proto_srcs}
${session_proto_srcs}
${session_grpc_srcs}
${session_utilities_proto_srcs}
${session_utilities_grpc_srcs}
${debugsessionproperties_restricted_proto_srcs}
${debugsessionproperties_restricted_grpc_srcs}
${nidriver_service_srcs}
Expand Down
4 changes: 2 additions & 2 deletions examples/session/session-reservation.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@
import grpc
import niscope_pb2 as niscope_types
import niscope_pb2_grpc as grpc_niscope
import session_pb2 as session_types
import session_pb2_grpc as grpc_session
import session_utilities_pb2 as session_types
import session_utilities_pb2_grpc as grpc_session

SERVER_ADDRESS = "localhost"
SERVER_PORT = "31763"
Expand Down
4 changes: 2 additions & 2 deletions examples/session/session-utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
import argparse

import grpc
import session_pb2 as session_types
import session_pb2_grpc as grpc_session
import session_utilities_pb2 as session_types
import session_utilities_pb2_grpc as grpc_session


def main(args):
Expand Down
91 changes: 0 additions & 91 deletions source/protobuf/session.proto
Original file line number Diff line number Diff line change
Expand Up @@ -7,30 +7,6 @@ option csharp_namespace = "NationalInstruments.Grpc.Device";

package nidevice_grpc;

service SessionUtilities {
// Provides a list of devices or chassis connected to server under localhost
rpc EnumerateDevices(EnumerateDevicesRequest)
returns (EnumerateDevicesResponse);

// Provides a list of NI software installed on server under localhost
rpc EnumerateInstalledSoftware(EnumerateInstalledSoftwareRequest)
returns (EnumerateInstalledSoftwareResponse);

// Reserve a set of client defined resources for exclusive use
rpc Reserve(ReserveRequest) returns (ReserveResponse);

// Determines if a set of client defined resources is currently reserved by a
// specific client
rpc IsReservedByClient(IsReservedByClientRequest)
returns (IsReservedByClientResponse);

// Unreserves a previously reserved resource
rpc Unreserve(UnreserveRequest) returns (UnreserveResponse);

// Resets the server to a default state with no open sessions
rpc ResetServer(ResetServerRequest) returns (ResetServerResponse);
}

enum SessionInitializationBehavior {
SESSION_INITIALIZATION_BEHAVIOR_UNSPECIFIED = 0;
SESSION_INITIALIZATION_BEHAVIOR_INITIALIZE_NEW = 1;
Expand All @@ -40,70 +16,3 @@ enum SessionInitializationBehavior {
message Session {
string name = 1;
}

message DeviceProperties {
string name = 1;
string model = 2;
string vendor = 3;
string serial_number = 4;
uint32 product_id = 5;
}

message EnumerateDevicesRequest {}

message EnumerateDevicesResponse {
repeated DeviceProperties devices = 1;
}

message SoftwareProperties {
string package_id = 1;
string package_version = 2;
string product_name = 3;
}

message EnumerateInstalledSoftwareRequest {
bool include_hidden_packages = 1;
}

message EnumerateInstalledSoftwareResponse {
repeated SoftwareProperties software = 1;
}

message ReserveRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message ReserveResponse {
bool is_reserved = 1;
}

message IsReservedByClientRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message IsReservedByClientResponse {
bool is_reserved = 1;
}

message UnreserveRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message UnreserveResponse {
bool is_unreserved = 1;
}

message ResetServerRequest {}

message ResetServerResponse {
bool is_server_reset = 1;
}
99 changes: 99 additions & 0 deletions source/protobuf/session_utilities.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
syntax = "proto3";

option java_multiple_files = true;
option java_package = "com.ni.grpc.device";
option java_outer_classname = "NiDevice";
option csharp_namespace = "NationalInstruments.Grpc.Device";

package nidevice_grpc;

service SessionUtilities {
// Provides a list of devices or chassis connected to server under localhost
rpc EnumerateDevices(EnumerateDevicesRequest)
returns (EnumerateDevicesResponse);

// Provides a list of NI software installed on server under localhost
rpc EnumerateInstalledSoftware(EnumerateInstalledSoftwareRequest)
returns (EnumerateInstalledSoftwareResponse);

// Reserve a set of client defined resources for exclusive use
rpc Reserve(ReserveRequest) returns (ReserveResponse);

// Determines if a set of client defined resources is currently reserved by a
// specific client
rpc IsReservedByClient(IsReservedByClientRequest)
returns (IsReservedByClientResponse);

// Unreserves a previously reserved resource
rpc Unreserve(UnreserveRequest) returns (UnreserveResponse);

// Resets the server to a default state with no open sessions
rpc ResetServer(ResetServerRequest) returns (ResetServerResponse);
}

message DeviceProperties {
string name = 1;
string model = 2;
string vendor = 3;
string serial_number = 4;
uint32 product_id = 5;
}

message EnumerateDevicesRequest {}

message EnumerateDevicesResponse {
repeated DeviceProperties devices = 1;
}

message SoftwareProperties {
string package_id = 1;
string package_version = 2;
string product_name = 3;
}

message EnumerateInstalledSoftwareRequest {
bool include_hidden_packages = 1;
}

message EnumerateInstalledSoftwareResponse {
repeated SoftwareProperties software = 1;
}

message ReserveRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message ReserveResponse {
bool is_reserved = 1;
}

message IsReservedByClientRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message IsReservedByClientResponse {
bool is_reserved = 1;
}

message UnreserveRequest {
// client defined string representing a set of reservable resources
string reservation_id = 1;
// client defined identifier for a specific client
string client_id = 2;
}

message UnreserveResponse {
bool is_unreserved = 1;
}

message ResetServerRequest {}

message ResetServerResponse {
bool is_server_reset = 1;
}
1 change: 1 addition & 0 deletions source/server/device_enumerator.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <grpcpp/grpcpp.h>
#include <nisyscfg.h>
#include <session.grpc.pb.h>
#include <session_utilities.grpc.pb.h>
#include <shared_mutex>

#include "syscfg_library_interface.h"
Expand Down
1 change: 1 addition & 0 deletions source/server/software_enumerator.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <grpcpp/grpcpp.h>
#include <nisyscfg.h>
#include <session.grpc.pb.h>
#include <session_utilities.grpc.pb.h>

#include <shared_mutex>

Expand Down
1 change: 1 addition & 0 deletions source/tests/system/device_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <register_all_services.h>
#include <server/feature_toggles.h>
#include <session.grpc.pb.h>
#include <session_utilities.grpc.pb.h>

namespace ni {
namespace tests {
Expand Down