trait BufferedCustomFileEmission extends CustomFileEmission
A buffered version of CustomFileEmission
This is especially useful for serializing large data structures. When emitting Strings, it makes it much easier to avoid materializing the entire serialized String in memory. It also helps avoid materializing intermediate datastructures in memory. Finally, it reduces iteration overhead and helps optimize I/O performance.
It may seem strange to use Array[Byte]
in an otherwise immutable API, but for maximal
performance it is best to use the JVM primitive that file I/O uses. These Arrays should only
used immutably even though the Java API technically does allow mutating them.
- Self Type
- BufferedCustomFileEmission with Annotation
- Source
- StageAnnotations.scala
- Alphabetic
- By Inheritance
- BufferedCustomFileEmission
- CustomFileEmission
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
baseFileName(annotations: AnnotationSeq): String
Output filename where serialized content will be written
Output filename where serialized content will be written
The full annotation sequence is a parameter to allow for the location where this annotation will be serialized to be a function of other annotations, e.g., if the location where information is written is controlled by a separate file location annotation.
- annotations
the annotation sequence at the time of emission
- Attributes
- protected
- Definition Classes
- CustomFileEmission
-
abstract
def
getBytesBuffered: Iterable[Array[Byte]]
A buffered version of getBytes for more efficient serialization
A buffered version of getBytes for more efficient serialization
If you only need to serialize an
Iterable[String]
, you can use theString.getBytes
method. It's also helpful to create aview
which will do the.map
lazily instead of eagerly, improving GC performance.def getBytesBuffered: Iterable[Array[Byte]] = myListString.view.map(_.getBytes)
-
abstract
def
suffix: Option[String]
Optional suffix of the output file
Optional suffix of the output file
- Attributes
- protected
- Definition Classes
- CustomFileEmission
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
filename(annotations: AnnotationSeq): File
Method that returns the filename where this annotation will be serialized.
Method that returns the filename where this annotation will be serialized.
- annotations
the annotations at the time of serialization
- Definition Classes
- CustomFileEmission
-
final
def
getBytes: Iterable[Byte]
A method that can convert this annotation to bytes that will be written to a file.
A method that can convert this annotation to bytes that will be written to a file.
If you only need to serialize a string, you can use the
getBytes
method:def getBytes: Iterable[Byte] = myString.getBytes
- Definition Classes
- BufferedCustomFileEmission → CustomFileEmission
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
replacements(file: File): AnnotationSeq
Optionally, a sequence of annotations that will replace this annotation in the output annotation file.
Optionally, a sequence of annotations that will replace this annotation in the output annotation file.
A non-empty implementation of this method is a mechanism for telling a downstream Stage how to deserialize the information that was serialized to a separate file. For example, if a FIRRTL circuit is serialized to a separate file, this method could include an input file annotation that a later stage can use to read the serialized FIRRTL circuit back in.
- Definition Classes
- CustomFileEmission
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
This is the documentation for Firrtl.