Skip to content

Commit

Permalink
IO: Moved to core directory, documented its unstable status
Browse files Browse the repository at this point in the history
  • Loading branch information
elizarov committed Aug 30, 2017
1 parent 018c9ce commit 96d7a88
Show file tree
Hide file tree
Showing 37 changed files with 132 additions and 63 deletions.
1 change: 1 addition & 0 deletions core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ This directory contains modules that provide core coroutine support.
## Modules

* [kotlinx-coroutines-core](kotlinx-coroutines-core/README.md) -- core coroutine builders and synchronization primitives.
* [kotlinx-coroutines-io](kotlinx-coroutines-io/README.md) -- byte I/O channels (_unstable_, work in progress).

16 changes: 16 additions & 0 deletions core/kotlinx-coroutines-io/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Module kotlinx-coroutines-io

Byte I/O channels (_unstable_, work in progress).

# Package kotlinx.coroutines.experimental.io

Byte I/O channels (_unstable_, work in progress).

# Package kotlinx.coroutines.experimental.io.packet

Byte I/O packets (_unstable_, work in progress).

<!--- MODULE kotlinx-coroutines-io -->
<!--- INDEX kotlinx.coroutines.experimental.io -->
<!--- INDEX kotlinx.coroutines.experimental.io.packet -->
<!--- END -->
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>kotlinx-coroutines</artifactId>
<groupId>org.jetbrains.kotlinx</groupId>
<version>0.17-SNAPSHOT</version>
<version>0.18-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

package kotlinx.coroutines.experimental.io

import kotlinx.coroutines.experimental.*
import kotlinx.coroutines.experimental.channels.*
import kotlinx.coroutines.experimental.CancellableContinuation
import kotlinx.coroutines.experimental.channels.ClosedReceiveChannelException
import kotlinx.coroutines.experimental.channels.ClosedSendChannelException
import kotlinx.coroutines.experimental.io.internal.*
import kotlinx.coroutines.experimental.io.packet.*
import java.nio.*
import java.util.concurrent.atomic.*
import kotlinx.coroutines.experimental.suspendCancellableCoroutine
import java.nio.BufferOverflowException
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater

// implementation for ByteChannel
internal class ByteBufferChannel(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package kotlinx.coroutines.experimental.io

import kotlinx.coroutines.experimental.*
import kotlin.coroutines.experimental.*
import kotlinx.coroutines.experimental.AbstractCoroutine
import kotlinx.coroutines.experimental.JobSupport
import kotlinx.coroutines.experimental.handleCoroutineException
import kotlin.coroutines.experimental.CoroutineContext

internal open class ByteChannelCoroutine(
parentContext: CoroutineContext,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package kotlinx.coroutines.experimental.io

import kotlinx.coroutines.experimental.io.packet.*
import kotlinx.coroutines.experimental.io.packet.ByteReadPacket
import kotlinx.coroutines.experimental.io.packet.buildPacket
import java.nio.ByteBuffer
import java.nio.CharBuffer
import java.util.concurrent.CancellationException
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package kotlinx.coroutines.experimental.io

import kotlinx.coroutines.experimental.*
import kotlin.coroutines.experimental.*
import kotlinx.coroutines.experimental.CoroutineScope
import kotlinx.coroutines.experimental.Job
import kotlinx.coroutines.experimental.newCoroutineContext
import kotlin.coroutines.experimental.CoroutineContext
import kotlin.coroutines.experimental.startCoroutine

/**
* A coroutine job that is reading from a byte channel
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package kotlinx.coroutines.experimental.io

import kotlinx.coroutines.experimental.*
import kotlin.coroutines.experimental.*
import kotlinx.coroutines.experimental.CoroutineScope
import kotlinx.coroutines.experimental.Job
import kotlinx.coroutines.experimental.newCoroutineContext
import kotlin.coroutines.experimental.CoroutineContext
import kotlin.coroutines.experimental.startCoroutine

/**
* A coroutine job that is writing to a byte channel
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package kotlinx.coroutines.experimental.io.internal

import java.nio.*
import java.nio.charset.*
import java.nio.ByteBuffer
import java.nio.charset.MalformedInputException

/**
* Decodes all the bytes to ASCII characters until end of buffer applying every character to [consumer]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package kotlinx.coroutines.experimental.io.packet

import java.io.*
import java.nio.*
import kotlin.experimental.*
import java.io.InputStream
import java.nio.ByteBuffer
import kotlin.experimental.and

interface ByteReadPacket {
val remaining: Int
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package kotlinx.coroutines.experimental.io.packet

import java.io.*
import java.nio.*
import java.io.EOFException
import java.io.InputStream
import java.nio.ByteBuffer

object ByteReadPacketEmpty : ByteReadPacket {
override val remaining: Int
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@

package kotlinx.coroutines.experimental.io.packet

import kotlinx.coroutines.experimental.io.internal.*
import java.io.*
import java.nio.*
import java.nio.charset.*
import kotlinx.coroutines.experimental.io.internal.ObjectPool
import kotlinx.coroutines.experimental.io.internal.decodeUTF8
import java.io.EOFException
import java.io.InputStream
import java.nio.BufferOverflowException
import java.nio.ByteBuffer
import java.nio.charset.MalformedInputException
import java.util.*

internal class ByteReadPacketImpl(private val packets: ArrayDeque<ByteBuffer>, internal val pool: ObjectPool<ByteBuffer>) : ByteReadPacket {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package kotlinx.coroutines.experimental.io.packet

import kotlinx.coroutines.experimental.io.internal.*
import java.io.*
import java.nio.*
import java.nio.charset.*
import kotlinx.coroutines.experimental.io.internal.ObjectPool
import kotlinx.coroutines.experimental.io.internal.decodeUTF8
import java.io.EOFException
import java.io.InputStream
import java.nio.BufferOverflowException
import java.nio.ByteBuffer
import java.nio.charset.MalformedInputException

internal class ByteReadPacketSingle(private var buffer: ByteBuffer?, internal val pool: ObjectPool<ByteBuffer>) : ByteReadPacket {
override val remaining: Int
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package kotlinx.coroutines.experimental.io.packet

import java.io.*
import java.nio.*
import java.io.OutputStream
import java.nio.ByteBuffer
import java.nio.CharBuffer

interface ByteWritePacket : Appendable {
fun writeFully(src: ByteArray, offset: Int, length: Int)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package kotlinx.coroutines.experimental.io.packet

import kotlinx.coroutines.experimental.io.internal.*
import java.io.*
import java.nio.*
import kotlinx.coroutines.experimental.io.internal.ObjectPool
import java.io.OutputStream
import java.nio.ByteBuffer
import java.nio.CharBuffer
import java.util.*

internal class ByteWritePacketImpl(private val pool: ObjectPool<ByteBuffer>) : ByteWritePacket {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package kotlinx.coroutines.experimental.io

import kotlinx.coroutines.experimental.*
import kotlinx.coroutines.experimental.channels.*
import org.junit.*
import java.io.*
import kotlin.test.*
import kotlinx.coroutines.experimental.TestBase
import kotlinx.coroutines.experimental.channels.ClosedReceiveChannelException
import kotlinx.coroutines.experimental.launch
import kotlinx.coroutines.experimental.runBlocking
import kotlinx.coroutines.experimental.yield
import org.junit.Test
import java.io.IOException
import kotlin.test.assertEquals
import kotlin.test.fail

class ByteBufferChannelScenarioTest : TestBase() {
private val ch = ByteBufferChannel(true)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
package kotlinx.coroutines.experimental.io

import kotlinx.coroutines.experimental.*
import kotlinx.coroutines.experimental.channels.*
import kotlinx.coroutines.experimental.io.internal.*
import kotlinx.coroutines.experimental.io.packet.*
import org.junit.*
import org.junit.rules.*
import java.nio.*
import kotlinx.coroutines.experimental.CommonPool
import kotlinx.coroutines.experimental.CoroutineName
import kotlinx.coroutines.experimental.channels.ClosedReceiveChannelException
import kotlinx.coroutines.experimental.io.internal.BUFFER_SIZE
import kotlinx.coroutines.experimental.io.internal.BufferObjectNoPool
import kotlinx.coroutines.experimental.io.internal.RESERVED_SIZE
import kotlinx.coroutines.experimental.io.packet.buildPacket
import kotlinx.coroutines.experimental.io.packet.readUTF8Line
import kotlinx.coroutines.experimental.launch
import kotlinx.coroutines.experimental.runBlocking
import org.junit.Rule
import org.junit.Test
import org.junit.rules.ErrorCollector
import org.junit.rules.Timeout
import java.nio.ByteBuffer
import java.nio.CharBuffer
import java.util.*
import java.util.concurrent.*
import kotlin.test.*
import java.util.concurrent.TimeUnit
import kotlin.test.assertEquals
import kotlin.test.assertNotEquals
import kotlin.test.assertTrue
import kotlin.test.fail

class ByteBufferChannelTest {
@get:Rule
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package kotlinx.coroutines.experimental.io

import kotlinx.coroutines.experimental.io.packet.*
import org.junit.*
import kotlin.test.*
import kotlinx.coroutines.experimental.io.packet.buildPacket
import kotlinx.coroutines.experimental.io.packet.readUTF8Line
import org.junit.Test
import kotlin.test.assertEquals

class BytePacketBuildTest {
@Test
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package kotlinx.coroutines.experimental.io

import kotlinx.coroutines.experimental.*
import org.junit.*
import java.io.*
import kotlin.test.*
import kotlinx.coroutines.experimental.TestBase
import kotlinx.coroutines.experimental.launch
import kotlinx.coroutines.experimental.runBlocking
import kotlinx.coroutines.experimental.yield
import org.junit.Test
import java.io.IOException
import kotlin.test.assertEquals
import kotlin.test.fail

class CopyAndCloseTest : TestBase() {
private val from = ByteChannel(true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import kotlinx.coroutines.experimental.io.internal.ReadWriteBufferState
import kotlinx.coroutines.experimental.runBlocking
import org.junit.After
import org.junit.Test
import java.io.*
import java.io.IOException
import java.nio.ByteBuffer
import java.util.concurrent.CopyOnWriteArrayList
import kotlin.test.assertEquals
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
package kotlinx.coroutines.experimental.io

import kotlinx.coroutines.experimental.*
import org.junit.*
import org.junit.rules.*
import java.util.concurrent.*
import kotlin.test.*
import kotlinx.coroutines.experimental.TestBase
import kotlinx.coroutines.experimental.launch
import kotlinx.coroutines.experimental.runBlocking
import kotlinx.coroutines.experimental.yield
import org.junit.Rule
import org.junit.Test
import org.junit.rules.Timeout
import java.util.concurrent.TimeUnit
import kotlin.test.assertEquals
import kotlin.test.assertTrue

class StringScenarioTest : TestBase() {
@get:Rule
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
package kotlinx.coroutines.experimental.io

import kotlinx.coroutines.experimental.*
import org.junit.*
import org.junit.rules.*
import org.junit.Rule
import org.junit.Test
import org.junit.rules.Timeout
import java.util.*
import java.util.concurrent.*
import kotlin.test.*
import java.util.concurrent.TimeUnit
import kotlin.test.assertEquals
import kotlin.test.assertNotEquals
import kotlin.test.assertNull
import kotlin.test.fail

class StringsTest {
@get:Rule
Expand Down
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@
<module>site</module>
<module>knit</module>
<module>core/kotlinx-coroutines-core</module>
<module>core/kotlinx-coroutines-io</module>
<module>reactive/kotlinx-coroutines-reactive</module>
<module>reactive/kotlinx-coroutines-reactor</module>
<module>reactive/kotlinx-coroutines-rx1</module>
Expand Down
1 change: 1 addition & 0 deletions site/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
<copy todir="target">
<fileset dir="docs"/>
<fileset dir="../core/kotlinx-coroutines-core/target/dokka" includes="**/*.md"/>
<fileset dir="../core/kotlinx-coroutines-io/target/dokka" includes="**/*.md"/>
<fileset dir="../reactive/kotlinx-coroutines-reactive/target/dokka" includes="**/*.md"/>
<fileset dir="../reactive/kotlinx-coroutines-reactor/target/dokka" includes="**/*.md"/>
<fileset dir="../reactive/kotlinx-coroutines-rx1/target/dokka" includes="**/*.md"/>
Expand Down
1 change: 1 addition & 0 deletions site/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Library support for Kotlin coroutines. This reference is a companion to
## Modules

[kotlinx-coroutines-core](kotlinx-coroutines-core) | Core primitives to work with coroutines
[kotlinx-coroutines-io](kotlinx-coroutines-io) | Byte I/O channels (_unstable_, work in progress)
[kotlinx-coroutines-reactive](kotlinx-coroutines-reactive) | Utilities for [Reactive Streams](http:https://www.reactive-streams.org)
[kotlinx-coroutines-reactor](kotlinx-coroutines-reactor) | Utilities for [Reactor](https://projectreactor.io)
[kotlinx-coroutines-rx1](kotlinx-coroutines-rx1) | Utilities for [RxJava 1.x](https://github.com/ReactiveX/RxJava/tree/1.x)
Expand Down

0 comments on commit 96d7a88

Please sign in to comment.