Commit 8e61488c authored by NILANJAN DAW's avatar NILANJAN DAW

Added boilerplate code support for protobuf based message transfer

Renamed p4 based test codes to tryouts folder
parent e95dd1fe
#
# https://help.github.com/articles/dealing-with-line-endings/
#
# These are explicitly windows files and should use crlf
*.bat text eol=crlf
# Ignore Gradle project-specific cache directory
.gradle
# Ignore Gradle build output directory
build
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>hpdos</name>
<comment>Project code created by Buildship.</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
<filteredResources>
<filter>
<id>1617116007482</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
arguments=
auto.sync=false
build.scans.enabled=false
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
connection.project.dir=
eclipse.preferences.version=1
gradle.user.home=
java.home=/usr/lib/jvm/java-1.14.0-openjdk-amd64
jvm.arguments=
offline.mode=false
override.workspace.settings=true
show.console.view=true
show.executions.view=true
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="bin/main" path="src/main/java">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/main" path="src/main/resources">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/test" path="src/test/java">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/test" path="src/test/resources">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-14/"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
<classpathentry kind="output" path="bin/default"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>app</name>
<comment>Project app created by Buildship.</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
<filteredResources>
<filter>
<id>1617116007477</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
connection.project.dir=..
eclipse.preferences.version=1
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java application project to get you started.
* For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
* User Manual available at https://docs.gradle.org/6.8.3/userguide/building_java_projects.html
*/
plugins {
// Apply the application plugin to add support for building a CLI application in Java.
id 'application'
id "com.google.protobuf" version "0.8.15"
id "java"
}
repositories {
// Use JCenter for resolving dependencies.
jcenter()
mavenCentral()
}
dependencies {
// Use JUnit test framework.
testImplementation 'junit:junit:4.13'
// This dependency is used by the application.
implementation 'com.google.guava:guava:29.0-jre'
implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.15.6'
}
application {
// Define the main class for the application.
mainClass = 'hpdos.App'
}
\ No newline at end of file
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package hpdos;
public class App {
public String getGreeting() {
return "Hello World!";
}
public static void main(String[] args) {
System.out.println(new App().getGreeting());
}
}
package hpdos.messageformat;
public class MessageConstants {
public static int PACKET_REQUEST = 0;
public static int PACKET_RESPONSE = 1;
}
syntax = "proto3";
package hpdos;
option java_package = "hpdos.messageformat";
option java_outer_classname = "PacketFormatProto";
message Packet {
int32 packetType = 1;
repeated Request request = 2;
repeated Response response = 3;
}
message Request {
int32 operationType = 1;
int32 version = 2;
int32 dataSize = 3;
string key = 4;
int32 crc = 5;
string value = 6;
}
message Response {
int32 operationType = 1;
bool status = 2;
repeated Ack ack = 3;
repeated Nack nack = 4;
}
message Ack {
int32 version = 1;
int32 dataSize = 2;
string key = 3;
int32 crc = 4;
string value = 5;
}
message Nack {
int32 reason = 1;
string key = 2;
int32 version = 3;
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
package hpdos.messageformat;
import java.util.ArrayList;
import hpdos.messageformat.PacketFormatProto.Packet;
import hpdos.messageformat.PacketFormatProto.Request;
public class RequestBuilder {
public static Request buildRequest(int operationType, int version,
int dataSize, String key, int crc, String value) {
Request.Builder request = Request.newBuilder();
request.setOperationType(operationType);
request.setVersion(version);
request.setDataSize(dataSize);
request.setKey(key);
request.setCrc(crc);
request.setValue(value);
return request.build();
}
public static Packet buildPacket(ArrayList<Request> requests) {
Packet.Builder packet = Packet.newBuilder();
packet.setPacketType(MessageConstants.PACKET_REQUEST);
packet.addAllRequest(requests);
return packet.build();
}
}
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package hpdos;
import org.junit.Test;
import static org.junit.Assert.*;
public class AppTest {
@Test public void testAppHasAGreeting() {
App classUnderTest = new App();
assertNotNull("app should have a greeting", classUnderTest.getGreeting());
}
}
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# 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.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
exec "$JAVACMD" "$@"
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
/*
* This file was generated by the Gradle 'init' task.
*
* The settings file is used to specify which projects to include in your build.
*
* Detailed information about configuring a multi-project build in Gradle can be found
* in the user manual at https://docs.gradle.org/6.8.3/userguide/multi_project_builds.html
*/
rootProject.name = 'hpdos'
include('app')
<mxfile host="Electron" modified="2021-03-22T10:04:16.542Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.7.9 Chrome/85.0.4183.121 Electron/10.1.3 Safari/537.36" etag="z3SqxcdW-6z8LWrPNrLO" version="13.7.9" type="device"><diagram id="IuXuGYwBe3Z0u9ugAnWq" name="Page-1">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</diagram></mxfile>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment