Merge branch 'update-build' into 'main'

Update Gradle Wrapper 6.3 und Asciidoctor 3.3.0 - OP#193

See merge request github/osi-stack!5
This commit is contained in:
2022-05-16 13:45:39 +00:00
40 changed files with 4580 additions and 84 deletions
-6
View File
@@ -1,6 +0,0 @@
#
# https://help.github.com/articles/dealing-with-line-endings/
#
# These are explicitly windows files and should use crlf
*.bat text eol=crlf
-26
View File
@@ -1,26 +0,0 @@
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
name: Java CI with Gradle
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
+6
View File
@@ -15,3 +15,9 @@ gradle-app.setting
# Ignore Gradle build output directory
build
.settings/
bin/
.project
.classpath
.asciidoctorconfig.adoc
.vscode/
+59
View File
@@ -0,0 +1,59 @@
variables:
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
before_script:
- source "/home/gitlab-runner/.sdkman/bin/sdkman-init.sh"
- sdk u java 11.0.12-open
stages:
- build
- test
- docs
- analysis
- publish
Build Application:
stage: build
script: ./gradlew --build-cache compileJava
cache:
key: "$CI_COMMIT_REF_NAME"
policy: push
paths:
- build
- .gradle
Create Documentation:
stage: build
script: ./gradlew asciidoctorPdf
Test Application:
stage: test
script: ./gradlew check
cache:
key: "$CI_COMMIT_REF_NAME"
policy: pull
paths:
- build
- .gradle
sonarqube-check:
stage: analysis
variables:
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
cache:
key: "${CI_JOB_NAME}"
paths:
- .sonar/cache
script: ./gradlew sonarqube
allow_failure: true
Publish Artifacts:
stage: publish
script: ./gradlew publish
cache:
key: "$CI_COMMIT_REF_NAME"
policy: pull
paths:
- build
- .gradle
+104 -19
View File
@@ -1,29 +1,114 @@
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java Library project to get you started.
* For more details take a look at the Java Libraries chapter in the Gradle
* User Manual available at https://docs.gradle.org/6.3/userguide/java_library_plugin.html
*/
plugins {
// Apply the java-library plugin to add support for Java Library
id 'java-library'
id 'jacoco'
id "org.sonarqube" version "3.3"
id 'org.asciidoctor.jvm.pdf' version '3.3.2'
id 'org.asciidoctor.jvm.convert' version '3.3.2'
id 'org.asciidoctor.jvm.gems' version '3.3.2'
id 'maven-publish'
}
repositories {
// Use jcenter for resolving dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
ruby.gems()
}
dependencies {
// This dependency is exported to consumers, that is to say found on their compile classpath.
api 'org.apache.commons:commons-math3:3.6.1'
// This dependency is used internally, and not exposed to consumers on their own compile classpath.
implementation 'com.google.guava:guava:28.2-jre'
// Use JUnit test framework
testImplementation 'junit:junit:4.12'
asciidoctorGems 'rubygems:rouge:3.15.0'
asciidoctorGems 'rubygems:asciidoctor-diagram:2.2.2'
testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
}
final BUILD_DATE = new Date().format('dd.MM.yyyy').toString()
def pdfFile = layout.buildDirectory.file("docs/asciidocPdf/" + project.name + ".pdf")
def pdfArtifact = artifacts.add('archives', pdfFile.get().asFile) {
type 'pdf'
builtBy asciidoctorPdf
}
sourceCompatibility = 1.8
publishing {
publications {
maven(MavenPublication) {
group = group + '.docs'
artifactId = project.name
artifact pdfArtifact
}
}
publications {
osistacklibrary(MavenPublication) {
from components.java
}
}
repositories {
maven {
url "https://gitlab.thpeetz.de/api/v4/projects/${projectId}/packages/maven"
credentials(HttpHeaderCredentials) {
name = "Private-Token"
value = gitLabPrivateToken
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
}
test {
useJUnitPlatform()
testLogging {
events "passed", "skipped", "failed"
}
}
jacocoTestReport {
reports {
xml.enabled true
}
}
test.finalizedBy jacocoTestReport
sonarqube {
properties {
property "sonar.projectKey", "github_osi-stack_AYBw4khXuGIZKMqU5_ed"
property "sonar.host.url", "https://sonar.thpeetz.de"
property "sonar.login", "71bff82090aff3503c20d5070949c3bba548c51e"
property "sonar.qualitygate.wait", true
property "sonar.sourceEncoding", "UTF-8"
}
}
tasks.named('sonarqube').configure {
dependsOn test
}
asciidoctorPdf {
dependsOn asciidoctorGemsPrepare
baseDirFollowsSourceFile()
asciidoctorj {
requires 'rouge', 'asciidoctor-diagram'
attributes 'build-gradle': file('build.gradle'),
'endpoint-url': 'https://www.thpeetz.de',
'source-highlighter': 'rouge',
'imagesdir': './images',
'toc': 'left',
'toc-title': 'Inhaltsverzeichnis',
'revdate': BUILD_DATE,
'revnumber': { project.version.toString() },
'revremark': 'Entwurf',
'chapter-label': '',
'icons': 'font',
'idprefix': 'id_',
'idseparator': '-',
'docinfo1': ''
}
}
wrapper {
gradleVersion = "6.3"
}
+6
View File
@@ -0,0 +1,6 @@
description='OSI Stack Library'
version=0.1.0-SNAPSHOT
group=de.thpeetz.network
gitLabPrivateToken=bFcsw1ebNhoFgKysksU1
projectId=168
-9
View File
@@ -1,10 +1 @@
/*
* 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.3/userguide/multi_project_builds.html
*/
rootProject.name = 'osi-stack'
+93
View File
@@ -0,0 +1,93 @@
= Projektbeschreibung osi-stack: Pflichtenheft und Projektbeschreibung
:author: Thomas Peetz
:email: <thomas.peetz@thpeetz.de>
:doctype: article
:sectnums:
:sectnumlevels: 4
:toc:
:toclevels: 4
:table-caption!:
:counter: table-number: 0
//[title="Dokumenthistorie", caption="Tabelle {counter:table-number} ", id="Tabelle-{counter:table-number}", options="header"]
//[title="Dokumenthistorie", id="Table-{counter:table-number}", options="header", cols="4"]
[title="Dokumenthistorie", id="Table-{counter:table-number}", options="header"]
|===
| Version | Datum | Autor | Änderungsgrund / Bemerkungen
| 0.0.1 | 28.04.2022 | Thomas Peetz | Ersterstellung
|===
== Einführung
=== Zweck
Implementierung der OSI Layer 4 bis 7 in Java.
=== Stakeholder des Systems
=== Systemumfang
==== Zielsetzung des Systems
=== Systemübersicht
==== Systemkontext
==== Systemarchitektur
===== Systemkomponente 1
===== Systemkomponente 2
==== Systemschnittstellen
===== Realisierte Schnittstellen
===== Verwendete Schnittstellen
==== Logisches Datenmodell
==== Einschränkungen
== Anforderungen der Domäne
=== Systemfunktionen
==== Anwendungsfälle
==== Akteure
==== Zielgruppen
=== Anforderungen
==== Anforderungen an externe Schnittstellen
==== Funktionale Anforderungen
==== Qualitätsanforderungen
==== Randbedingungen
==== Weitere Anforderungen
==== Wartungs- und Supportinformationen
=== Verifikation
[bibliography]
== Referenzen
- [[[1]]] http://www.gitlab.org
[glossary]
== Glossar
== Verzeichnisse
=== Abbildungsverzeichnis
=== Tabellenverzeichnis
<<Table-1, Tabelle 1>> <<Table-1>>
@@ -1,10 +0,0 @@
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package com.ibtp.network.osi;
public class Library {
public boolean someLibraryMethod() {
return true;
}
}
@@ -0,0 +1,62 @@
package de.thpeetz.network.osi;
/**
* AccessPoint
* @author Thomas Peetz
*
*/
public class AccessPoint
{
/**
* byte[] accessPoint
*/
private byte[] accessPoint;
/**
* String accessPointString
*/
private String accessPointString;
/**
* Standard constructor
*/
public AccessPoint()
{
}
/**
* Constructor to initialize member accessPoint
*/
public AccessPoint(String ap)
{
this.accessPointString = ap;
this.accessPoint = ap.getBytes();
}
/**
* Return byte array as string.
* @return
*/
public final String getString()
{
return this.accessPointString;
}
/**
* Return byte array.
* @return
*/
public final byte[] getData()
{
return this.accessPoint;
}
/**
* Return length of byte array.
* @return
*/
public final byte getLength()
{
return (byte)this.accessPoint.length;
}
}
@@ -0,0 +1,22 @@
package de.thpeetz.network.osi;
public interface DataService
{
/**
*
* @param telegram
*/
void eventReceive(DataUnit telegram);
/**
* eventSessionDown
*
*/
void eventSessionDown();
/**
*
*
*/
void eventClose();
}
@@ -0,0 +1,239 @@
package de.thpeetz.network.osi;
/**
* @author Thomas Peetz
*
*/
public class DataUnit
{
/**
* Contains the telegram as array of byte.
*/
private byte[] buffer;
/**
* Contains the position.
*/
private int pointer;
/**
* Contains the length of the actual telegram.
*/
private int length;
/**
* Indicates whether the buffer is in READ or WRITE mode.
*/
private boolean writeMode = false;
/**
* Class constructor
*
*/
public DataUnit()
{
this.buffer = new byte[1024];
}
/**
* Initializes DataUnit with given array. The position is set to the first
* byte and the length is set to the length of the given array.
*
* @param telegram Telegram to decode
*/
public void initialize(byte[] telegram)
{
if (telegram.length > this.buffer.length) this.buffer = new byte[telegram.length];
System.arraycopy(telegram, 0, this.buffer, 0, telegram.length);
this.length = telegram.length;
setToRead();
}
/**
* initialize
*
*/
public void initialize()
{
this.length = 0;
setToRead();
}
/**
* addBuffer
*
* @param telegram parameter for addBuffer
*/
public void addBuffer(byte[] telegram)
{
if (telegram.length + this.length > this.buffer.length) {
byte[] tmp = new byte[telegram.length + this.length];
System.arraycopy(this.buffer,0,tmp,0,this.buffer.length);
this.buffer = tmp;
}
System.arraycopy(telegram,0,this.buffer,this.length,telegram.length);
this.length += telegram.length;
}
/**
* setToWrite
*
*/
public void setToWrite()
{
this.pointer = this.buffer.length;
this.length = 0;
this.writeMode = true;
}
/**
* setToRead
*
*/
public void setToRead()
{
this.pointer = 0;
this.writeMode = false;
}
/**
* write
*
* @param data parameter for write
*/
public void write(byte[] data)
{
if (!this.writeMode) return;
if (data.length+this.length > this.buffer.length)
{
byte[] tmp = this.buffer;
this.buffer = new byte[data.length+this.length];
int diff = this.buffer.length-tmp.length;
this.pointer += diff;
System.arraycopy(tmp,0,this.buffer,diff,tmp.length);
}
this.pointer = this.pointer-data.length;
System.arraycopy(data,0,this.buffer,this.pointer,data.length);
this.length = this.length+data.length;
}
/**
* write
*
* @param data parameter for write
*/
public void write(byte data)
{
if (!this.writeMode) return;
if (this.length+1 > this.buffer.length)
{
byte[] tmp = this.buffer;
this.buffer = new byte[this.buffer.length+10];
int diff = this.buffer.length-tmp.length;
this.pointer += diff;
System.arraycopy(tmp,0,this.buffer,diff,tmp.length);
}
this.buffer[--this.pointer] = data; this.length++;
}
/**
* write
*
* @param data parameter for write
*/
public void write(int data)
{
if (!this.writeMode) return;
if (this.length+2 > this.buffer.length)
{
byte[] tmp = this.buffer;
this.buffer = new byte[this.buffer.length+10];
int diff = this.buffer.length-tmp.length;
this.pointer += diff;
System.arraycopy(tmp,0,this.buffer,diff,tmp.length);
}
this.buffer[--this.pointer] = (byte)(0xff & data); this.length++;
this.buffer[--this.pointer] = (byte)( (0xff & (data >> 8)) ); this.length++;
}
/**
* Read next byte.
* @return Returns byte at the current position.
*/
public final byte read()
{
this.length--;
return this.buffer[this.pointer++];
}
/**
* Reads next <code>size</code> bytes from buffer.
*
* @param size Length of bytes to be read from buffer
* @return Returns array of byte of length <code>size</code>
*/
public final byte[] read(int size)
{
byte[] tmp = new byte[size];
System.arraycopy(this.buffer, this.pointer, tmp, 0, size);
this.pointer += size; this.length -= size;
return tmp;
}
/**
* Read next two bytes from buffer. The first byte is considered as HIGH BYTE
* the second as LOW BYTE.
*
* @return Returns int value.
*/
public final int readInt()
{
int highbyte = ((0xff & this.buffer[this.pointer++]) << 8);
int lowbyte = (0xff & this.buffer[this.pointer++]);
//int tmp = (0xff & this.buffer[this.pointer++]) & ((0xff & this.buffer[this.pointer++]) << 8);
int tmp = lowbyte | highbyte;
this.length -= 2;
return tmp;
}
/**
* getBuffer
*
* @return the returned byte[]
*/
public final byte[] getBuffer() {
byte[] tmp = new byte[this.length];
try {
System.arraycopy(this.buffer, this.pointer, tmp, 0, this.length);
} catch (ArrayIndexOutOfBoundsException exception) {
//System.out.println(buffer.length + " " + pointer + " " + tmp.length + " " + length);
}
return tmp;
}
/**
* getBuffer
*
* @param count parameter for getBuffer
* @return the returned byte[]
*/
public final byte[] getBuffer(int count) {
byte[] tmp = new byte[count];
try {
System.arraycopy(this.buffer, this.pointer, tmp, 0, count);
this.length -= count; this.pointer += count;
} catch (ArrayIndexOutOfBoundsException exception) {
//System.out.println(buffer.length + " " + pointer + " " + tmp.length + " " + length);
}
return tmp;
}
/**
* getLength
*
* @return the returned int
*/
public final int getLength() {
return this.length;
}
}
@@ -0,0 +1,63 @@
package de.thpeetz.network.osi;
import de.thpeetz.tools.ObjectPool;
/**
* @author Thomas Peetz
*
*/
public class DataUnitManager
{
/**
* DataUnitManager self
*/
private static DataUnitManager self = null;
/**
* ObjectPool objectPool
*/
private ObjectPool<DataUnit> objectPool;
/**************************************************************************
* Class constructor
*
***************************************************************************/
protected DataUnitManager()
{
this.objectPool = new ObjectPool<DataUnit>(DataUnit.class, 5);
for (int i=0; i <5; i++) {
this.objectPool.freeInstance(this.objectPool.getInstance());
}
}
/**************************************************************************
* getManager
*
* @return the returned DataUnitManager
***************************************************************************/
protected static DataUnitManager getManager()
{
if (self == null) self = new DataUnitManager();
return self;
}
/**************************************************************************
* getInstance
*
* @return the returned DataUnit
***************************************************************************/
public static synchronized DataUnit getInstance()
{
return getManager().objectPool.getInstance();
}
/**************************************************************************
* freeInstance
*
* @param object parameter for freeInstance
***************************************************************************/
public static synchronized void freeInstance(DataUnit object)
{
getManager().objectPool.freeInstance(object);
}
}
@@ -0,0 +1,421 @@
package de.thpeetz.network.osi.presentation;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
import de.thpeetz.network.osi.session.SessionLayer;
import de.thpeetz.network.osi.session.SessionProvider;
/**
* @author Thomas Peetz
*
*/
public class PresentationLayer implements PresentationProvider, PresentationUser {
private SessionProvider provider;
public PresentationLayer(boolean manager, AccessPoint ssap, AccessPoint tsap) {
this.provider = new SessionLayer(manager, this, ssap, tsap);
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationProvider#connectRequest(com.
* peetz.network.osi.AccessPoint, com.peetz.network.osi.AccessPoint,
* com.peetz.network.osi.AccessPoint, com.peetz.network.osi.AccessPoint,
* com.peetz.network.osi.AccessPoint, int, com.peetz.network.osi.DataUnit)
*/
public void connectRequest(AccessPoint calledNSAP, AccessPoint calledTSAP, AccessPoint calledSSAP,
AccessPoint callerPSAP, AccessPoint calledPSAP, int qualityOfService, DataUnit userData) {
this.provider.connectRequest(calledNSAP, calledTSAP, 1, null, calledSSAP, qualityOfService, 1, 1, 1, 1,
userData);
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationProvider#releaseRequest(com.
* peetz.network.osi.DataUnit)
*/
public void releaseRequest(DataUnit userData) {
this.provider.releaseRequest(userData);
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationProvider#dataRequest(com.peetz
* .network.osi.DataUnit)
*/
public void dataRequest(DataUnit userData) {
this.provider.dataRequest(userData);
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationProvider#userAbortRequest(com.
* peetz.network.osi.DataUnit)
*/
public void userAbortRequest(DataUnit userData) {
this.provider.userAbortRequest(userData);
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#connectIndication(com.
* peetz.network.osi.AccessPoint, com.peetz.network.osi.AccessPoint, int, int,
* int, int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void connectIndication(AccessPoint callingAddress, AccessPoint calledAddress, int qualityOfService,
int representationRequirements, int mode, int sessionRequirements, int initialSPSerialNumber,
int assignmentOfTokens, int sessionConnectionIdentifier, DataUnit userData) {
System.out.println("PresentationLayer#connectIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#connectConfirm(com.peetz.
* network.osi.AccessPoint, int, int, int, int, int, int,
* com.peetz.network.osi.DataUnit)
*/
public void connectConfirm(AccessPoint respondingAddress, int qualityOfService, int representationRequirements,
int sessionRequirements, int initialSPSerialNumber, int assignmentOfTokens, int sessionConnectionIdentifier,
DataUnit userData) {
System.out.println("PresentationLayer#connectConfirm");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#userAbortIndication(com.
* peetz.network.osi.DataUnit)
*/
public void userAbortIndication(DataUnit userData) {
System.out.println("PresentationLayer#userAbortIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#providerAbortIndication(
* int)
*/
public void providerAbortIndication(int providerReason) {
System.out.println("PresentationLayer#providerAbortIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#alterContextIndication(
* int, int, int, com.peetz.network.osi.DataUnit)
*/
public void alterContextIndication(int additionList, int deletionList, int additionResultList, DataUnit userData) {
System.out.println("PresentationLayer#alterContextIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#alterContextConfirm(int,
* int, com.peetz.network.osi.DataUnit)
*/
public void alterContextConfirm(int additionResultList, int deletionResultList, DataUnit userData) {
System.out.println("PresentationLayer#alterContextConfirm");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#typedDataIndication(com.
* peetz.network.osi.DataUnit)
*/
public void typedDataIndication(DataUnit userData) {
System.out.println("PresentationLayer#typedDataIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#dataIndication(com.peetz.
* network.osi.DataUnit)
*/
public void dataIndication(DataUnit userData) {
System.out.println("PresentationLayer#dataIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#resynchronizeIndication(
* int, int, int, com.peetz.network.osi.DataUnit)
*/
public void resynchronizeIndication(int type, int sPSerialNumber, int tokens, DataUnit userData) {
System.out.println("PresentationLayer#resynchronizeIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#resynchronizeConfirm(int,
* int, com.peetz.network.osi.DataUnit)
*/
public void resynchronizeConfirm(int sPSerialNumber, int tokens, DataUnit userData) {
System.out.println("PresentationLayer#resynchronizeConfirm");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#activityStartIndication(
* int, com.peetz.network.osi.DataUnit)
*/
public void activityStartIndication(int activityIdentifier, DataUnit userData) {
System.out.println("PresentationLayer#activityStartIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#activityResumeIndication(
* int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void activityResumeIndication(int activityIdentifier, int oldActivityIdentifier, int sPSerialNumber,
int oldSessionIdentifier, DataUnit userData) {
System.out.println("PresentationLayer#activityResumeIndication");
}
/*
* (non-Javadoc)
*
* @see com.peetz.network.osi.presentation.PresentationUser#
* activityInterruptIndication(int, com.peetz.network.osi.DataUnit)
*/
public void activityInterruptIndication(int reason, DataUnit userData) {
System.out.println("PresentationLayer#activityInterruptIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#activityInterruptConfirm(
* com.peetz.network.osi.DataUnit)
*/
public void activityInterruptConfirm(DataUnit userData) {
System.out.println("PresentationLayer#activityInterruptConfirm");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#activityDiscardIndication
* (int, com.peetz.network.osi.DataUnit)
*/
public void activityDiscardIndication(int reason, DataUnit userData) {
System.out.println("PresentationLayer#activityDiscardIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#activityDiscardConfirm(
* com.peetz.network.osi.DataUnit)
*/
public void activityDiscardConfirm(DataUnit userData) {
System.out.println("PresentationLayer#activityDiscardConfirm");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#activityEndIndication(
* int, com.peetz.network.osi.DataUnit)
*/
public void activityEndIndication(int sPSerialNumber, DataUnit userData) {
System.out.println("PresentationLayer#activityEndIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#activityEndConfirm(com.
* peetz.network.osi.DataUnit)
*/
public void activityEndConfirm(DataUnit userData) {
System.out.println("PresentationLayer#activityEndConfirm");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#capabilityDataIndication(
* com.peetz.network.osi.DataUnit)
*/
public void capabilityDataIndication(DataUnit userData) {
System.out.println("PresentationLayer#capabilityDataIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#capabilityDataConfirm(com
* .peetz.network.osi.DataUnit)
*/
public void capabilityDataConfirm(DataUnit userData) {
System.out.println("PresentationLayer#capabilityDataConfirm");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#controlGiveIndication(com
* .peetz.network.osi.DataUnit)
*/
public void controlGiveIndication(DataUnit userData) {
System.out.println("PresentationLayer#controlGiveIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#tokenGiveIndication(com.
* peetz.network.osi.DataUnit)
*/
public void tokenGiveIndication(DataUnit userData) {
System.out.println("PresentationLayer#tokenGiveIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#tokenPleaseIndication(
* int, com.peetz.network.osi.DataUnit)
*/
public void tokenPleaseIndication(int tokens, DataUnit userData) {
System.out.println("PresentationLayer#tokenPleaseIndication");
}
/*
* (non-Javadoc)
*
* @see com.peetz.network.osi.presentation.PresentationUser#
* userExceptionReportIndication(int, com.peetz.network.osi.DataUnit)
*/
public void userExceptionReportIndication(int reason, DataUnit userData) {
System.out.println("PresentationLayer#userExceptionReportIndication");
}
/*
* (non-Javadoc)
*
* @see com.peetz.network.osi.presentation.PresentationUser#
* providerExceptionReportIndication(int)
*/
public void providerExceptionReportIndication(int reason) {
System.out.println("PresentationLayer#providerExceptionReportIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#expeditedDataIndication(
* com.peetz.network.osi.DataUnit)
*/
public void expeditedDataIndication(DataUnit userData) {
System.out.println("PresentationLayer#expeditedDataIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#syncMinorIndication(int,
* int, com.peetz.network.osi.DataUnit)
*/
public void syncMinorIndication(int type, int sPSerialNumber, DataUnit userData) {
System.out.println("PresentationLayer#syncMinorIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#syncMinorConfirm(int,
* com.peetz.network.osi.DataUnit)
*/
public void syncMinorConfirm(int sPSerialNumber, DataUnit userData) {
System.out.println("PresentationLayer#syncMinorConfirm");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#syncMajorIndication(int,
* com.peetz.network.osi.DataUnit)
*/
public void syncMajorIndication(int sPSerialNumber, DataUnit userData) {
System.out.println("PresentationLayer#syncMajorIndication");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#syncMajorConfirm(com.
* peetz.network.osi.DataUnit)
*/
public void syncMajorConfirm(DataUnit userData) {
System.out.println("PresentationLayer#syncMajorConfirm");
}
/*
* (non-Javadoc)
*
* @see
* com.peetz.network.osi.presentation.PresentationUser#releaseIndication(com.
* peetz.network.osi.DataUnit)
*/
public void releaseIndication(DataUnit userData) {
System.out.println("PresentationLayer#releaseIndication");
}
/*
* (non-Javadoc)
*
* @see com.peetz.network.osi.presentation.PresentationUser#releaseConfirm(int,
* com.peetz.network.osi.DataUnit)
*/
public void releaseConfirm(int result, DataUnit userData) {
System.out.println("PresentationLayer#releaseConfirm");
}
}
@@ -0,0 +1,23 @@
package de.thpeetz.network.osi.presentation;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
/**
* @author Thomas Peetz
*
*/
public interface PresentationProvider extends PresentationService
{
void connectRequest(AccessPoint calledNSAP,
AccessPoint calledTSAP,
AccessPoint calledSSAP,
AccessPoint callerPSAP,
AccessPoint calledPSAP,
int qualityOfService,
DataUnit userData);
void releaseRequest(DataUnit userData);
void dataRequest(DataUnit userData);
void userAbortRequest(DataUnit userData);
}
@@ -0,0 +1,11 @@
package de.thpeetz.network.osi.presentation;
/**
* Implementation of ITU-T X.226
* @author Thomas Peetz
*
*/
public interface PresentationService
{
}
@@ -0,0 +1,64 @@
package de.thpeetz.network.osi.presentation;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
/**
* @author Thomas Peetz
*
*/
public interface PresentationUser extends PresentationService
{
void connectIndication(AccessPoint callingAddress,
AccessPoint calledAddress,
int qualityOfService,
int representationRequirements,
int mode,
int sessionRequirements,
int initialSPSerialNumber,
int assignmentOfTokens,
int sessionConnectionIdentifier,
DataUnit userData);
void connectConfirm(AccessPoint respondingAddress,
int qualityOfService,
int representationRequirements,
int sessionRequirements,
int initialSPSerialNumber,
int assignmentOfTokens,
int sessionConnectionIdentifier,
DataUnit userData);
void userAbortIndication(DataUnit userData);
void providerAbortIndication(int providerReason);
void alterContextIndication(int additionList, int deletionList,
int additionResultList, DataUnit userData);
void alterContextConfirm(int additionResultList, int deletionResultList,
DataUnit userData);
void typedDataIndication(DataUnit userData);
void dataIndication(DataUnit userData);
void resynchronizeIndication(int type, int sPSerialNumber, int tokens, DataUnit userData);
void resynchronizeConfirm(int sPSerialNumber, int tokens, DataUnit userData);
void activityStartIndication(int activityIdentifier, DataUnit userData);
void activityResumeIndication(int activityIdentifier, int oldActivityIdentifier,
int sPSerialNumber, int oldSessionIdentifier,
DataUnit userData);
void activityInterruptIndication(int reason, DataUnit userData);
void activityInterruptConfirm(DataUnit userData);
void activityDiscardIndication(int reason, DataUnit userData);
void activityDiscardConfirm(DataUnit userData);
void activityEndIndication(int sPSerialNumber, DataUnit userData);
void activityEndConfirm(DataUnit userData);
void capabilityDataIndication(DataUnit userData);
void capabilityDataConfirm(DataUnit userData);
void controlGiveIndication(DataUnit userData);
void tokenGiveIndication(DataUnit userData);
void tokenPleaseIndication(int tokens, DataUnit userData);
void userExceptionReportIndication(int reason, DataUnit userData);
void providerExceptionReportIndication(int reason);
void expeditedDataIndication(DataUnit userData);
void syncMinorIndication(int type, int sPSerialNumber, DataUnit userData);
void syncMinorConfirm(int sPSerialNumber, DataUnit userData);
void syncMajorIndication(int sPSerialNumber, DataUnit userData);
void syncMajorConfirm(DataUnit userData);
void releaseIndication(DataUnit userData);
void releaseConfirm(int result, DataUnit userData);
}
@@ -0,0 +1,523 @@
package de.thpeetz.network.osi.session;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
import de.thpeetz.network.osi.presentation.PresentationUser;
import de.thpeetz.network.osi.transport.TransportLayer;
import de.thpeetz.network.osi.transport.TransportProvider;
/**
* @author Thomas Peetz
*
*/
public class SessionLayer implements SessionProvider, SessionUser
{
private PresentationUser user;
private TransportProvider provider;
@SuppressWarnings("unused")
private AccessPoint ssap;
private AccessPoint tsap;
public SessionLayer(boolean manager, PresentationUser user, AccessPoint ssap, AccessPoint tsap)
{
this.user = user;
this.provider = new TransportLayer(manager, this, tsap);
this.ssap = ssap;
this.tsap = tsap;
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#connectRequest(com.peetz.network.osi.AccessPoint, com.peetz.network.osi.AccessPoint, int, com.peetz.network.osi.AccessPoint, com.peetz.network.osi.AccessPoint, int, int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void connectRequest(AccessPoint calledNSAP, AccessPoint calledTSAP,
int connectionIdentifier, AccessPoint callingSSAP,
AccessPoint calledSSAP, int qualityOfService,
int sessionRequirements, int firstSPSerialNumber,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userData)
{
this.provider.connectRequest(calledNSAP, calledTSAP, this.tsap, true, 1, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#connectResponse(int, com.peetz.network.osi.AccessPoint, int, int, int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void connectResponse(int connectionIdentifier,
AccessPoint respondingAddress, int result, int qualityOfService,
int sessionRequirements, int firstSPSerialNumber,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userData)
{
this.provider.connectResponse(qualityOfService, respondingAddress, true, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#dataRequest(com.peetz.network.osi.DataUnit)
*/
public void dataRequest(DataUnit userData)
{
this.provider.dataRequest(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#expeditedDataRequest(com.peetz.network.osi.DataUnit)
*/
public void expeditedDataRequest(DataUnit userData)
{
this.provider.expeditedDataRequest(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#typedDataRequest(com.peetz.network.osi.DataUnit)
*/
public void typedDataRequest(DataUnit userData)
{
System.out.println("SessionLayer#typedDataRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#capabilityDataRequest(com.peetz.network.osi.DataUnit)
*/
public void capabilityDataRequest(DataUnit userData)
{
System.out.println("SessionLayer#capabilityDataRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#capabilityDataResponse(com.peetz.network.osi.DataUnit)
*/
public void capabilityDataResponse(DataUnit userData)
{
System.out.println("SessionLayer#capabilityDataResponse");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#tokenGiveRequest(int, com.peetz.network.osi.DataUnit)
*/
public void tokenGiveRequest(int tokens, DataUnit userData)
{
System.out.println("SessionLayer#tokenGiveRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#tokenPleaseRequest(int, com.peetz.network.osi.DataUnit)
*/
public void tokenPleaseRequest(int tokens, DataUnit userData)
{
System.out.println("SessionLayer#tokenPleaseRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#controlGiveRequest(com.peetz.network.osi.DataUnit)
*/
public void controlGiveRequest(DataUnit userData)
{
System.out.println("SessionLayer#controlGiveRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#syncMinorRequest(int, int, int, com.peetz.network.osi.DataUnit)
*/
public void syncMinorRequest(int type, int dataSeparation,
int firstSPSerialNumber, DataUnit userdata)
{
System.out.println("SessionLayer#syncMinorRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#syncMinorResponse(int, com.peetz.network.osi.DataUnit)
*/
public void syncMinorResponse(int firstSPSerialNumber, DataUnit userData)
{
System.out.println("SessionLayer#syncMinorResponse");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#syncMajorRequest(int, com.peetz.network.osi.DataUnit)
*/
public void syncMajorRequest(int firstSPSerialNumber, DataUnit userdata)
{
System.out.println("SessionLayer#syncMajorRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#syncMajorResponse(int, com.peetz.network.osi.DataUnit)
*/
public void syncMajorResponse(int secondSPSerialNumber, DataUnit userData)
{
System.out.println("SessionLayer#syncMajorResponse");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#resynchronizeRequest(int, int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void resynchronizeRequest(int firstResynchronizeType,
int firstSPSerialNumber, int secondResynchronizeType,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userdata)
{
System.out.println("SessionLayer#resynchronizeRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#resynchronizeResponse(int, int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void resynchronizeResponse(int firstResynchronizeType,
int firstSPSerialNumber, int secondResynchronizeType,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userdata)
{
System.out.println("SessionLayer#resynchronizeResponse");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#userExceptionReportRequest(int, com.peetz.network.osi.DataUnit)
*/
public void userExceptionReportRequest(int reason, DataUnit userData)
{
System.out.println("SessionLayer#userExceptionReportRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#activityStartRequest(int, com.peetz.network.osi.DataUnit)
*/
public void activityStartRequest(int activityIdentifier, DataUnit userData)
{
System.out.println("SessionLayer#activityStartRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#activityResumeRequest(int, int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void activityResumeRequest(int activityIdentifier,
int oldActivityIdentifier, int firstSPSerialNumber,
int secondSPSerialNumber, int oldSessionConnectionIdentifier,
DataUnit userData)
{
System.out.println("SessionLayer#activityResumeRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#activityInterruptRequest(com.peetz.network.osi.DataUnit)
*/
public void activityInterruptRequest(DataUnit userData)
{
System.out.println("SessionLayer#activityInterruptRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#activityInterruptResponse(int, com.peetz.network.osi.DataUnit)
*/
public void activityInterruptResponse(int reason, DataUnit userData)
{
System.out.println("SessionLayer#activityInterruptResponse");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#activityDiscardRequest(int, com.peetz.network.osi.DataUnit)
*/
public void activityDiscardRequest(int reason, DataUnit userData)
{
System.out.println("SessionLayer#activityDiscardRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#activityDiscardResponse(com.peetz.network.osi.DataUnit)
*/
public void activityDiscardResponse(DataUnit userData)
{
System.out.println("SessionLayer#activityDiscardResponse");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#activityEndRequest(int, com.peetz.network.osi.DataUnit)
*/
public void activityEndRequest(int firstSPSerialNumber, DataUnit userData)
{
System.out.println("SessionLayer#activityEndRequest");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#activityEndResponse(int, com.peetz.network.osi.DataUnit)
*/
public void activityEndResponse(int secondSPSerialNumber, DataUnit userData)
{
System.out.println("SessionLayer#activityEndResponse");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#releaseRequest(com.peetz.network.osi.DataUnit)
*/
public void releaseRequest(DataUnit userData)
{
this.provider.disconnectRequest(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#releaseResponse(int, com.peetz.network.osi.DataUnit)
*/
public void releaseResponse(int result, DataUnit userData)
{
System.out.println("SessionLayer#releaseResponse");
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionProvider#userAbortRequest(com.peetz.network.osi.DataUnit)
*/
public void userAbortRequest(DataUnit userData)
{
this.provider.disconnectRequest(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#connectIndication(int, com.peetz.network.osi.AccessPoint, com.peetz.network.osi.AccessPoint, int, int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void connectIndication(int connectionIdentifier,
AccessPoint callingAddress, AccessPoint calledAddress,
int qualityOfService, int sessionRequirements,
int firstSPSerialNumber, int secondSPSerialNumber,
int assignmentOfTokens, DataUnit userData)
{
this.user.connectIndication(callingAddress, calledAddress, qualityOfService, 1, 1, sessionRequirements, firstSPSerialNumber, assignmentOfTokens, 1, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#connectConfirm(int, com.peetz.network.osi.AccessPoint, int, int, int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void connectConfirm(int connectionIdentifier,
AccessPoint respondingAddress, int result, int qualityOfService,
int sessionRequirements, int firstSPSerialNumber,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userData)
{
this.user.connectConfirm(respondingAddress, qualityOfService, 1, sessionRequirements, firstSPSerialNumber, assignmentOfTokens, 1, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#dataIndication(com.peetz.network.osi.DataUnit)
*/
public void dataIndication(DataUnit userData)
{
this.user.dataIndication(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#expeditedDataIndication(com.peetz.network.osi.DataUnit)
*/
public void expeditedDataIndication(DataUnit userData)
{
this.user.expeditedDataIndication(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#typedDataIndication(com.peetz.network.osi.DataUnit)
*/
public void typedDataIndication(DataUnit userData)
{
this.user.typedDataIndication(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#capabilityDataIndication(com.peetz.network.osi.DataUnit)
*/
public void capabilityDataIndication(DataUnit userData)
{
this.user.capabilityDataIndication(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#capabilityDataConfirm(com.peetz.network.osi.DataUnit)
*/
public void capabilityDataConfirm(DataUnit userData)
{
this.user.capabilityDataConfirm(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#tokenGiveIndication(int, com.peetz.network.osi.DataUnit)
*/
public void tokenGiveIndication(int tokens, DataUnit userData)
{
this.user.tokenGiveIndication(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#tokenPleaseIndication(int, com.peetz.network.osi.DataUnit)
*/
public void tokenPleaseIndication(int tokens, DataUnit userData)
{
this.user.tokenPleaseIndication(tokens, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#controlGiveIndication(com.peetz.network.osi.DataUnit)
*/
public void controlGiveIndication(DataUnit userData)
{
this.user.controlGiveIndication(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#syncMinorIndication(int, int, int, com.peetz.network.osi.DataUnit)
*/
public void syncMinorIndication(int type, int dataSeparation,
int firstSPSerialNumber, DataUnit userData)
{
this.user.syncMinorIndication(type, firstSPSerialNumber, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#syncMinorConfirm(int, com.peetz.network.osi.DataUnit)
*/
public void syncMinorConfirm(int firstSPSerialNumber, DataUnit userData)
{
this.user.syncMinorConfirm(firstSPSerialNumber, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#syncMajorIndication(int, com.peetz.network.osi.DataUnit)
*/
public void syncMajorIndication(int firstSPSerialNumber, DataUnit userData)
{
this.user.syncMajorIndication(firstSPSerialNumber, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#syncMajorConfirm(int, com.peetz.network.osi.DataUnit)
*/
public void syncMajorConfirm(int secondSPSerialNumber, DataUnit userData)
{
this.user.syncMajorConfirm(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#resynchronizeIndication(int, int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void resynchronizeIndication(int firstResynchronizeType,
int firstSPSerialNumber, int secondResynchronizeType,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userData)
{
this.user.resynchronizeIndication(firstResynchronizeType, firstResynchronizeType, assignmentOfTokens, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#resynchronizeConfirm(int, int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void resynchronizeConfirm(int firstResynchronizeType,
int firstSPSerialNumber, int secondResynchronizeType,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userData)
{
this.user.resynchronizeConfirm(firstSPSerialNumber, assignmentOfTokens, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#providerExceptionReportIndication(int)
*/
public void providerExceptionReportIndication(int reason)
{
this.user.providerExceptionReportIndication(reason);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#userExceptionReportIndication(int, com.peetz.network.osi.DataUnit)
*/
public void userExceptionReportIndication(int reason, DataUnit userData)
{
this.user.userExceptionReportIndication(reason, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#activityStartIndication(int, com.peetz.network.osi.DataUnit)
*/
public void activityStartIndication(int activityIdentifier,
DataUnit userData)
{
this.user.activityStartIndication(activityIdentifier, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#activityResumeIndication(int, int, int, int, int, com.peetz.network.osi.DataUnit)
*/
public void activityResumeIndication(int activityIdentifier,
int oldActivityIdentifier, int firstSPSerialNumber,
int secondSPSerialNumber, int oldSessionConnectionIdentifier,
DataUnit userData)
{
this.user.activityResumeIndication(activityIdentifier, oldActivityIdentifier, firstSPSerialNumber, oldSessionConnectionIdentifier, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#activityInterruptIndication(com.peetz.network.osi.DataUnit)
*/
public void activityInterruptIndication(DataUnit userData)
{
this.user.activityInterruptIndication(1, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#activityInterruptConfirm(int, com.peetz.network.osi.DataUnit)
*/
public void activityInterruptConfirm(int reason, DataUnit userData)
{
this.user.activityInterruptConfirm(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#activityDiscardIndication(int, com.peetz.network.osi.DataUnit)
*/
public void activityDiscardIndication(int reason, DataUnit userData)
{
this.user.activityDiscardIndication(reason, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#activityDiscardConfirm(com.peetz.network.osi.DataUnit)
*/
public void activityDiscardConfirm(DataUnit userData)
{
this.user.activityDiscardConfirm(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#activityEndIndication(int, com.peetz.network.osi.DataUnit)
*/
public void activityEndIndication(int firstSPSerialNumber, DataUnit userData)
{
this.user.activityEndIndication(firstSPSerialNumber, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#activityEndConfirm(int, com.peetz.network.osi.DataUnit)
*/
public void activityEndConfirm(int secondSPSerialNumber, DataUnit userData)
{
this.user.activityEndConfirm(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#releaseIndication(com.peetz.network.osi.DataUnit)
*/
public void releaseIndication(DataUnit userData)
{
this.user.releaseIndication(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#releaseConfirm(int, com.peetz.network.osi.DataUnit)
*/
public void releaseConfirm(int result, DataUnit userData)
{
this.user.releaseConfirm(result, userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#userAbortIndication(com.peetz.network.osi.DataUnit)
*/
public void userAbortIndication(DataUnit userData)
{
this.user.userAbortIndication(userData);
}
/* (non-Javadoc)
* @see com.peetz.network.osi.session.SessionUser#providerAbortIndication(int, com.peetz.network.osi.DataUnit)
*/
public void providerAbortIndication(int reason, DataUnit userData)
{
this.user.providerAbortIndication(reason);
}
}
@@ -0,0 +1,82 @@
package de.thpeetz.network.osi.session;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
/**
* @author Thomas Peetz
*
*/
public interface SessionProvider extends SessionService
{
void connectRequest(AccessPoint calledNSAP, AccessPoint calledTSAP,
int connectionIdentifier, AccessPoint callingSSAP,
AccessPoint calledSSAP, int qualityOfService,
int sessionRequirements, int firstSPSerialNumber,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userData);
void connectResponse(int connectionIdentifier,
AccessPoint respondingAddress, int result, int qualityOfService,
int sessionRequirements, int firstSPSerialNumber,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userData);
void dataRequest(DataUnit userData);
void expeditedDataRequest(DataUnit userData);
void typedDataRequest(DataUnit userData);
void capabilityDataRequest(DataUnit userData);
void capabilityDataResponse(DataUnit userData);
void tokenGiveRequest(int tokens, DataUnit userData);
void tokenPleaseRequest(int tokens, DataUnit userData);
void controlGiveRequest(DataUnit userData);
void syncMinorRequest(int type, int dataSeparation,
int firstSPSerialNumber, DataUnit userdata);
void syncMinorResponse(int firstSPSerialNumber, DataUnit userData);
void syncMajorRequest(int firstSPSerialNumber, DataUnit userdata);
void syncMajorResponse(int secondSPSerialNumber, DataUnit userData);
void resynchronizeRequest(int firstResynchronizeType,
int firstSPSerialNumber, int secondResynchronizeType,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userdata);
void resynchronizeResponse(int firstResynchronizeType,
int firstSPSerialNumber, int secondResynchronizeType,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userdata);
void userExceptionReportRequest(int reason, DataUnit userData);
void activityStartRequest(int activityIdentifier, DataUnit userData);
void activityResumeRequest(int activityIdentifier,
int oldActivityIdentifier, int firstSPSerialNumber,
int secondSPSerialNumber, int oldSessionConnectionIdentifier,
DataUnit userData);
void activityInterruptRequest(DataUnit userData);
void activityInterruptResponse(int reason, DataUnit userData);
void activityDiscardRequest(int reason, DataUnit userData);
void activityDiscardResponse(DataUnit userData);
void activityEndRequest(int firstSPSerialNumber, DataUnit userData);
void activityEndResponse(int secondSPSerialNumber, DataUnit userData);
void releaseRequest(DataUnit userData);
void releaseResponse(int result, DataUnit userData);
void userAbortRequest(DataUnit userData);
}
@@ -0,0 +1,160 @@
package de.thpeetz.network.osi.session;
/**
* @author Thomas Peetz
*
*/
public interface SessionService
{
// category 0
/**
* GIVE TOKEN SPDU
*/
byte GT_SPDU = 0x01;
/**
* PLEASE TOKEN SPDU
*/
byte PT_SPDU = 0x02;
// category 1
/**
* CONNECT SPDU
*/
byte CN_SPDU = 0x0D;
/**
* OVERFLOW ACCEPT SPDU
*/
byte OA_SPDU = 0x10;
/**
* CONNECT DATA OVERFLOW SPDU
*/
byte CDO_SPDU = 0x0F;
/**
* ACCEPT SPDU
*/
byte AC_SPDU = 0x0E;
/**
* REFUSE SPDU
*/
byte RF_SPDU = 0x0C;
/**
* FINISH SPDU
*/
byte FN_SPDU = 0x09;
/**
* DISCONNECT SPDU
*/
byte DN_SPDU = 0x0A;
/**
* NOT FINISHED SPDU
*/
byte NF_SPDU = 0x08;
/**
* ABORT SPDU
*/
byte AB_SPDU = 0x19;
/**
* ABORT ACCEPT SPDU
*/
byte AA_SPDU = 0x1A;
/**
* GIVE TOKENS CONFIRM SPDU
*/
byte GTC_SPDU = 0x15;
/**
* GIVE TOKEN ACK SPDU
*/
byte GTA_SPDU = 0x16;
/**
* PREPARE SPDU
*/
byte PR_SPDU = 0x07;
/**
* TYPED DATA SPDU
*/
byte TD_SPDU = 0x21;
// category 2
/**
* DATA TRANSFER SPDU
*/
byte DT_SPDU = 0x01;
/**
* MINOR SYNC POINT SPDU
*/
byte MIP_SPDU = 0x31;
/**
* MINOR SYNC ACK SPDU
*/
byte MIA_SPDU = 0x32;
/**
* MAJOR SYNC POINT SPDU
*/
byte MAP_SPDU = 0x29;
/**
* MAJOR SYNC ACK SPDU
*/
byte MAA_SPDU = 0x2A;
/**
* RESYNCHRONIZE SPDU
*/
byte RS_SPDU = 0x35;
/**
* RESYNCHRONIZE ACK SPDU
*/
byte RA_SPDU = 0x22;
/**
* ACTIVITY START SPDU
*/
byte AS_SPDU = 0x2D;
/**
* ACTIVITY RESUME SPDU
*/
byte AR_SPDU = 0x1D;
/**
* ACTIVITY DISCARD SPDU
*/
byte AD_SPDU = 0x39;
/**
* ACTIVITY DISCARD ACK SPDU
*/
byte ADA_SPDU = 0x3A;
/**
* ACTIVITY INTERRUPT SPDU
*/
byte AI_SPDU = 0x19;
/**
* ACTIVITY INTERRUPT ACK SPDU
*/
byte AIA_SPDU = 0x1A;
/**
* ACTIVITY END SPDU
*/
byte AE_SPDU = 0x29;
/**
* ACTIVITY END ACK
*/
byte AEA_SPDU = 0x2A;
/**
* CAPABILITY DATA SPDU
*/
byte CD_SPDU = 0x3D;
/**
* CAPABILITY DATA ACK SPDU
*/
byte CDA_SPDU = 0x3E;
/**
* EXCEPTION REPORT SPDU
*/
byte ER_SPDU = 0x00;
/**
* EXCEPTION DATA SPDU
*/
byte ED_SPDU = 0x30;
/**
* EXPEDITED SPDU
*/
byte EX_SPDU = 0x05;
}
@@ -0,0 +1,87 @@
package de.thpeetz.network.osi.session;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
/**
* @author Thomas Peetz
*
*/
public interface SessionUser extends SessionService
{
void connectIndication(int connectionIdentifier,
AccessPoint callingAddress, AccessPoint calledAddress,
int qualityOfService, int sessionRequirements,
int firstSPSerialNumber, int secondSPSerialNumber,
int assignmentOfTokens, DataUnit userData);
void connectConfirm(int connectionIdentifier,
AccessPoint respondingAddress, int result, int qualityOfService,
int sessionRequirements, int firstSPSerialNumber,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userData);
void dataIndication(DataUnit userData);
void expeditedDataIndication(DataUnit userData);
void typedDataIndication(DataUnit userData);
void capabilityDataIndication(DataUnit userData);
void capabilityDataConfirm(DataUnit userData);
void tokenGiveIndication(int tokens, DataUnit userData);
void tokenPleaseIndication(int tokens, DataUnit userData);
void controlGiveIndication(DataUnit userData);
void syncMinorIndication(int type, int dataSeparation,
int firstSPSerialNumber, DataUnit userData);
void syncMinorConfirm(int firstSPSerialNumber, DataUnit userData);
void syncMajorIndication(int firstSPSerialNumber, DataUnit userData);
void syncMajorConfirm(int secondSPSerialNumber, DataUnit userData);
void resynchronizeIndication(int firstResynchronizeType,
int firstSPSerialNumber, int secondResynchronizeType,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userData);
void resynchronizeConfirm(int firstResynchronizeType,
int firstSPSerialNumber, int secondResynchronizeType,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userData);
void providerExceptionReportIndication(int reason);
void userExceptionReportIndication(int reason, DataUnit userData);
void activityStartIndication(int activityIdentifier,
DataUnit userData);
void activityResumeIndication(int activityIdentifier,
int oldActivityIdentifier, int firstSPSerialNumber,
int secondSPSerialNumber, int oldSessionConnectionIdentifier,
DataUnit userData);
void activityInterruptIndication(DataUnit userData);
void activityInterruptConfirm(int reason, DataUnit userData);
void activityDiscardIndication(int reason, DataUnit userData);
void activityDiscardConfirm(DataUnit userData);
void activityEndIndication(int firstSPSerialNumber, DataUnit userData);
void activityEndConfirm(int secondSPSerialNumber, DataUnit userData);
void releaseIndication(DataUnit userData);
void releaseConfirm(int result, DataUnit userData);
void userAbortIndication(DataUnit userData);
void providerAbortIndication(int reason, DataUnit userData);
}
@@ -0,0 +1,24 @@
package de.thpeetz.network.osi.transport;
import de.thpeetz.network.osi.DataUnit;
public interface DataService
{
/**
*
* @param telegram
*/
void eventReceive(DataUnit telegram);
/**
* eventSessionDown
*
*/
void eventSessionDown();
/**
*
*
*/
void eventClose();
}
@@ -0,0 +1,102 @@
package de.thpeetz.network.osi.transport;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.logging.Level;
import java.util.logging.Logger;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
/**
* @author Thomas Peetz
*
*/
public class RFC1006Service {
public static final int RFC1006PORT = 102;
private boolean manager = false;
@SuppressWarnings("unused")
private boolean serverRun = true;
private Socket socket;
private TransportUser user;
Logger logger;
/**
* Construct instance of RFC1006Service. This connects OSI-stack to sockets.
* @param manager This value ist true when the stack is in manager mode.
* @param user Reference to upper layer.
*/
public RFC1006Service(boolean manager, TransportUser user) {
this.manager = manager;
this.user = user;
if (this.manager) {
// TODO start socket in server mode
}
logger = Logger.getLogger(RFC1006Service.class.getName());
}
public void close() {
this.serverRun = false;
}
public void listen() {
try (ServerSocket server = new ServerSocket()) {
server.bind(new InetSocketAddress("127.0.0.1", RFC1006PORT));
server.accept();
System.out.println("127.0.0.1:102 accepted");
} catch (IOException e) {
logger.log(Level.FINE, e.getMessage());
}
}
public void connect(AccessPoint calledNSAP, DataUnit userData) {
try {
final String host = new String(calledNSAP.getData());
//System.out.println("opening connection on " + host + " port " + rfc1006Port);
// Opening a socket connection may require to leave the sandbox.
socket = (Socket)AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
Object result = null;
try {
result = new Socket(host, RFC1006PORT);
} catch (UnknownHostException exUnknownHost) {
} catch (IOException exIO) {
}
return result;
}
});
if (socket != null) {
// receiveQueue = new TelegramReceiveThread(socket, this);
// receiveQueue.start();
// sendQueue = new TelegramSendThread(socket, this);
// sendQueue.start();
userData.write((byte)userData.getLength());
// writeRFC1006Header(userData);
// sendQueue.pushTelegram(userData);
} else {
user.disconnectIndication(1, null);
// eventSessionDown();
}
}
//
// catch (IOException exIO)
// {
// eventSessionDown();
// }
finally { }
}
}
@@ -0,0 +1,213 @@
package de.thpeetz.network.osi.transport;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
import de.thpeetz.network.osi.session.SessionUser;
/**
* @author Thomas Peetz
*
*/
public class TransportLayer extends TransportService implements TransportProvider, TransportUser {
/**
*
*/
private SessionUser user;
/**
*
*/
private RFC1006Service service;
/**
*
*/
@SuppressWarnings("unused")
private AccessPoint tsap;
/**
* Only constructor for TransportLayer.
* @param manager Should the stack be in manager or agent mode?
* @param user Reference to upper layer
* @param tsap address of transport layer
*/
public TransportLayer(final boolean manager, final SessionUser user, final AccessPoint tsap) {
this.user = user;
this.service = new RFC1006Service(manager, this);
this.tsap = tsap;
}
/**
* Request to open a connection to peer transport layer.
* @see de.thpeetz.network.osi.transport.peetz.network.osi.transport.TransportProvider#connectRequest
* (de.thpeetz.network.osi.peetz.network.osi.AccessPoint, de.thpeetz.network.osi.peetz.network.osi.AccessPoint,
* de.thpeetz.network.osi.peetz.network.osi.AccessPoint, boolean, int, de.thpeetz.network.osi.peetz.network.osi.DataUnit)
* @param calledNSAP NSAP address of peer network layer
* @param calledTSAP TSAP address of peer transport layer
* @param callerTSAP TSAP address of this transport layer
* @param expeditedDataOption expedited data mode?
* @param qualityOfService mode of QoS?
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
public final void connectRequest(final AccessPoint calledNSAP, final AccessPoint calledTSAP,
final AccessPoint callerTSAP, final boolean expeditedDataOption,
final int qualityOfService, final DataUnit userData) {
System.out.println("TransportLayer#connectRequest");
userData.write(calledTSAP.getData());
userData.write(calledTSAP.getLength());
userData.write((byte) 0xc2);
userData.write(callerTSAP.getData());
userData.write(callerTSAP.getLength());
userData.write((byte) 0xc1);
userData.write((byte) 0x0f);
userData.write((byte) 0x01);
userData.write((byte) 0xc0);
userData.write((byte) 0x00); // class option
userData.write(1); // src-ref
userData.write(0); // dst-ref
userData.write((byte) 0xe0);
service.connect(calledNSAP, userData);
}
/**
* This message is sent when a requested connection is established.
* @see de.thpeetz.network.osi.transport.peetz.network.osi.transport.TransportProvider#connectResponse
* (int, de.thpeetz.network.osi.peetz.network.osi.AccessPoint, boolean, de.thpeetz.network.osi.peetz.network.osi.DataUnit)
* @param qualityOfService
* The qualityOfService parameter describes the possible
* quality of service value.
* @param respondingAddress
* The parameter usually matches the called address.
* @param expeditedDataOption
* The expeditedDataOption parameter indicates wether the
* expedited data option is to be available on the connection.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
public final void connectResponse(final int qualityOfService,
final AccessPoint respondingAddress, final boolean expeditedDataOption,
final DataUnit userData) {
System.out.println("TransportLayer#connectResponse");
}
/**
* Request disconnect from peer.
* @see de.thpeetz.network.osi.transport.peetz.network.osi.transport.TransportProvider#disconnectRequest(de.thpeetz.network.osi.peetz.network.osi.DataUnit)
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
public final void disconnectRequest(final DataUnit userData) {
System.out.println("TransportLayer#disconnectRequest");
byte[] drTpdu = new byte[7];
drTpdu[0] = (byte) 0x06;
drTpdu[1] = (byte) 0xC0;
drTpdu[2] = (byte) 0x00;
drTpdu[3] = (byte) 0x00;
drTpdu[4] = (byte) 0x00;
drTpdu[5] = (byte) 0x01;
drTpdu[6] = (byte) 0x00;
userData.setToWrite();
userData.write(drTpdu);
}
/**
* @see de.thpeetz.network.osi.transport.peetz.network.osi.transport.TransportProvider#dataRequest(de.thpeetz.network.osi.peetz.network.osi.DataUnit)
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
public final void dataRequest(final DataUnit userData) {
System.out.println("TransportLayer#dataRequest");
}
/**
* @see de.thpeetz.network.osi.transport.peetz.network.osi.transport.TransportProvider#expeditedDataRequest(de.thpeetz.network.osi.peetz.network.osi.DataUnit)
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
public final void expeditedDataRequest(final DataUnit userData) {
System.out.println("TransportLayer#expeditedDataRequest");
}
/**
* @see de.thpeetz.network.osi.transport.peetz.network.osi.transport.TransportUser#connectConfirm
* (int, de.thpeetz.network.osi.peetz.network.osi.AccessPoint, boolean, de.thpeetz.network.osi.peetz.network.osi.DataUnit)
* @param qualityOfService
* The qualityOfService parameter describes the possible
* quality of service value.
* @param respondingAddress
* The parameter usually matches the called address.
* @param expeditedDataOption
* The expeditedDataOption parameter indicates wether the
* expedited data option is to be available on the connection.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
public final void connectConfirm(final int qualityOfService,
final AccessPoint respondingAddress, final boolean expeditedDataOption,
final DataUnit userData) {
this.user.connectConfirm(1, respondingAddress, 1, qualityOfService, 1, 1, 1, 1, userData);
}
/**
* @see de.thpeetz.network.osi.transport.peetz.network.osi.transport.TransportUser#connectIndication
* (de.thpeetz.network.osi.peetz.network.osi.AccessPoint,
* de.thpeetz.network.osi.peetz.network.osi.AccessPoint, boolean, int, de.thpeetz.network.osi.peetz.network.osi.DataUnit)
* @param calledAddress
* The parameter usually matches the called address.
* @param callingAddress
* The parameter usually matches the callers address.
* @param expeditedDataOption
* The expeditedDataOption parameter indicates wether the
* expedited data option is to be available on the connection.
* @param qualityOfService
* The qualityOfService parameter describes the possible
* quality of service value.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
public final void connectIndication(final AccessPoint calledAddress,
final AccessPoint callingAddress, final boolean expeditedDataOption,
final int qualityOfService, final DataUnit userData) {
this.user.connectIndication(1, callingAddress, calledAddress, qualityOfService, 1, 1, 1, 1, userData);
}
/**
* @see de.thpeetz.network.osi.transport.peetz.network.osi.transport.TransportUser#disconnectIndication(int, de.thpeetz.network.osi.DataUnit)
* @param disconnectReason
* Gives reason for disconnecting.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
public final void disconnectIndication(final int disconnectReason, final DataUnit userData) {
this.user.releaseIndication(userData);
}
/**
* @see de.thpeetz.network.osi.transport.peetz.network.osi.transport.TransportUser#dataIndication(de.thpeetz.network.osi.DataUnit)
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
public final void dataIndication(final DataUnit userData) {
this.user.dataIndication(userData);
}
/**
* @see de.thpeetz.network.osi.transport.peetz.network.osi.transport.TransportUser#expeditedDataIndication(de.thpeetz.network.osi.peetz.network.osi.DataUnit)
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
public final void expeditedDataIndication(final DataUnit userData) {
this.user.expeditedDataIndication(userData);
}
}
@@ -0,0 +1,74 @@
package de.thpeetz.network.osi.transport;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
/**
* Methods provided by transport layer. Interface to upper layer.
* @author Thomas Peetz
*/
public interface TransportProvider {
/**
* Request a connection to corresponding transport layer peer.
* @param calledNSAP
* NSAP address to be called.
* @param calledTSAP
* TSAP address to be called.
* @param callerTSAP
* TSAP address of connection requester.
* @param expeditedDataOption
* The expeditedDataOption parameter indicates wether the
* expedited data option is to be available on the connection.
* @param qualityOfService
* The qualityOfService parameter describes the possible
* quality of service value.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
void connectRequest(AccessPoint calledNSAP, AccessPoint calledTSAP,
AccessPoint callerTSAP, boolean expeditedDataOption,
int qualityOfService, DataUnit userData);
/**
* Confirm a requested connection.
* @param qualityOfService
* The qualityOfService parameter describes the possible
* quality of service value.
* @param respondingAddress
* The parameter usually matches the called address.
* @param expeditedDataOption
* The expeditedDataOption parameter indicates wether the
* expedited data option is to be available on the connection.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
void connectResponse(int qualityOfService,
AccessPoint respondingAddress, boolean expeditedDataOption,
DataUnit userData);
/**
* Request a disconnect from peer.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
void disconnectRequest(DataUnit userData);
/**
* Send message to peer.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
void dataRequest(DataUnit userData);
/**
* Send message to peer.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
void expeditedDataRequest(DataUnit userData);
}
@@ -0,0 +1,48 @@
package de.thpeetz.network.osi.transport;
/**
* Definitions for transport layer.
* @author Thomas Peetz
*/
public abstract class TransportService {
/**
* Connection Request TPDU.
*/
public static final int CR_TPDU = 0xE0;
/**
* Connection Confirm TPDU.
*/
public static final int CC_TPDU = 0xD0;
/**
* Disconnect Request TPDU.
*/
public static final int DR_TPDU = 0x80;
/**
* Disconnect Confirm TPDU.
*/
public static final int DC_TPDU = 0xC0;
/**
* Data TPDU.
*/
public static final int DT_TPDU = 0xF0;
/**
* Expedited Data TPDU.
*/
public static final int ED_TPDU = 0x10;
/**
* Data Acknowledge TPDU.
*/
public static final int AK_TPDU = 0x60;
/**
* Expedited Acknowledge TPDU.
*/
public static final int EA_TPDU = 0x20;
/**
* Reject TPDU.
*/
public static final int RJ_TPDU = 0x50;
/**
* Error TPDU.
*/
public static final int ER_TPDU = 0x70;
}
@@ -0,0 +1,78 @@
package de.thpeetz.network.osi.transport;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
/**
* @author Thomas Peetz
*
*/
public interface TransportUser {
/**
* connectConfirm.
*
* @param qualityOfService
* The qualityOfService parameter describes the possible
* quality of service value.
* @param respondingAddress
* The parameter usually matches the called address.
* @param expeditedDataOption
* The expeditedDataOption parameter indicates wether the
* expedited data option is to be available on the connection.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
void connectConfirm(int qualityOfService,
AccessPoint respondingAddress, boolean expeditedDataOption,
DataUnit userData);
/**
* connectIndication.
*
* @param calledAddress
* The calledAddress parameter conveyes the address of the TSAP
* to which the connection is to be established.
* @param callingAddress
* The callingAddress parameter conveyes the address of the TSAP
* from which the connection has been requested.
* @param expeditedDataOption
* The expeditedDataOption parameter indicates wether the
* expedited data option is to be available on the connection.
* @param qualityOfService
* The qualityOfService parameter describes the possible
* quality of service value.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
void connectIndication(AccessPoint calledAddress,
AccessPoint callingAddress, boolean expeditedDataOption,
int qualityOfService, DataUnit userData);
/**
* disconnectindication.
* @param disconnectReason
* Gives reason for disconnecting.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
void disconnectIndication(int disconnectReason, DataUnit userData);
/**
* Receives data from peer.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
void dataIndication(DataUnit userData);
/**
* expeditedDataIndication.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
void expeditedDataIndication(DataUnit userData);
}
@@ -0,0 +1,25 @@
package de.thpeetz.network.osi.transport;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
public interface User {
/**
* connectConfirm.
*
* @param qualityOfService
* The qualityOfService parameter describes the possible
* quality of service value.
* @param respondingAddress
* The parameter usually matches the called address.
* @param expeditedDataOption
* The expeditedDataOption parameter indicates wether the
* expedited data option is to be available on the connection.
* @param userData
* This parameter allows the transfer of user-data between users
* without modification by the transport service provider.
*/
void connectConfirm(int qualityOfService,
AccessPoint respondingAddress, boolean expeditedDataOption,
DataUnit userData);
}
@@ -0,0 +1,97 @@
package de.thpeetz.tools;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import de.thpeetz.network.osi.transport.RFC1006Service;
/**
* @author Thomas Peetz
*
* @param <T> type of objects in ObjectPool
*/
public class ObjectPool<T> {
/**
* Vector of unused object references.
*/
private final Vector<T> freeStack;
Logger logger;
/**
* Construct an object pool for a specific class type.
*
* @param clazz
* Class type of object pool
* @throws IllegalAccessException
* @throws InstantiationException
*/
public ObjectPool(final Class<T> clazz) {
this.freeStack = new Vector<T>();
init(clazz);
logger = Logger.getLogger(ObjectPool.class.getName());
}
/**************************************************************************
* Construct an object pool for a specific class type. Initialize object
* pool with given number of objects.
*
* @param clazz
* Class type of object pool
* @param size
* Initial number of objects in pool
* @throws IllegalAccessException
* @throws InstantiationException
***************************************************************************/
public ObjectPool(final Class<T> clazz, final int size) {
this.freeStack = new Vector<T>(size);
init(clazz);
}
/**************************************************************************
* Construct an object pool for a specific class type. Initialize object
* pool with number of objects equal to stack size.
*
* @param clazz
* Class type of object pool
***************************************************************************/
private void init(final Class<T> clazz) {
for (int i = 0; i < freeStack.capacity(); i++) {
try {
freeStack.add(i, clazz.newInstance());
} catch (InstantiationException e) {
logger.log(Level.FINE, e.getMessage());
} catch (IllegalAccessException e) {
logger.log(Level.FINE, e.getMessage());
}
}
}
/**
* Get instance from object pool.
*
* @return Reference of object
*/
public final synchronized T getInstance() {
// Check if the pool is empty.
if (this.freeStack.isEmpty()) {
return null;
}
// Remove object from end of free pool.
T result = this.freeStack.lastElement();
this.freeStack.setSize(this.freeStack.size() - 1);
return result;
}
/**************************************************************************
* Return object to object pool.
*
* @param obj
* Reference of unsed object
***************************************************************************/
public final synchronized void freeInstance(final T obj) {
this.freeStack.addElement(obj);
}
}
@@ -1,14 +0,0 @@
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package com.ibtp.network.osi;
import org.junit.Test;
import static org.junit.Assert.*;
public class LibraryTest {
@Test public void testSomeLibraryMethod() {
Library classUnderTest = new Library();
assertTrue("someLibraryMethod should return 'true'", classUnderTest.someLibraryMethod());
}
}
@@ -0,0 +1,45 @@
package de.thpeetz.network.osi;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Test;
public class AccessPointTest {
@Test
void testAccessPoint() {
AccessPoint ap = new AccessPoint();
assertNotNull(ap);
}
@Test
void testAccessPointString() {
AccessPoint ap = new AccessPoint("ap12");
assertEquals("ap12", ap.getString());
}
@Test
void testGetString() {
AccessPoint ap = new AccessPoint("ap12");
assertEquals("ap12", ap.getString());
}
@Test
void testGetData() {
AccessPoint ap = new AccessPoint("ap12");
assertEquals(4, ap.getData().length);
byte[] expected = {97, 112, 49,50};
int i=0;
for (byte b : expected) {
assertEquals(b, ap.getData()[i]);
i++;
}
}
@Test
void testGetLength() {
AccessPoint ap = new AccessPoint("ap12");
assertEquals(4, ap.getData().length);
}
}
@@ -0,0 +1,56 @@
package de.thpeetz.network.osi;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
/**
* @author tpeetz
*
*/
public class DataUnitManagerTest {
/**
* Test method for
* {@link de.thpeetz.network.osi.DataUnitManager#DataUnitManager()}.
*/
@Test
public void testDataUnitManager() {
DataUnitManager manager = new DataUnitManager();
assertNotNull(manager);
}
/**
* Test method for
* {@link de.thpeetz.network.osi.DataUnitManager#getManager()}.
*/
@Test
public void testGetManager() {
DataUnitManager manager = DataUnitManager.getManager();
assertNotNull(manager);
}
/**
* Test method for
* {@link de.thpeetz.network.osi.DataUnitManager#getInstance()}.
*/
@Test
public void testGetInstance() {
DataUnit unit = DataUnitManager.getInstance();
assertNotNull(unit);
}
/**
* Test method for
* {@link de.thpeetz.network.osi.DataUnitManager#freeInstance(de.thpeetz.network.osi.DataUnit)}
* .
*/
@Test
@Disabled
public void testFreeInstance() {
DataUnit unit = DataUnitManager.getInstance();
assertNotNull(unit);
DataUnitManager.freeInstance(unit);
}
}
@@ -0,0 +1,148 @@
package de.thpeetz.network.osi;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Test;
public class DataUnitTest{
/*
* Test method for 'com.peetz.network.osi.DataUnit.DataUnit()'
*/
@Test
public void testDataUnit() {
DataUnit data = new DataUnit();
assertNotNull(data);
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.initialize(byte[])'
*/
@Test
public void testInitializeByteArray() {
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.initialize()'
*/
@Test
public void testInitialize() {
DataUnit data = new DataUnit();
data.initialize();
assertEquals(0, data.getLength());
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.addBuffer(byte[])'
*/
@Test
public void testAddBuffer() {
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.setToWrite()'
*/
@Test
public void testSetToWrite() {
DataUnit data = new DataUnit();
data.setToWrite();
assertEquals(data.getLength(), 0);
data.write(3);
assertEquals(data.getLength(), 2);
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.setToRead()'
*/
@Test
public void testSetToRead() {
DataUnit data = new DataUnit();
data.setToRead();
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.write(byte[])'
*/
@Test
public void testWriteByteArray() {
DataUnit data = new DataUnit();
data.setToWrite();
assertEquals(data.getLength(), 0);
data.write(new byte[]{ (byte) 0x01, (byte) 0x03});
assertEquals(2, data.getLength());
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.write(byte)'
*/
@Test
public void testWriteByte() {
DataUnit data = new DataUnit();
data.setToWrite();
assertEquals(data.getLength(), 0);
data.write( (byte) 0x05);
assertEquals(1, data.getLength());
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.write(int)'
*/
@Test
public void testWriteInt() {
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.read()'
*/
@Test
public void testRead() {
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.read(int)'
*/
@Test
public void testReadInt() {
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.readInt()'
*/
@Test
public void testReadInt1() {
DataUnit data = new DataUnit();
data.setToWrite();
data.write(5);
assertEquals(data.readInt(), 5);
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.getBuffer()'
*/
@Test
public void testGetBuffer() {
DataUnit data = new DataUnit();
byte[] buffer = data.getBuffer();
assertNotNull(buffer);
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.getBuffer(int)'
*/
@Test
public void testGetBufferInt() {
DataUnit data = new DataUnit();
byte[] buffer = data.getBuffer(3);
assertEquals(buffer.length, 3);
}
/*
* Test method for 'com.peetz.network.osi.DataUnit.getLength()'
*/
@Test
public void testGetLength() {
DataUnit data = new DataUnit();
assertEquals(data.getLength(), 0);
}
}
@@ -0,0 +1,9 @@
package de.thpeetz.network.osi;
public class OsiTests
{
public static AccessPoint calledNSAP = new AccessPoint("127.0.0.1");
public static AccessPoint calledTSAP = new AccessPoint("tl2");
public static AccessPoint callerTSAP = new AccessPoint("tl1");
public static AccessPoint callerSSAP = new AccessPoint("sl1");
}
@@ -0,0 +1,445 @@
package de.thpeetz.network.osi.presentation;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Test;
import de.thpeetz.network.osi.DataUnit;
import de.thpeetz.network.osi.DataUnitManager;
import de.thpeetz.network.osi.OsiTests;
public class PresentationLayerTest {
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.PresentationLayer()'
*/
@Test
public final void testPresentationLayer() {
PresentationLayer layer = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
assertNotNull(layer);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.connectRequest(AccessPoint,
* AccessPoint, AccessPoint, AccessPoint, AccessPoint, int, DataUnit)'
*/
@Test
public final void testConnectRequest() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
assertNotNull(presentation);
DataUnit data = DataUnitManager.getInstance();
assertNotNull(data);
presentation.connectRequest(OsiTests.calledNSAP, OsiTests.calledTSAP,
null, null, null, 1, data);
DataUnitManager.freeInstance(data);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.releaseRequest(DataUnit)'
*/
@Test
public final void testReleaseRequest() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
DataUnit data = DataUnitManager.getInstance();
presentation.releaseRequest(data);
DataUnitManager.freeInstance(data);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.dataRequest(DataUnit)'
*/
@Test
public final void testDataRequest() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.dataRequest(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.userAbortRequest(DataUnit)'
*/
@Test
public final void testUserAbortRequest() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
DataUnit data = DataUnitManager.getInstance();
presentation.userAbortRequest(data);
DataUnitManager.freeInstance(data);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.connectIndication(AccessPoint,
* AccessPoint, int, int, int, int, int, int, int, DataUnit)'
*/
@Test
public final void testConnectIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.connectIndication(null, null, 1, 1, 1, 1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.connectConfirm(AccessPoint,
* int, int, int, int, int, int, DataUnit)'
*/
@Test
public final void testConnectConfirm() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.connectConfirm(null, 1, 1, 1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.userAbortIndication(DataUnit)'
*/
@Test
public final void testUserAbortIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.userAbortIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.providerAbortIndication(int)'
*/
@Test
public final void testProviderAbortIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.providerAbortIndication(1);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.alterContextIndication(int,
* int, int, DataUnit)'
*/
@Test
public final void testAlterContextIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.alterContextIndication(1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.alterContextConfirm(int,
* int, DataUnit)'
*/
@Test
public final void testAlterContextConfirm() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.alterContextConfirm(1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.typedDataIndication(DataUnit)'
*/
@Test
public final void testTypedDataIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.typedDataIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.dataIndication(DataUnit)'
*/
@Test
public final void testDataIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.dataIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.resynchronizeIndication(int,
* int, int, DataUnit)'
*/
@Test
public final void testResynchronizeIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.resynchronizeIndication(1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.resynchronizeConfirm(int,
* int, DataUnit)'
*/
@Test
public final void testResynchronizeConfirm() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.resynchronizeConfirm(1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.activityStartIndication(int,
* DataUnit)'
*/
@Test
public final void testActivityStartIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.activityStartIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.activityResumeIndication(int,
* int, int, int, DataUnit)'
*/
@Test
public final void testActivityResumeIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.activityResumeIndication(1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.activityInterruptIndication(int,
* DataUnit)'
*/
@Test
public final void testActivityInterruptIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.activityInterruptIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.activityInterruptConfirm(DataUnit)'
*/
@Test
public final void testActivityInterruptConfirm() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.activityInterruptConfirm(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.activityDiscardIndication(int,
* DataUnit)'
*/
@Test
public final void testActivityDiscardIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.activityDiscardIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.activityDiscardConfirm(DataUnit)'
*/
@Test
public final void testActivityDiscardConfirm() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.activityDiscardConfirm(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.activityEndIndication(int,
* DataUnit)'
*/
@Test
public final void testActivityEndIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.activityEndIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.activityEndConfirm(DataUnit)'
*/
@Test
public final void testActivityEndConfirm() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.activityEndConfirm(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.capabilityDataIndication(DataUnit)'
*/
@Test
public final void testCapabilityDataIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.capabilityDataIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.capabilityDataConfirm(DataUnit)'
*/
@Test
public final void testCapabilityDataConfirm() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.capabilityDataConfirm(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.controlGiveIndication(DataUnit)'
*/
@Test
public final void testControlGiveIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.controlGiveIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.tokenGiveIndication(DataUnit)'
*/
@Test
public final void testTokenGiveIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.tokenGiveIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.tokenPleaseIndication(int,
* DataUnit)'
*/
@Test
public final void testTokenPleaseIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.tokenPleaseIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.userExceptionReportIndication(int,
* DataUnit)'
*/
@Test
public final void testUserExceptionReportIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.userExceptionReportIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.providerExceptionReportIndication(int)'
*/
@Test
public final void testProviderExceptionReportIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.providerExceptionReportIndication(1);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.expeditedDataIndication(DataUnit)'
*/
@Test
public final void testExpeditedDataIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.expeditedDataIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.syncMinorIndication(int,
* int, DataUnit)'
*/
@Test
public final void testSyncMinorIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.syncMinorIndication(1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.syncMinorConfirm(int,
* DataUnit)'
*/
@Test
public final void testSyncMinorConfirm() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.syncMinorConfirm(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.syncMajorIndication(int,
* DataUnit)'
*/
@Test
public final void testSyncMajorIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.syncMajorIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.syncMajorConfirm(DataUnit)'
*/
@Test
public final void testSyncMajorConfirm() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.syncMajorConfirm(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.releaseIndication(DataUnit)'
*/
@Test
public final void testReleaseIndication() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.releaseIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.presentation.PresentationLayer.releaseConfirm(int,
* DataUnit)'
*/
@Test
public final void testReleaseConfirm() {
PresentationLayer presentation = new PresentationLayer(false,
OsiTests.callerSSAP, OsiTests.callerTSAP);
presentation.releaseConfirm(1, null);
}
}
@@ -0,0 +1,153 @@
package de.thpeetz.network.osi.session;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
import de.thpeetz.network.osi.presentation.PresentationUser;
public class PresentationMockObject implements PresentationUser
{
public void connectIndication(AccessPoint callingAddress,
AccessPoint calledAddress, int qualityOfService,
int representationRequirements, int mode, int sessionRequirements,
int initialSPSerialNumber, int assignmentOfTokens,
int sessionConnectionIdentifier, DataUnit userData)
{
}
public void connectConfirm(AccessPoint respondingAddress,
int qualityOfService, int representationRequirements,
int sessionRequirements, int initialSPSerialNumber,
int assignmentOfTokens, int sessionConnectionIdentifier,
DataUnit userData)
{
}
public void userAbortIndication(DataUnit userData)
{
}
public void providerAbortIndication(int providerReason)
{
}
public void alterContextIndication(int additionList, int deletionList,
int additionResultList, DataUnit userData)
{
}
public void alterContextConfirm(int additionResultList,
int deletionResultList, DataUnit userData)
{
}
public void typedDataIndication(DataUnit userData)
{
}
public void dataIndication(DataUnit userData)
{
}
public void resynchronizeIndication(int type, int sPSerialNumber,
int tokens, DataUnit userData)
{
}
public void resynchronizeConfirm(int sPSerialNumber, int tokens,
DataUnit userData)
{
}
public void activityStartIndication(int activityIdentifier,
DataUnit userData)
{
}
public void activityResumeIndication(int activityIdentifier,
int oldActivityIdentifier, int sPSerialNumber,
int oldSessionIdentifier, DataUnit userData)
{
}
public void activityInterruptIndication(int reason, DataUnit userData)
{
}
public void activityInterruptConfirm(DataUnit userData)
{
}
public void activityDiscardIndication(int reason, DataUnit userData)
{
}
public void activityDiscardConfirm(DataUnit userData)
{
}
public void activityEndIndication(int sPSerialNumber, DataUnit userData)
{
}
public void activityEndConfirm(DataUnit userData)
{
}
public void capabilityDataIndication(DataUnit userData)
{
}
public void capabilityDataConfirm(DataUnit userData)
{
}
public void controlGiveIndication(DataUnit userData)
{
}
public void tokenGiveIndication(DataUnit userData)
{
}
public void tokenPleaseIndication(int tokens, DataUnit userData)
{
}
public void userExceptionReportIndication(int reason, DataUnit userData)
{
}
public void providerExceptionReportIndication(int reason)
{
}
public void expeditedDataIndication(DataUnit userData)
{
}
public void syncMinorIndication(int type, int sPSerialNumber,
DataUnit userData)
{
}
public void syncMinorConfirm(int sPSerialNumber, DataUnit userData)
{
}
public void syncMajorIndication(int sPSerialNumber, DataUnit userData)
{
}
public void syncMajorConfirm(DataUnit userData)
{
}
public void releaseIndication(DataUnit userData)
{
}
public void releaseConfirm(int result, DataUnit userData)
{
}
}
@@ -0,0 +1,706 @@
package de.thpeetz.network.osi.session;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
import de.thpeetz.network.osi.DataUnit;
import de.thpeetz.network.osi.DataUnitManager;
import de.thpeetz.network.osi.OsiTests;
import de.thpeetz.network.osi.presentation.PresentationUser;
public class SessionLayerTest {
private PresentationUser presentation = new PresentationMockObject();
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.SessionLayer(PresentationUser)'
*/
@Test
public final void testSessionLayer() {
assertEquals(SessionLayer.ER_SPDU, 0);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.connectRequest(AccessPoint,
* AccessPoint, int, AccessPoint, AccessPoint, int, int, int, int, int,
* DataUnit)'
*/
@Test
public final void testConnectRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
DataUnit data = DataUnitManager.getInstance();
session.connectRequest(OsiTests.calledNSAP, OsiTests.calledTSAP, 1,
null, null, 1, 1, 1, 1, 1, data);
DataUnitManager.freeInstance(data);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.connectResponse(int,
* AccessPoint, int, int, int, int, int, int, DataUnit)'
*/
@Test
public final void testConnectResponse() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.connectResponse(1, null, 1, 1, 1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.dataRequest(DataUnit)'
*/
@Test
public final void testDataRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.dataRequest(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.expeditedDataRequest(DataUnit)'
*/
@Test
public final void testExpeditedDataRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.expeditedDataRequest(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.typedDataRequest(DataUnit)'
*/
@Test
public final void testTypedDataRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.typedDataRequest(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.capabilityDataRequest(DataUnit)'
*/
@Test
public final void testCapabilityDataRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.capabilityDataRequest(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.capabilityDataResponse(DataUnit)'
*/
@Test
public final void testCapabilityDataResponse() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.capabilityDataResponse(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.tokenGiveRequest(int,
* DataUnit)'
*/
@Test
public final void testTokenGiveRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.tokenGiveRequest(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.tokenPleaseRequest(int,
* DataUnit)'
*/
@Test
public final void testTokenPleaseRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.tokenPleaseRequest(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.controlGiveRequest(DataUnit)'
*/
@Test
public final void testControlGiveRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.controlGiveRequest(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.syncMinorRequest(int, int,
* int, DataUnit)'
*/
@Test
public final void testSyncMinorRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.syncMinorRequest(1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.syncMinorResponse(int,
* DataUnit)'
*/
@Test
public final void testSyncMinorResponse() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.syncMinorResponse(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.syncMajorRequest(int,
* DataUnit)'
*/
@Test
public final void testSyncMajorRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.syncMajorRequest(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.syncMajorResponse(int,
* DataUnit)'
*/
@Test
public final void testSyncMajorResponse() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.syncMajorResponse(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.resynchronizeRequest(int,
* int, int, int, int, DataUnit)'
*/
@Test
public final void testResynchronizeRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.resynchronizeRequest(1, 1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.resynchronizeResponse(int,
* int, int, int, int, DataUnit)'
*/
@Test
public final void testResynchronizeResponse() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.resynchronizeResponse(1, 1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.userExceptionReportRequest(int,
* DataUnit)'
*/
@Test
public final void testUserExceptionReportRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.userExceptionReportRequest(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityStartRequest(int,
* DataUnit)'
*/
@Test
public final void testActivityStartRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityStartRequest(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityResumeRequest(int,
* int, int, int, int, DataUnit)'
*/
@Test
public final void testActivityResumeRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityResumeRequest(1, 1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityInterruptRequest(DataUnit)'
*/
@Test
public final void testActivityInterruptRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityInterruptRequest(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityInterruptResponse(int,
* DataUnit)'
*/
@Test
public final void testActivityInterruptResponse() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityInterruptResponse(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityDiscardRequest(int,
* DataUnit)'
*/
@Test
public final void testActivityDiscardRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityDiscardRequest(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityDiscardResponse(DataUnit)'
*/
@Test
public final void testActivityDiscardResponse() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityDiscardResponse(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityEndRequest(int,
* DataUnit)'
*/
@Test
public final void testActivityEndRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityEndRequest(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityEndResponse(int,
* DataUnit)'
*/
@Test
public final void testActivityEndResponse() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityEndResponse(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.releaseRequest(DataUnit)'
*/
@Test
public final void testReleaseRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
DataUnit data = DataUnitManager.getInstance();
session.releaseRequest(data);
DataUnitManager.freeInstance(data);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.releaseResponse(int,
* DataUnit)'
*/
@Test
public final void testReleaseResponse() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.releaseResponse(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.userAbortRequest(DataUnit)'
*/
@Test
public final void testUserAbortRequest() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
DataUnit data = DataUnitManager.getInstance();
session.userAbortRequest(data);
DataUnitManager.freeInstance(data);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.connectIndication(int,
* AccessPoint, AccessPoint, int, int, int, int, int, DataUnit)'
*/
@Test
public final void testConnectIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.connectIndication(1, null, null, 1, 1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.connectConfirm(int,
* AccessPoint, int, int, int, int, int, int, DataUnit)'
*/
@Test
public final void testConnectConfirm() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.connectConfirm(1, null, 1, 1, 1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.dataIndication(DataUnit)'
*/
@Test
public final void testDataIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.dataIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.expeditedDataIndication(DataUnit)'
*/
@Test
public final void testExpeditedDataIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.expeditedDataIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.typedDataIndication(DataUnit)'
*/
@Test
public final void testTypedDataIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.typedDataIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.capabilityDataIndication(DataUnit)'
*/
@Test
public final void testCapabilityDataIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.capabilityDataIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.capabilityDataConfirm(DataUnit)'
*/
@Test
public final void testCapabilityDataConfirm() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.capabilityDataConfirm(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.tokenGiveIndication(int,
* DataUnit)'
*/
@Test
public final void testTokenGiveIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.tokenGiveIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.tokenPleaseIndication(int,
* DataUnit)'
*/
@Test
public final void testTokenPleaseIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.tokenPleaseIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.controlGiveIndication(DataUnit)'
*/
@Test
public final void testControlGiveIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.controlGiveIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.syncMinorIndication(int, int,
* int, DataUnit)'
*/
@Test
public final void testSyncMinorIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.syncMinorIndication(1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.syncMinorConfirm(int,
* DataUnit)'
*/
@Test
public final void testSyncMinorConfirm() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.syncMinorConfirm(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.syncMajorIndication(int,
* DataUnit)'
*/
@Test
public final void testSyncMajorIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.syncMajorIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.syncMajorConfirm(int,
* DataUnit)'
*/
@Test
public final void testSyncMajorConfirm() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.syncMajorConfirm(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.resynchronizeIndication(int,
* int, int, int, int, DataUnit)'
*/
@Test
public final void testResynchronizeIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.resynchronizeIndication(1, 1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.resynchronizeConfirm(int,
* int, int, int, int, DataUnit)'
*/
@Test
public final void testResynchronizeConfirm() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.resynchronizeConfirm(1, 1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.providerExceptionReportIndication(int)'
*/
@Test
public final void testProviderExceptionReportIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.providerExceptionReportIndication(1);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.userExceptionReportIndication(int,
* DataUnit)'
*/
@Test
public final void testUserExceptionReportIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.userExceptionReportIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityStartIndication(int,
* DataUnit)'
*/
@Test
public final void testActivityStartIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityStartIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityResumeIndication(int,
* int, int, int, int, DataUnit)'
*/
@Test
public final void testActivityResumeIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityResumeIndication(1, 1, 1, 1, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityInterruptIndication(DataUnit)'
*/
@Test
public final void testActivityInterruptIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityInterruptIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityInterruptConfirm(int,
* DataUnit)'
*/
@Test
public final void testActivityInterruptConfirm() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityInterruptConfirm(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityDiscardIndication(int,
* DataUnit)'
*/
@Test
public final void testActivityDiscardIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityDiscardIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityDiscardConfirm(DataUnit)'
*/
@Test
public final void testActivityDiscardConfirm() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityDiscardConfirm(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityEndIndication(int,
* DataUnit)'
*/
@Test
public final void testActivityEndIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityEndIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.activityEndConfirm(int,
* DataUnit)'
*/
@Test
public final void testActivityEndConfirm() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.activityEndConfirm(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.releaseIndication(DataUnit)'
*/
@Test
public final void testReleaseIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.releaseIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.releaseConfirm(int,
* DataUnit)'
*/
@Test
public final void testReleaseConfirm() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.releaseConfirm(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.userAbortIndication(DataUnit)'
*/
@Test
public final void testUserAbortIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.userAbortIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.session.SessionLayer.providerAbortIndication(int,
* DataUnit)'
*/
@Test
public final void testProviderAbortIndication() {
SessionLayer session = new SessionLayer(false, this.presentation,
OsiTests.callerSSAP, OsiTests.callerTSAP);
session.providerAbortIndication(1, null);
}
}
@@ -0,0 +1,145 @@
package de.thpeetz.network.osi.transport;
import de.thpeetz.network.osi.AccessPoint;
import de.thpeetz.network.osi.DataUnit;
import de.thpeetz.network.osi.session.SessionUser;
public class SessionMockObject implements SessionUser
{
public void connectIndication(int connectionIdentifier,
AccessPoint callingAddress, AccessPoint calledAddress,
int qualityOfService, int sessionRequirements,
int firstSPSerialNumber, int secondSPSerialNumber,
int assignmentOfTokens, DataUnit userdata)
{
}
public void connectConfirm(int connectionIdentifier,
AccessPoint respondingAddress, int result, int qualityOfService,
int sessionRequirements, int firstSPSerialNumber,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userData)
{
}
public void dataIndication(DataUnit userData)
{
}
public void expeditedDataIndication(DataUnit userData)
{
}
public void typedDataIndication(DataUnit userData)
{
}
public void capabilityDataIndication(DataUnit userData)
{
}
public void capabilityDataConfirm(DataUnit userData)
{
}
public void tokenGiveIndication(int tokens, DataUnit userData)
{
}
public void tokenPleaseIndication(int tokens, DataUnit userData)
{
}
public void controlGiveIndication(DataUnit userData)
{
}
public void syncMinorIndication(int type, int dataSeparation,
int firstSPSerialNumber, DataUnit userData)
{
}
public void syncMinorConfirm(int firstSPSerialNumber, DataUnit userData)
{
}
public void syncMajorIndication(int firstSPSerialNumber, DataUnit userData)
{
}
public void syncMajorConfirm(int secondSPSerialNumber, DataUnit userData)
{
}
public void resynchronizeIndication(int firstResynchronizeType,
int firstSPSerialNumber, int secondResynchronizeType,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userdata)
{
}
public void resynchronizeConfirm(int firstResynchronizeType,
int firstSPSerialNumber, int secondResynchronizeType,
int secondSPSerialNumber, int assignmentOfTokens, DataUnit userdata)
{
}
public void providerExceptionReportIndication(int reason)
{
}
public void userExceptionReportIndication(int reason, DataUnit userData)
{
}
public void activityStartIndication(int activityIdentifier,
DataUnit userData)
{
}
public void activityResumeIndication(int activityIdentifier,
int oldActivityIdentifier, int firstSPSerialNumber,
int secondSPSerialNumber, int oldSessionConnectionIdentifier,
DataUnit userData)
{
}
public void activityInterruptIndication(DataUnit userData)
{
}
public void activityInterruptConfirm(int reason, DataUnit userData)
{
}
public void activityDiscardIndication(int reason, DataUnit userData)
{
}
public void activityDiscardConfirm(DataUnit userData)
{
}
public void activityEndIndication(int firstSPSerialNumber, DataUnit userData)
{
}
public void activityEndConfirm(int secondSPSerialNumber, DataUnit userData)
{
}
public void releaseIndication(DataUnit userData)
{
}
public void releaseConfirm(int result, DataUnit userData)
{
}
public void userAbortIndication(DataUnit userData)
{
}
public void providerAbortIndication(int reason, DataUnit userData)
{
}
}
@@ -0,0 +1,142 @@
package de.thpeetz.network.osi.transport;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
import de.thpeetz.network.osi.DataUnit;
import de.thpeetz.network.osi.DataUnitManager;
import de.thpeetz.network.osi.OsiTests;
public class TransportLayerTest {
private SessionMockObject session = new SessionMockObject();
/*
* Test method for
* 'com.peetz.network.osi.transport.TransportLayer.TransportLayer(SessionUser)'
*/
@Test
public final void testTransportLayer() {
assertEquals(TransportLayer.ER_TPDU, 0x70);
}
/*
* Test method for
* 'com.peetz.network.osi.transport.TransportLayer.connectRequest(AccessPoint,
* AccessPoint, AccessPoint, boolean, int, DataUnit)'
*/
@Test
public final void testConnectRequest() {
TransportLayer transport = new TransportLayer(false, this.session,
OsiTests.callerTSAP);
DataUnit data = DataUnitManager.getInstance();
transport.connectRequest(OsiTests.calledNSAP, OsiTests.calledTSAP,
OsiTests.callerTSAP, false, 0, data);
DataUnitManager.freeInstance(data);
}
/*
* Test method for
* 'com.peetz.network.osi.transport.TransportLayer.connectResponse(int,
* AccessPoint, boolean, DataUnit)'
*/
@Test
public final void testConnectResponse() {
TransportLayer transport = new TransportLayer(false, this.session,
OsiTests.callerTSAP);
transport.connectResponse(1, null, true, null);
}
/*
* Test method for
* 'com.peetz.network.osi.transport.TransportLayer.disconnectRequest(DataUnit)'
*/
@Test
public final void testDisconnectRequest() {
TransportLayer transport = new TransportLayer(false, this.session,
OsiTests.callerTSAP);
DataUnit data = DataUnitManager.getInstance();
transport.disconnectRequest(data);
DataUnitManager.freeInstance(data);
}
/*
* Test method for
* 'com.peetz.network.osi.transport.TransportLayer.dataRequest(DataUnit)'
*/
@Test
public final void testDataRequest() {
TransportLayer transport = new TransportLayer(false, this.session,
OsiTests.callerTSAP);
transport.dataRequest(null);
}
/*
* Test method for
* 'com.peetz.network.osi.transport.TransportLayer.expeditedDataRequest(DataUnit)'
*/
@Test
public final void testExpeditedDataRequest() {
TransportLayer transport = new TransportLayer(false, this.session,
OsiTests.callerTSAP);
transport.expeditedDataRequest(null);
}
/*
* Test method for
* 'com.peetz.network.osi.transport.TransportLayer.connectConfirm(int,
* AccessPoint, boolean, DataUnit)'
*/
@Test
public final void testConnectConfirm() {
TransportLayer transport = new TransportLayer(false, this.session,
OsiTests.callerTSAP);
transport.connectConfirm(1, null, true, null);
}
/*
* Test method for
* 'com.peetz.network.osi.transport.TransportLayer.connectIndication(AccessPoint,
* AccessPoint, boolean, int, DataUnit)'
*/
@Test
public final void testConnectIndication() {
TransportLayer transport = new TransportLayer(false, this.session,
OsiTests.callerTSAP);
transport.connectIndication(null, null, true, 1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.transport.TransportLayer.disconnectIndication(int,
* DataUnit)'
*/
@Test
public final void testDisconnectIndication() {
TransportLayer transport = new TransportLayer(false, this.session,
OsiTests.callerTSAP);
transport.disconnectIndication(1, null);
}
/*
* Test method for
* 'com.peetz.network.osi.transport.TransportLayer.dataIndication(DataUnit)'
*/
@Test
public final void testDataIndication() {
TransportLayer transport = new TransportLayer(false, this.session,
OsiTests.callerTSAP);
transport.dataIndication(null);
}
/*
* Test method for
* 'com.peetz.network.osi.transport.TransportLayer.expeditedDataIndication(DataUnit)'
*/
@Test
public final void testExpeditedDataIndication() {
TransportLayer transport = new TransportLayer(false, this.session,
OsiTests.callerTSAP);
transport.expeditedDataIndication(null);
}
}
@@ -0,0 +1,45 @@
package de.thpeetz.tools;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Test;
import de.thpeetz.network.osi.DataUnit;
public class ObjectPoolTest {
/*
* Test method for 'com.peetz.tools.ObjectPool.ObjectPool(Class)'
*/
@Test
public final void testObjectPoolClass() {
ObjectPool<DataUnit> objectPool = new ObjectPool<DataUnit>(DataUnit.class);
assertNotNull(objectPool);
}
/*
* Test method for 'com.peetz.tools.ObjectPool.ObjectPool(Class, int)'
*/
public final void testObjectPoolClassInt() {
ObjectPool<DataUnit> objectPool = new ObjectPool<DataUnit>(DataUnit.class, 5);
assertNotNull(objectPool);
}
/*
* Test method for 'com.peetz.tools.ObjectPool.getInstance()'
*/
public final void testGetInstance() {
ObjectPool<DataUnit> objectPool = new ObjectPool<DataUnit>(DataUnit.class, 1);
DataUnit unit = objectPool.getInstance();
assertNotNull(unit);
}
/*
* Test method for 'com.peetz.tools.ObjectPool.freeInstance(Object)'
*/
public final void testFreeInstance() {
ObjectPool<DataUnit> objectPool = new ObjectPool<DataUnit>(DataUnit.class);
DataUnit unit = objectPool.getInstance();
objectPool.freeInstance(unit);
}
}