camlistore.org: camlistore.org/pkg/types/camtypes Index | Files

package camtypes

import "camlistore.org/pkg/types/camtypes"

Package camtypes is like the types package, but higher-level and contains Camlistore-specific types. It exists mostly to break circular dependencies between index, search, and schema.

Index

Package Files

camtypes.go discovery.go errors.go search.go sign.go statustype.go

Variables

var (
    ErrClientNoServer = addCamError("client-no-server", funcStr(func() string {
        return fmt.Sprintf("" /* 190 byte string literal not displayed */, osutil.UserClientConfigPath())
    }))
    ErrClientNoPublicKey = addCamError("client-no-public-key", str("No public key configured: see 'camput init'."))
)

func Err Uses

func Err(key string) error

Err returns the error registered for key. It panics for an unregistered key.

type BlobMeta Uses

type BlobMeta struct {
    Ref  blob.Ref
    Size uint32

    // CamliType is non-empty if this blob is a Camlistore JSON
    // schema blob. If so, this is its "camliType" attribute.
    CamliType string
}

BlobMeta is the metadata kept for each known blob in the in-memory search index. It's kept as small as possible to save memory.

type Claim Uses

type Claim struct {
    BlobRef, Signer blob.Ref

    Date time.Time
    Type string // "set-attribute", "add-attribute", etc

    // If an attribute modification
    Attr, Value string
    Permanode   blob.Ref

    // If a DeleteClaim or a ShareClaim
    Target blob.Ref
}

func (*Claim) String Uses

func (c *Claim) String() string

type ClaimPtrsByDate Uses

type ClaimPtrsByDate []*Claim

func (ClaimPtrsByDate) Len Uses

func (cl ClaimPtrsByDate) Len() int

func (ClaimPtrsByDate) Less Uses

func (cl ClaimPtrsByDate) Less(i, j int) bool

func (ClaimPtrsByDate) Swap Uses

func (cl ClaimPtrsByDate) Swap(i, j int)

type ClaimsByDate Uses

type ClaimsByDate []Claim

func (ClaimsByDate) Len Uses

func (cl ClaimsByDate) Len() int

func (ClaimsByDate) Less Uses

func (cl ClaimsByDate) Less(i, j int) bool

func (ClaimsByDate) String Uses

func (cl ClaimsByDate) String() string

func (ClaimsByDate) Swap Uses

func (cl ClaimsByDate) Swap(i, j int)

type Discovery Uses

type Discovery struct {
    BlobRoot     string `json:"blobRoot"`
    JSONSignRoot string `json:"jsonSignRoot"`
    HelpRoot     string `json:"helpRoot"`
    ImporterRoot string `json:"importerRoot"`
    SearchRoot   string `json:"searchRoot"`
    StatusRoot   string `json:"statusRoot"`
    ShareRoot    string `json:"shareRoot"`

    OwnerName string `json:"ownerName"` // Name of the owner.
    UserName  string `json:"userName"`  // Name of the user.

    // StorageGeneration is the UUID for the storage generation.
    StorageGeneration string `json:"storageGeneration,omitempty"`
    // StorageGenerationError is the error that occurred on generating the storage, if any.
    StorageGenerationError string `json:"storageGenerationError,omitempty"`
    // StorageInitTime is the initialization time of the storage.
    StorageInitTime types.Time3339 `json:"storageInitTime,omitempty"`

    ThumbVersion string `json:"thumbVersion"` // Thumbnailing version.

    // AuthToken is an auth.OpAll token used by the web UI and the WebSocket.
    // It is randomly generated the first time discovery is served.
    AuthToken string `json:"authToken"`

    // SyncHandlers lists discovery information about the available sync handlers.
    SyncHandlers []SyncHandlerDiscovery `json:"syncHandlers,omitempty"`
    // Signing contains discovery information for signing.
    Signing *SignDiscovery `json:"signing,omitempty"`
    // UIDiscovery contains discovery information for the UI.
    *UIDiscovery
}

Discovery is the JSON response for discovery requests.

type Edge Uses

type Edge struct {
    From      blob.Ref
    FromType  string // "permanode", "directory", etc
    FromTitle string // name of source permanode or directory
    To        blob.Ref
    BlobRef   blob.Ref // the blob responsible for the edge relationship
}

func (*Edge) String Uses

func (e *Edge) String() string

type EdgesToOpts Uses

type EdgesToOpts struct {
    Max int
}

type FileInfo Uses

type FileInfo struct {
    // FileName is the base name of the file or directory.
    FileName string `json:"fileName"`

    // Size is the size of file. It is not set for directories.
    Size int64 `json:"size"`

    // MIMEType may be set for files, but never for directories.
    MIMEType string `json:"mimeType,omitempty"`

    // Time is the earliest of any modtime, creation time, or EXIF
    // original/modification times found. It may be omitted (zero)
    // if unknown.
    Time *types.Time3339 `json:"time,omitempty"`

    // ModTime is the latest of any modtime, creation time, or EXIF
    // original/modification times found. If ModTime doesn't differ
    // from Time, ModTime is omitted (zero).
    ModTime *types.Time3339 `json:"modTime,omitempty"`

    // WholeRef is the digest of the entire file contents.
    // This will be zero for non-regular files, and may also be zero
    // for files above a certain size threshold.
    WholeRef blob.Ref `json:"wholeRef,omitempty"`
}

FileInfo describes a file or directory.

func (*FileInfo) IsImage Uses

func (fi *FileInfo) IsImage() bool

func (*FileInfo) IsText Uses

func (fi *FileInfo) IsText() bool

func (*FileInfo) IsVideo Uses

func (fi *FileInfo) IsVideo() bool

type FileSearchResponse Uses

type FileSearchResponse struct {
    SearchErrorResponse

    Files []blob.Ref `json:"files"` // Refs of the result files. Never nil.
}

FileSearchResponse is the JSON response to a file search request.

type ImageInfo Uses

type ImageInfo struct {
    // Width is the visible width of the image (after any necessary EXIF rotation).
    Width uint16 `json:"width"`
    // Height is the visible height of the image (after any necessary EXIF rotation).
    Height uint16 `json:"height"`
}

ImageInfo describes an image file.

The Width and Height are uint16s to save memory in index/corpus.go, and that's the max size of a JPEG anyway. If we want to deal with larger sizes, we can use MaxUint16 as a sentinel to mean to look elsewhere. Or ditch this optimization.

type Location Uses

type Location struct {
    // Latitude and Longitude represent the point location of this blob,
    // such as the place where a photo was taken.
    //
    // Negative values represent positions south of the equator or
    // west of the prime meridian:
    // Northern latitudes are positive, southern latitudes are negative.
    // Eastern longitudes are positive, western longitudes are negative.
    Latitude  float64 `json:"latitude"`
    Longitude float64 `json:"longitude"`
}

Location describes a file or permanode that has a location.

type LocationBounds Uses

type LocationBounds struct {
    North float64 `json:"north"`
    South float64 `json:"south"`
    West  float64 `json:"west"`
    East  float64 `json:"east"`
}

LocationBounds is a location area delimited by its fields. See Location for the fields meanings and values.

func (LocationBounds) Expand Uses

func (b LocationBounds) Expand(loc Location) LocationBounds

Expand returns a new LocationBounds nb. If either of loc coordinates is outside of b, nb is the dimensions of b expanded as little as possible in order to include loc. Otherwise, nb is just a copy of b.

type Longitude Uses

type Longitude float64

func (Longitude) WrapTo180 Uses

func (l Longitude) WrapTo180() float64

WrapTo180 returns l converted to the [-180,180] interval.

type Path Uses

type Path struct {
    Claim, Base, Target blob.Ref
    ClaimDate           time.Time
    Suffix              string // ??
}

func (*Path) String Uses

func (p *Path) String() string

type PermanodeByAttrRequest Uses

type PermanodeByAttrRequest struct {
    Signer blob.Ref

    // Attribute to search. currently supported: "tag", "title"
    // If FuzzyMatch is set, this can be blank to search all
    // attributes.
    Attribute string

    // The attribute value to find exactly (or roughly, if
    // FuzzyMatch is set)
    // If blank, the permanodes with Attribute as an attribute
    // (set to any value) are searched.
    Query string

    FuzzyMatch bool // by default, an exact match is required
    MaxResults int  // optional max results

    // At, if non-zero, specifies that the attribute must have been set at
    // the latest at At.
    At  time.Time
}

type PublishRootDiscovery Uses

type PublishRootDiscovery struct {
    Name string `json:"name"`
    // Prefix lists prefixes belonging to the publishing root.
    Prefix []string `json:"prefix"`
    // CurrentPermanode is the permanode associated with the publishing root.
    CurrentPermanode blob.Ref `json:"currentPermanode"`
}

PublishRootDiscovery contains discovery information for the publish roots.

type RecentPermanode Uses

type RecentPermanode struct {
    Permanode   blob.Ref
    Signer      blob.Ref // may be zero (!Valid())
    LastModTime time.Time
}

func (RecentPermanode) Equal Uses

func (a RecentPermanode) Equal(b RecentPermanode) bool

type SearchErrorResponse Uses

type SearchErrorResponse struct {
    Error     string `json:"error,omitempty"`     // The error message.
    ErrorType string `json:"errorType,omitempty"` // The type of the error.
}

SearchErrorResponse is the JSON error response for a search request.

type SignDiscovery Uses

type SignDiscovery struct {
    // PublicKey is the path to the public signing key.
    PublicKey string `json:"publicKey,omitempty"`
    // PublicKeyBlobRef is the blob.Ref for the public key.
    PublicKeyBlobRef blob.Ref `json:"publicKeyBlobRef,omitempty"`
    // PublicKeyID is the ID of the public key.
    PublicKeyID string `json:"publicKeyId"`
    // SignHandler is the URL path prefix to the signing handler.
    SignHandler string `json:"signHandler"`
    // VerifyHandler it the URL path prefix to the signature verification handler.
    VerifyHandler string `json:"verifyHandler"`
}

SignDiscovery contains discovery information for jsonsign. It is part of the server's JSON response for discovery requests.

type StatusError Uses

type StatusError struct {
    Error string `json:"error"`
    URL   string `json:"url,omitempty"` // optional
}

type SyncHandlerDiscovery Uses

type SyncHandlerDiscovery struct {
    // From is the source of the sync handler.
    From string `json:"from"`
    // To is the destination of the sync handler.
    To  string `json:"to"`
    // ToIndex is true if the sync is from a blob storage to an index.
    ToIndex bool `json:"toIndex"`
}

SyncHandlerDiscovery contains discovery information about a sync handler. It is part of the JSON response to discovery requests.

type UIDiscovery Uses

type UIDiscovery struct {
    // UIRoot is the URL prefix path to the UI handler.
    UIRoot string `json:"uiRoot"`
    // UploadHelper is the path to the upload helper.
    UploadHelper string `json:"uploadHelper"`
    // DirectoryHelper is the path to the directory helper.
    DirectoryHelper string `json:"directoryHelper"`
    // DownloaderHelper is the path to the downloader helper.
    DownloadHelper string `json:"downloadHelper"`
    // PublishRoots lists discovery information for all publishing roots,
    // mapped by the respective root name.
    PublishRoots map[string]*PublishRootDiscovery `json:"publishRoots"`
    // MapClustering defines whether to cluster position markers on the map aspect.
    MapClustering bool `json:"mapClustering"`
}

UIDiscovery contains discovery information for the user interface. It is part of the JSON response to discovery requests.

type VerifyResponse Uses

type VerifyResponse struct {
    // SignatureValid is true if the signature is valid.
    SignatureValid bool `json:"signatureValid"`
    // ErrorMessage contains the error that occurred, if any.
    ErrorMessage string `json:"errorMessage,omitempty"`
    // SignerKeyId is the ID of the signing key.
    SignerKeyId string `json:"signerKeyId,omitempty"`
    // VerifiedData contains the JSON values from the payload that we signed.
    VerifiedData map[string]interface{} `json:"verifiedData,omitempty"`
}

VerifyResponse is the JSON response for a signature verification request.

Package camtypes imports 12 packages (graph) and is imported by 186 packages. Updated 2018-01-17. Refresh now. Tools for package owners.