Пример #1
0
QVector<tPage> tManagerPrivate::PagesForDisplay(tDisplayId display) const
{
    QVector<tPage> result;

    BackendKey key = KeyFromValue(tManagerPrivate::eKeyType_PageList, display);
    boost::optional<BackendValue> value = m_Storage.Load(key);

    if (value)
    {
        const BackendValue& toRead = value.get();
        PQDataStream stream(DataStream(toRead));
        
        // deserialise.
        int size;

        *stream >> size;
            
        for (int i = 0; i < size; ++i)
        {
            tPage page;
            Read(*stream, page);

            result.push_back(page);
        }
    }

    return result;
}
Пример #2
0
void tManagerPrivate::Identify()
{
    BackendValue value;
    PQDataStream stream(DataStream(value));
    
    BackendKey key = KeyFromValue(tManagerPrivate::eKeyTypeMeta_IdNeeded);

    IncrementLastEventGlobal();
    tEventCounter mark = m_EventHighWater;
    ++mark;

    *stream << mark.value;
    
    m_Storage.Save(key, value);    
}
Пример #3
0
void tManagerPrivate::SetPagesSupported(QVector<tPage> supported)
{   
    BackendValue value;
    PQDataStream stream(DataStream(value));
        
    BackendKey key = KeyFromValue(tManagerPrivate::eKeyType_PageList, m_Discovery.WhoAmI());

    // serialise.
    const int size = supported.size();

    *stream << size;
    
    for (int i = 0; i < size; ++i)
    {
        Write(*stream, supported[i]);
    }
    
    m_Storage.Save(key, value);
}
Пример #4
0
void tManagerPrivate::SetPreset(tPreset preset)
{
    boost::optional<tBridge> myBridge = MyBridge();

    if (!myBridge)
    {
        // I don't even have a bridge. Invalid!
        return;
    }

    // Next check to make sure all the displays in this preset are in this bridge.
    const QVector<tPresetItem> items = preset.Items();
    const int size = items.size();

    // First, make sure this is one of _my_ presets.
    for (int i = 0; i < size; ++i)
    {
        if (!myBridge->DisplayPosition(items[i].id))
        {
            // display isn't on my bridge. Invalid preset.
            return;
        }
    }

    // Then blindly set the preset, if it's out of bounds that's handled by the receiving bridge.
    IncrementLastEventGlobal();
    tEventCounter mark = m_EventHighWater;
    ++mark;

    for (int i = 0; i < size; ++i)
    {
        BackendValue value;
        PQDataStream stream(DataStream(value));
        
        *stream << mark.value;
        Write(*stream, items[i].page);

        BackendKey key = KeyFromValue(tManagerPrivate::eKeyType_PageChange, items[i].id);
                
        m_Storage.Save(key, value);
    }
}
Пример #5
0
 value_comparison(
   const KeyFromValue& key_=KeyFromValue(),const Compare& comp_=Compare()):
   key(key_),comp(comp_)
 {
 }
Пример #6
0
 value_comparison(KeyFromValue key_=KeyFromValue(),Compare comp_=Compare()):
   key(key_),comp(comp_)
 {
 }